/** * OpenAI Provider Implementation * * Implements the LLMProvider interface for the OpenAI API. * Handles text generation, image understanding, image generation, and streaming. */ import type { LLMProvider, LLMCapabilities, ServiceType } from '../types.js'; import type { TextTextParams, ImageTextParams, TextImageParams, ImageImageParams, DocumentTextParams, EmbedParams, EmbedResponse, LLMResponse, LLMStreamResponse, Logger } from '../../llm_api/types.js'; import { type OpenAIGenerationConfig } from './openai_client.js'; /** * Configuration for the OpenAI provider */ export interface OpenAIProviderConfig { /** API key from .env.local (OPENAI_API_KEY) */ api_key: string; /** Chat completions API URL (default: 'https://api.openai.com/v1/chat/completions') */ api_url?: string; /** Image generation API URL (default: 'https://api.openai.com/v1/images/generations') */ api_url_image?: string; /** Embeddings API URL (default: 'https://api.openai.com/v1/embeddings') */ api_url_embed?: string; /** Model for text_text service (default: 'gpt-4o') */ model_text_text?: string; /** Model for image_text service (default: 'gpt-4o') */ model_image_text?: string; /** Model for text_image service (default: 'gpt-image-1') */ model_text_image?: string; /** Model for embed service (default: 'text-embedding-3-small') */ model_embed?: string; /** Generation parameters applied to text calls */ generation_config?: OpenAIGenerationConfig; /** Capabilities this provider supports (overrides defaults when specified) */ capabilities?: ServiceType[]; /** Logger instance */ logger: Logger; } /** * OpenAI LLM Provider * Implements the LLMProvider interface for the OpenAI API */ export declare class OpenAIProvider implements LLMProvider { private readonly name; private readonly api_key; private readonly api_url; private readonly api_url_image; private readonly api_url_embed; private readonly model_text_text; private readonly model_image_text; private readonly model_text_image; private readonly model_embed; private readonly generation_config; private readonly capabilities; private readonly logger; constructor(config: OpenAIProviderConfig); get_name(): string; get_capabilities(): LLMCapabilities; get_model_for_service(service_type: ServiceType): string | undefined; text_text(params: TextTextParams, _logger: Logger): Promise; image_text(params: ImageTextParams, _logger: Logger): Promise; text_image(params: TextImageParams, _logger: Logger): Promise; text_text_stream(params: TextTextParams, _logger: Logger): Promise; embed(params: EmbedParams, _logger: Logger): Promise; image_image(_params: ImageImageParams, _logger: Logger): Promise; document_text(_params: DocumentTextParams, _logger: Logger): Promise; } //# sourceMappingURL=openai_provider.d.ts.map