Ollama v0.8.0 已发布,新版本带来了通过工具调用进行流式响应 (Streaming responses with tool calling) 功能,让开发者构建的聊天应用从此能够像流式输出普通文本一样,实时地调用工具并展示结果。
这一更新使得所有聊天应用都能够在模型生成内容的同时,实时地调用外部工具,并将整个过程(包括模型的思考、工具的调用指令、以及最终的文本回复)流畅地展示给用户。
该功能已在 Ollama 的 Python 和 JavaScript 库以及 cURL API 中得到全面支持。
Ollama v0.8.0 的更新亮点包括:
-
即时工具调用与内容流式输出: 应用不再需要等待模型完整响应后才能处理工具调用,模型生成内容和工具调用指令可以同步、分块地流式传输。
-
全新智能增量解析器: Ollama 构建了新的解析器,它专注于理解工具调用的结构,而不仅仅是寻找JSON。这使得Ollama能够:
-
实时分离: 在流式输出用户内容的同时,准确检测、抑制和解析工具调用相关的Token。
-
兼容广泛模型: 无论模型是否经过工具特定Token的训练,都能有效工作,甚至能处理模型输出的部分前缀或在必要时回退到JSON解析。
-
提升准确性: 通过前缀匹配和状态管理,显著改善了工具调用的可靠性,避免了以往可能出现的重复或错误解析问题。
-
-
广泛的模型支持: 包括 Qwen 3, Devstral, Qwen2.5 系列, Llama 3.1, Llama 4 等众多支持工具调用的模型。
-
开发者友好的集成: 提供了清晰的 cURL, Python, JavaScript 示例,方便快速上手。
-
模型上下文协议 (MCP) 增强: 使用 MCP 的开发者现在也可以享受流式聊天内容和工具调用的好处,并且官方建议使用更大的上下文窗口(如 32k)可以进一步提升工具调用的性能和结果质量。
来源:
https://mp.weixin.qq.com/s/k16PRepQHeCp_1FMpfzuxA
https://ollama.com/blog/streaming-tool
https://x.com/ollama/status/1927835844754194638