Class CompletionProtocol
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
Constructors
CompletionProtocol()
protected CompletionProtocol()
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
requestParamsProtocolRequestParamsfunctionsIReadOnlyList<FunctionDefinition>modeFunctionCallModemessageConverterFunc<Message, object>
Returns
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
requestParamsProtocolRequestParamsmessageConverterFunc<Message, object>
Returns
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
messageMessage
Returns
CreateFunctionRequest(string, object)
Creates the HTTP request for a function-calling completion call.
public abstract HttpRequestMessage CreateFunctionRequest(string apiKey, object requestBody)
Parameters
Returns
CreateRequest(string, object)
Creates the HTTP request for a completion call.
public abstract HttpRequestMessage CreateRequest(string apiKey, object requestBody)
Parameters
Returns
ExtractFunctionCalls(string)
Extracts every function call from one API response JSON payload.
public abstract (string content, FunctionCallBatch functionCalls) ExtractFunctionCalls(string responseJson)
Parameters
responseJsonstring
Returns
ExtractResponse(string)
Extracts the text response content from the API response JSON.
public abstract string ExtractResponse(string responseJson)
Parameters
responseJsonstring
Returns
ParseStreamChunk(string)
Extracts a text delta from a single SSE stream chunk.
public abstract string ParseStreamChunk(string chunkJson)
Parameters
chunkJsonstring