面向 Ollama 的 Vercel AI SDK v6 Provider,提供类型安全、跨 Provider 兼容及原生 Ollama 特性支持。
AI SDK Ollama 是一个专为 Ollama 本地大模型设计的 Vercel AI SDK v6 Provider,基于官方 ollama npm 包构建。它完整实现了 generateText、streamText、embed、Output.object 等核心 AI SDK API,开发者可直接替换 OpenAI/Anthropic 等 Provider 而无需修改上层逻辑。
项目在多个维度提供了增强能力:改进了 Ollama 原生 tool calling 的响应完整性问题;内置 ollama.tools.webSearch() 和 ollama.tools.webFetch() 实现 Web 搜索集成;原生支持 Reranking 可直接用于 RAG 管线;提供 ToolLoopAgent 自主代理配合 MCP 协议(stdio/HTTP 传输,含 OAuth)构建 Agent 系统。
在工程可靠性方面,项目内置 Middleware 系统(全局默认参数注入、<think/> 推理链提取)、级联 JSON 自动修复(jsonrepair + Ollama 专用回退)、以及 smoothStream/createStitchableStream 等流式处理工具。同时支持 mirostat、repeat_penalty、num_ctx 等 Ollama 高级采样参数,以及 llava/bakllava 等视觉模型。代码在 Node.js(≥22)和浏览器中自动适配环境,使用 pnpm monorepo + Turborepo 管理,集成 ESLint/Prettier/TypeScript 严格模式保障代码质量。
安装与快速开始
npm install ai-sdk-ollama ai@^6.0.0
import { ollama } from 'ai-sdk-ollama';
import { generateText } from 'ai';
const { text } = await generateText({
model: ollama('llama3.2'),
prompt: 'Write a haiku about coding',
temperature: 0.8,
});
console.log(text);
关键配置示例
- 嵌入模型:
ollama.embedding('nomic-embed-text') - 重排序模型:
ollama.embeddingReranking('nomic-embed-text') - 高级参数:
ollama('llama3.2', { options: { mirostat: 2, repeat_penalty: 1.1, num_ctx: 8192 } }) - Web Search 需设置环境变量:
OLLAMA_API_KEY
待确认信息:NPM 包发布状态未直接验证;Web Search API 依赖 Ollama 云端,公开可用性与定价未确认;AI SDK v6 正式发布状态待确认;浏览器端连接本地 Ollama 的具体方式(CORS 或代理)未详细说明。当前版本线 v3+ 对应 AI SDK v6,AI SDK v5 用户需使用 ai-sdk-ollama@^2.2.0。