Table of Contents

Class CompletionProtocol

Namespace
Mythosia.AI.Protocols
Assembly
Mythosia.AI.dll

Abstract base class defining the wire-format contract for AI completion APIs. Each implementation handles a specific API format (e.g., /chat/completions, /messages, /generateContent).

public abstract class CompletionProtocol
Inheritance
CompletionProtocol
Derived
Inherited Members

Methods

BuildFunctionRequestBody(ProtocolRequestParams, IReadOnlyList<FunctionDefinition>, FunctionCallMode, Func<Message, object>?)

Builds the request body including function/tool definitions.

public abstract object BuildFunctionRequestBody(ProtocolRequestParams requestParams, IReadOnlyList<FunctionDefinition> functions, FunctionCallMode mode, Func<Message, object>? messageConverter = null)

Parameters

requestParams ProtocolRequestParams
functions IReadOnlyList<FunctionDefinition>
mode FunctionCallMode
messageConverter Func<Message, object>

Returns

object

BuildRequestBody(ProtocolRequestParams, Func<Message, object>?)

Builds the request body for a standard completion request.

public abstract object BuildRequestBody(ProtocolRequestParams requestParams, Func<Message, object>? messageConverter = null)

Parameters

requestParams ProtocolRequestParams
messageConverter Func<Message, object>

Returns

object

ConvertMessage(Message)

Converts a regular message to the wire format. Default implementation returns a simple {role, content} object for text-only messages.

public virtual object ConvertMessage(Message message)

Parameters

message Message

Returns

object

CreateFunctionRequest(string, object)

Creates the HTTP request for a function-calling completion call.

public abstract HttpRequestMessage CreateFunctionRequest(string apiKey, object requestBody)

Parameters

apiKey string
requestBody object

Returns

HttpRequestMessage

CreateRequest(string, object)

Creates the HTTP request for a completion call.

public abstract HttpRequestMessage CreateRequest(string apiKey, object requestBody)

Parameters

apiKey string
requestBody object

Returns

HttpRequestMessage

ExtractFunctionCall(string)

Extracts a function call (if any) from the API response JSON.

public abstract (string content, FunctionCall? functionCall) ExtractFunctionCall(string responseJson)

Parameters

responseJson string

Returns

(string content, FunctionCall functionCall)

ExtractResponse(string)

Extracts the text response content from the API response JSON.

public abstract string ExtractResponse(string responseJson)

Parameters

responseJson string

Returns

string

ParseStreamChunk(string)

Extracts a text delta from a single SSE stream chunk.

public abstract string ParseStreamChunk(string chunkJson)

Parameters

chunkJson string

Returns

string