OpenAI Provider
Public exports from @anvia/openai.
Import from @anvia/openai.
OpenAIClient
type OpenAIClientOptions = {
apiKey?: string;
baseUrl?: string;
headers?: Record<string, string>;
completionApi?: "responses" | "chat";
client?: OpenAI;
};
class OpenAIClient {
readonly client: OpenAI;
constructor(options?: OpenAIClientOptions);
completionModel(model?: string): StreamingCompletionModel;
embeddingModel(model?: string, options?: ProviderEmbeddingModelOptions): OpenAIEmbeddingModel;
}Purpose: factory for OpenAI completion and embedding models.
Return behavior: completionModel(...) returns a streaming model backed by Responses API by default or chat completions when completionApi: "chat" is set.
Notable errors: constructor throws when neither client nor apiKey is supplied.
OpenAIEmbeddingModel
type ProviderEmbeddingModelOptions = {
dimensions?: number;
user?: string;
maxBatchSize?: number;
};
class OpenAIEmbeddingModel implements EmbeddingModel {
readonly dimensions?: number;
readonly maxBatchSize: number;
constructor(client: OpenAI, model: string, options?: ProviderEmbeddingModelOptions);
embedTexts(texts: string[]): Promise<Embedding[]>;
}Purpose: OpenAI embedding adapter.
Return behavior: returns one Embedding per input text.
Notable errors: rejects on OpenAI SDK errors or mismatched embedding counts.
OpenAIResponsesCompletionModel
class OpenAIResponsesCompletionModel implements StreamingCompletionModel {
constructor(client: OpenAI, defaultModel?: string);
completion(request: CompletionRequest): Promise<CompletionResponse>;
streamCompletion(request: CompletionRequest): AsyncIterable<CompletionStreamEvent>;
}Purpose: completion adapter for OpenAI Responses API.
Return behavior: non-streaming calls return normalized CompletionResponse; streaming calls yield normalized completion events.
Notable errors: rejects or yields errors from OpenAI Responses API calls.
OpenAICompatibleCompletionModel
class OpenAICompatibleCompletionModel implements StreamingCompletionModel {
constructor(client: OpenAI, defaultModel?: string);
completion(request: CompletionRequest): Promise<CompletionResponse>;
streamCompletion(request: CompletionRequest): AsyncIterable<CompletionStreamEvent>;
}Purpose: chat-completions adapter for OpenAI-compatible providers.
Return behavior: maps Anvia requests to chat completion params and maps responses back to Anvia content.
Notable errors: rejects or yields provider SDK errors.
OpenAICompatibleEmbeddingModel
class OpenAICompatibleEmbeddingModel extends OpenAIEmbeddingModel {}Purpose: named embedding model export for OpenAI-compatible providers.
Return behavior: inherits OpenAIEmbeddingModel behavior.
Notable errors: same as OpenAIEmbeddingModel.
Conversion Helpers
function toOpenAIResponsesParams(defaultModel: string, request: CompletionRequest): Record<string, unknown>;
function fromOpenAIResponse(response: unknown): CompletionResponse;
function fromOpenAIStreamEvent(event: unknown): CompletionStreamEvent | undefined;
function toOpenAICompatibleChatParams(defaultModel: string, request: CompletionRequest): Record<string, unknown>;
function fromOpenAICompatibleChatResponse(response: unknown): CompletionResponse;
function fromOpenAICompatibleChatStreamChunk(chunk: unknown): CompletionStreamEvent[];Purpose: testable request/response mapping helpers.
Return behavior: convert between Anvia contracts and OpenAI or OpenAI-compatible wire shapes.
Notable errors: malformed provider payloads can produce incomplete normalized output or throw while parsing.
Helper Namespaces
const openaiMessageHelpers: {
messageToResponsesInput(message: Message): Record<string, unknown>[];
toolDefinitionToOpenAI(tool: ToolDefinition): Record<string, unknown>;
};
const openAICompatibleMessageHelpers: {
messageToChatMessages(message: Message): Record<string, unknown>[];
toolDefinitionToOpenAICompatible(tool: ToolDefinition): Record<string, unknown>;
};
namespace openai { /* same OpenAI Responses exports */ }
namespace openaiCompatible { /* same compatible exports */ }Purpose: namespaced access to lower-level mapping helpers.
Return behavior: helper methods return provider-shaped objects.
Notable errors: none directly.
