/** * Ollama LLM Provider * * Local LLM provider using Ollama * * @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'; /** * Ollama設定 */ export interface OllamaProviderConfig extends ProviderConfig { /** ベースURL(デフォルト: http://localhost:11434) */ baseUrl?: string; /** モデル名(デフォルト: llama3.2) */ model?: string; /** Keep Alive(モデルをメモリに保持する時間) */ keepAlive?: string; } /** * Ollama LLMプロバイダー * * ローカルでOllamaを使用したテキスト生成 * * @example * ```typescript * const provider = new OllamaLLMProvider({ * baseUrl: 'http://192.168.224.1:11434', * model: 'llama3.2', * }); * * const response = await provider.generate({ * messages: [{ role: 'user', content: 'Hello!' }], * }); * ``` */ export declare class OllamaLLMProvider extends BaseLLMProvider { readonly name = "ollama"; readonly supportedModels: string[]; private readonly baseUrl; private readonly model; private readonly keepAlive; constructor(config?: OllamaProviderConfig); protected getDefaultModel(): string; /** * メッセージ形式変換 */ private convertMessages; /** * テキスト生成 */ generate(request: GenerateRequest): Promise; /** * ストリーミング生成 */ generateStream(request: GenerateRequest): AsyncGenerator; /** * 構造化出力生成(Ollama JSON mode) */ generateStructured(request: GenerateRequest, schema: T): Promise>; /** * 利用可能なモデル一覧取得 */ listModels(): Promise; /** * モデルの存在確認 */ isModelAvailable(modelName?: string): Promise; } //# sourceMappingURL=OllamaLLMProvider.d.ts.map