/** * LLM Provider Factory * * Esperanto-style factory for creating LLM providers * * @requirement REQ-LLM-001 * @design DES-KATASHIRO-003-LLM */ import type { LLMProvider, ProviderConfig } from '../types.js'; import type { OllamaProviderConfig } from './OllamaLLMProvider.js'; import type { OpenAIProviderConfig } from './OpenAILLMProvider.js'; import type { AzureOpenAIProviderConfig } from './AzureOpenAILLMProvider.js'; /** * プロバイダータイプ */ export type LLMProviderType = 'mock' | 'ollama' | 'openai' | 'openai-compatible' | 'azure-openai'; /** * プロバイダー設定マップ */ export interface LLMProviderConfigMap { mock: ProviderConfig; ollama: OllamaProviderConfig; openai: OpenAIProviderConfig; 'openai-compatible': OpenAIProviderConfig; 'azure-openai': AzureOpenAIProviderConfig; } /** * LLM Provider Factory * * Esperantoスタイルのファクトリクラス * * @example * ```typescript * // 利用可能なプロバイダーを確認 * const providers = LLMFactory.getAvailableProviders(); * * // プロバイダーを作成 * const provider = LLMFactory.create('ollama', { * baseUrl: 'http://192.168.224.1:11434', * model: 'llama3.2', * }); * * // または環境変数から自動設定 * const provider = LLMFactory.create('openai'); * ``` */ export declare class LLMFactory { /** * プロバイダー作成 */ static create(provider: T, config?: Partial): LLMProvider; /** * 利用可能なプロバイダー一覧 */ static getAvailableProviders(): LLMProviderType[]; /** * デフォルトプロバイダー取得 * * 環境変数から自動判定 */ static getDefaultProvider(): LLMProvider; /** * プロバイダーの利用可能確認 */ static isProviderConfigured(provider: LLMProviderType): boolean; } /** * 便利関数: LLMプロバイダー作成 */ export declare function createLLMProvider(provider: T, config?: Partial): LLMProvider; /** * 便利関数: デフォルトプロバイダー取得 */ export declare function getDefaultLLMProvider(): LLMProvider; //# sourceMappingURL=LLMFactory.d.ts.map