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);
listModels(): Promise<ModelList>;
completionModel(model?: string): StreamingCompletionModel;
embeddingModel(model?: string, options?: ProviderEmbeddingModelOptions): OpenAIEmbeddingModel;
imageGenerationModel(model?: string): OpenAIImageGenerationModel;
audioGenerationModel(model?: string): OpenAIAudioGenerationModel;
transcriptionModel(model?: string): OpenAITranscriptionModel;
}Purpose: factory for OpenAI completion, embedding, image generation, audio generation, transcription, and model listing.
Return behavior: completionModel(...) returns a streaming model backed by Responses API by default or chat completions when completionApi: "chat" is set. listModels() fetches the configured OpenAI or OpenAI-compatible /models endpoint and returns a normalized ModelList.
Notable errors: constructor throws when neither client nor apiKey is supplied; listModels() rejects with ModelListingError when the provider request fails.
Multimodal Models
class OpenAIImageGenerationModel implements ImageGenerationModel {}
class OpenAIAudioGenerationModel implements AudioGenerationModel {}
class OpenAITranscriptionModel implements TranscriptionModel {}Purpose: OpenAI adapters for @anvia/core image generation, text-to-speech, and transcription.
Return behavior: image generation maps base64 image outputs to Uint8Array; audio generation maps speech responses to Uint8Array; transcription returns normalized text.
Notable errors: rejects on OpenAI SDK errors or when image/transcription responses do not contain expected content.
Model constants: GPT_IMAGE_1, GPT_IMAGE_2, DALL_E_2, DALL_E_3, TTS_1, TTS_1_HD, and WHISPER_1.
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.
OpenAIChatCompletionModel
class OpenAIChatCompletionModel implements StreamingCompletionModel {
constructor(client: OpenAI, defaultModel?: string);
completion(request: CompletionRequest): Promise<CompletionResponse>;
streamCompletion(request: CompletionRequest): AsyncIterable<CompletionStreamEvent>;
}Purpose: chat-completions adapter used by OpenAIClient when completionApi: "chat" is set or a custom baseUrl is provided.
Return behavior: maps Anvia requests to chat completion params and maps responses back to Anvia content.
Notable errors: rejects or yields provider SDK errors.
Helper Namespaces
namespace openai {
OpenAIClient;
OpenAIEmbeddingModel;
OpenAIImageGenerationModel;
OpenAIAudioGenerationModel;
OpenAITranscriptionModel;
OpenAIResponsesCompletionModel;
OpenAIChatCompletionModel;
}Purpose: namespaced access to the same public model/client exports.
Return behavior: export namespaces only.
Notable errors: none directly.
