/** * Ollama adapter for local LLM integration * * Supports any model available through Ollama including Llama, Mistral, Qwen, and more. * * @packageDocumentation */ import type { LLMProvider, OllamaConfig, CompletionRequest, CompletionResponse } from '../../types/llm.js'; import { BaseLLMAdapter } from './base.js'; /** * Meta Llama Models (Latest) * - llama3.3: 70B parameter model, excellent general purpose * - llama3.2: Available in 1B, 3B, and vision variants */ export declare const LLAMA_MODELS: { readonly 'llama3.3': "llama3.3"; readonly 'llama3.3:70b': "llama3.3:70b"; readonly 'llama3.2': "llama3.2"; readonly 'llama3.2:1b': "llama3.2:1b"; readonly 'llama3.2:3b': "llama3.2:3b"; readonly 'llama3.2-vision': "llama3.2-vision"; readonly 'llama3.1': "llama3.1"; readonly 'llama3.1:8b': "llama3.1:8b"; readonly 'llama3.1:70b': "llama3.1:70b"; }; /** * Mistral Models * - mistral-large: Most capable Mistral model * - mistral-nemo: Fast, efficient * - mixtral: Mixture of experts */ export declare const MISTRAL_MODELS: { readonly 'mistral-large': "mistral-large"; readonly 'mistral-nemo': "mistral-nemo"; readonly mistral: "mistral"; readonly mixtral: "mixtral"; readonly 'mixtral:8x7b': "mixtral:8x7b"; }; /** * Qwen Models (Alibaba) * - qwen2.5: Latest Qwen release * - qwen2.5-coder: Optimized for coding */ export declare const QWEN_MODELS: { readonly 'qwen2.5': "qwen2.5"; readonly 'qwen2.5:72b': "qwen2.5:72b"; readonly 'qwen2.5-coder': "qwen2.5-coder"; readonly qwen2: "qwen2"; }; /** * Coding-Focused Models */ export declare const CODING_MODELS: { readonly codellama: "codellama"; readonly 'deepseek-coder-v2': "deepseek-coder-v2"; readonly codegemma: "codegemma"; readonly starcoder2: "starcoder2"; }; /** * Small/Fast Models */ export declare const SMALL_MODELS: { readonly phi3: "phi3"; readonly 'phi3:mini': "phi3:mini"; readonly gemma2: "gemma2"; readonly 'gemma2:2b': "gemma2:2b"; }; /** * All popular Ollama models */ export declare const OLLAMA_MODELS: { readonly phi3: "phi3"; readonly 'phi3:mini': "phi3:mini"; readonly gemma2: "gemma2"; readonly 'gemma2:2b': "gemma2:2b"; readonly codellama: "codellama"; readonly 'deepseek-coder-v2': "deepseek-coder-v2"; readonly codegemma: "codegemma"; readonly starcoder2: "starcoder2"; readonly 'qwen2.5': "qwen2.5"; readonly 'qwen2.5:72b': "qwen2.5:72b"; readonly 'qwen2.5-coder': "qwen2.5-coder"; readonly qwen2: "qwen2"; readonly 'mistral-large': "mistral-large"; readonly 'mistral-nemo': "mistral-nemo"; readonly mistral: "mistral"; readonly mixtral: "mixtral"; readonly 'mixtral:8x7b': "mixtral:8x7b"; readonly 'llama3.3': "llama3.3"; readonly 'llama3.3:70b': "llama3.3:70b"; readonly 'llama3.2': "llama3.2"; readonly 'llama3.2:1b': "llama3.2:1b"; readonly 'llama3.2:3b': "llama3.2:3b"; readonly 'llama3.2-vision': "llama3.2-vision"; readonly 'llama3.1': "llama3.1"; readonly 'llama3.1:8b': "llama3.1:8b"; readonly 'llama3.1:70b': "llama3.1:70b"; }; /** * Model alias type for convenient model selection */ export type OllamaModelAlias = keyof typeof OLLAMA_MODELS; /** * Resolve a model alias or name (passthrough for Ollama since names are direct) */ export declare function resolveOllamaModel(modelOrAlias: string): string; /** * Ollama adapter for local models */ export declare class OllamaAdapter extends BaseLLMAdapter { private readonly baseUrl; constructor(config: OllamaConfig); get provider(): LLMProvider; isConfigured(): boolean; complete(request: CompletionRequest): Promise; /** * Check if Ollama is available */ isAvailable(): Promise; /** * List available models */ listModels(): Promise; } /** * Create an Ollama adapter * * @param model - Any model name that's been pulled via `ollama pull ` * Common models: llama3.3, mistral, qwen2.5, codellama * Run `ollama list` to see installed models. * * @example * ```typescript * // Using latest Llama model * const adapter = createOllamaAdapter('llama3.3'); * * // Using Mistral * const adapter = createOllamaAdapter('mistral-large'); * * // Using coding-focused model * const adapter = createOllamaAdapter('qwen2.5-coder'); * * // Using any custom or fine-tuned model * const adapter = createOllamaAdapter('my-custom-model'); * ``` */ export declare function createOllamaAdapter(model?: OllamaModelAlias | string, overrides?: Partial): OllamaAdapter; /** * List popular Ollama model aliases */ export declare function listOllamaModels(): { alias: string; modelId: string; }[]; //# sourceMappingURL=ollama.d.ts.map