Anvia
Providers

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.