/** * Ollama Embedding Provider * * Local embedding provider using Ollama * * @requirement REQ-RAG-001 * @design DES-KATASHIRO-003-RAG */ import { BaseEmbeddingProvider } from './BaseEmbeddingProvider.js'; import type { EmbeddingConfig } from '../types.js'; /** * Ollama設定 */ export interface OllamaEmbeddingConfig extends EmbeddingConfig { /** ベースURL(デフォルト: http://localhost:11434) */ baseUrl?: string; /** モデル名(デフォルト: nomic-embed-text) */ model?: string; /** Keep Alive(モデルをメモリに保持する時間) */ keepAlive?: string; } /** * Ollama Embeddingプロバイダー * * ローカルでOllamaを使用した埋め込み生成 * * @example * ```typescript * const provider = new OllamaEmbeddingProvider({ * baseUrl: 'http://192.168.224.1:11434', * model: 'nomic-embed-text', * }); * * const embedding = await provider.embed('Hello, world!'); * ``` */ export declare class OllamaEmbeddingProvider extends BaseEmbeddingProvider { readonly name = "ollama"; private readonly baseUrl; private readonly model; private readonly keepAlive; private _dimensions; get dimensions(): number; constructor(config?: OllamaEmbeddingConfig); /** * モデルごとのデフォルト次元数 */ private getDefaultDimensions; /** * 単一テキストの埋め込み生成 */ embed(text: string): Promise; /** * バッチ埋め込み生成(Ollama固有実装) * * Ollamaはネイティブのバッチ処理をサポートしていないため、 * 並列リクエストで処理 */ protected embedBatchInternal(texts: string[]): Promise; /** * 利用可能なモデル一覧取得 */ listModels(): Promise; /** * モデルの存在確認 */ isModelAvailable(): Promise; } //# sourceMappingURL=OllamaEmbeddingProvider.d.ts.map