/** * Embedding Provider Factory * * Esperanto-style factory for creating embedding providers * * @requirement REQ-RAG-001 * @design DES-KATASHIRO-003-RAG */ import type { EmbeddingProvider, EmbeddingConfig } from '../types.js'; import type { OllamaEmbeddingConfig } from './OllamaEmbeddingProvider.js'; import type { OpenAIEmbeddingConfig } from './OpenAIEmbeddingProvider.js'; import type { AzureOpenAIEmbeddingConfig } from './AzureOpenAIEmbeddingProvider.js'; /** * プロバイダータイプ */ export type EmbeddingProviderType = 'mock' | 'ollama' | 'openai' | 'openai-compatible' | 'azure-openai'; /** * プロバイダー設定マップ */ export interface EmbeddingProviderConfigMap { mock: EmbeddingConfig; ollama: OllamaEmbeddingConfig; openai: OpenAIEmbeddingConfig; 'openai-compatible': OpenAIEmbeddingConfig; 'azure-openai': AzureOpenAIEmbeddingConfig; } /** * Embedding Provider Factory * * Esperantoスタイルのファクトリクラス * * @example * ```typescript * // 利用可能なプロバイダーを確認 * const providers = EmbeddingFactory.getAvailableProviders(); * * // プロバイダーを作成 * const provider = EmbeddingFactory.create('ollama', { * baseUrl: 'http://192.168.224.1:11434', * model: 'nomic-embed-text', * }); * * // または環境変数から自動設定 * const provider = EmbeddingFactory.create('openai'); * ``` */ export declare class EmbeddingFactory { /** * プロバイダー作成 */ static create(provider: T, config?: Partial): EmbeddingProvider; /** * 利用可能なプロバイダー一覧 */ static getAvailableProviders(): EmbeddingProviderType[]; /** * デフォルトプロバイダー取得 * * 環境変数から自動判定 */ static getDefaultProvider(): EmbeddingProvider; /** * プロバイダーの利用可能確認 */ static isProviderConfigured(provider: EmbeddingProviderType): boolean; } /** * 便利関数: Embeddingプロバイダー作成 */ export declare function createEmbeddingProvider(provider: T, config?: Partial): EmbeddingProvider; /** * 便利関数: デフォルトプロバイダー取得 */ export declare function getDefaultEmbeddingProvider(): EmbeddingProvider; //# sourceMappingURL=EmbeddingFactory.d.ts.map