/** * OpenAI LLM Provider * * OpenAI API provider for chat completions * * @requirement REQ-LLM-001 * @design DES-KATASHIRO-003-LLM */ import type { z, ZodType } from 'zod'; import type { ProviderConfig, GenerateRequest, GenerateResponse, StreamChunk } from '../types.js'; import { BaseLLMProvider } from './BaseLLMProvider.js'; /** * OpenAI設定 */ export interface OpenAIProviderConfig extends ProviderConfig { /** APIキー */ apiKey?: string; /** ベースURL(カスタムエンドポイント用) */ baseUrl?: string; /** モデル名 */ model?: string; /** 組織ID */ organization?: string; } /** * OpenAI LLMプロバイダー * * OpenAI API(またはOpenAI互換API)を使用したテキスト生成 * * @example * ```typescript * // OpenAI API * const provider = new OpenAILLMProvider({ * apiKey: process.env.OPENAI_API_KEY, * model: 'gpt-4o', * }); * * // OpenAI互換API(vLLM, LM Studio等) * const localProvider = new OpenAILLMProvider({ * baseUrl: 'http://localhost:8000/v1', * model: 'local-model', * }); * ``` */ export declare class OpenAILLMProvider extends BaseLLMProvider { readonly name = "openai"; readonly supportedModels: string[]; private readonly apiKey; private readonly baseUrl; private readonly model; private readonly organization?; constructor(config?: OpenAIProviderConfig); protected getDefaultModel(): string; /** * メッセージ形式変換 */ private convertMessages; /** * ツール定義変換 */ private convertTools; /** * Finish Reason変換 */ private convertFinishReason; /** * テキスト生成 */ generate(request: GenerateRequest): Promise; /** * ストリーミング生成 */ generateStream(request: GenerateRequest): AsyncGenerator; /** * 構造化出力生成 */ generateStructured(request: GenerateRequest, schema: T): Promise>; /** * トークン数カウント(近似) */ countTokens(text: string, _model?: string): Promise; } /** * OpenAI互換プロバイダー(ファクトリ関数) */ export declare function createOpenAICompatibleLLMProvider(baseUrl: string, model: string, config?: Partial): OpenAILLMProvider; //# sourceMappingURL=OpenAILLMProvider.d.ts.map