首页
/ Cheshire Cat AI 核心库中 Ollama 集成问题的分析与修复

Cheshire Cat AI 核心库中 Ollama 集成问题的分析与修复

2025-06-29 15:46:55作者:柯茵沙

问题背景

在 Cheshire Cat AI 核心库从 1.5.1 版本升级到 1.6.1 版本后,用户在使用本地部署的 Ollama 和 Qdrant 组合时遇到了一个关键错误。错误表现为协程对象缺少 get 属性的 AttributeError,导致整个对话流程中断。

错误分析

该问题主要涉及两个技术层面的错误:

  1. 协程处理不当:在 ollama_utils.py 文件中,开发者尝试直接在异步响应对象上调用 get 方法,而正确的做法应该是先等待 JSON 解析完成:
# 错误写法
optional_detail = await response.json().get("error")

# 正确写法
asy_optional_detail = await response.json()
optional_detail = asy_optional_detail.get("error")
  1. API 参数类型不匹配:Ollama API 在 1.33 版本后对 stop 参数的类型要求更加严格,需要传入数组类型而非字符串:
# 错误调用
{"stop": "Human:"}

# 正确调用
{"stop": ["Human:"]}

解决方案

开发团队通过以下方式解决了这些问题:

  1. 移除自定义补丁:由于 LangChain 已经修复了与 Ollama 集成的相关问题,团队移除了自定义的 ollama_utils.py 补丁文件。

  2. 适配新版 API:调整了代码中对 Ollama API 的调用方式,确保参数类型符合最新规范。

  3. 增强工具选择功能:在开发分支中,还改进了本地模型选择工具的能力,使得像 Phi-3 这样的模型也能正确触发工具调用。

技术影响

这一修复不仅解决了当前的错误,还带来了以下改进:

  • 提高了与 Ollama 新版本的兼容性
  • 减少了自定义补丁代码的维护成本
  • 增强了本地模型的功能支持
  • 改善了错误处理机制,使问题更容易诊断

最佳实践建议

对于使用 Cheshire Cat AI 核心库的开发者,建议:

  1. 及时关注 LangChain 和 Ollama 的版本更新
  2. 在升级前检查 API 规范的变更
  3. 优先使用开发分支获取最新修复
  4. 对于关键生产环境,建议进行全面测试后再部署

结论

这次问题的解决展示了开源社区协作的力量,通过及时的问题报告、技术分析和代码修复,快速解决了集成兼容性问题。这也提醒我们在 AI 技术栈集成中需要特别注意各组件版本间的兼容性。

登录后查看全文
热门项目推荐
相关项目推荐