opencode 开始工作:
▄
█▀▀█ █▀▀█ █▀▀█ █▀▀▄ █▀▀▀ █▀▀█ █▀▀█ █▀▀█
█ █ █ █ █▀▀▀ █ █ █ █ █ █ █ █▀▀▀
▀▀▀▀ █▀▀▀ ▀▀▀▀ ▀▀▀▀ ▀▀▀▀ ▀▀▀▀ ▀▀▀▀ ▀▀▀▀
最近使用langflow,遇到一个问题,ollama的model name 列表出不来。
开始轮流使用各大模型debug:
minimax2.5,mimo-v2-pro,qwen3.6-plus-free,以为这么多程序员助理,总有一个会吧。
后来在minimax2.5的不懈努力下,干了快到两个工作日时长,终于有点眉目了。
- 问题定位
前端报错显示 POST /api/v1/custom_component/update 返回 404
错误,错误信息为:
Client error '404 Not Found' for url 'http://192.168.5.13:11434/api/show'
- 根本原因
Ollama 组件的 get_models 方法会:
-
调用 /api/tags 获取模型列表
-
对每个模型调用 /api/show 检查 capabilities
当 /api/show 返回 404 时,原始代码使用 raise_for_status()
直接抛出异常,导致整个模型列表获取失败,前端显示为空。
- 解决过程
- 关键发现:代码通过 compile()
编译后存储,运行时使用的是编译后的代码而非源文件
- 绕过方案:在 update_component_build_config 中强制使用源文件中的方法
修改代码:
- 简化 get_models 方法:只调用 /api/tags 获取模型名称,不调用 /api/show
检查 capabilities
- 修改 utils.py:对于 ChatOllamaComponent,直接调用源文件方法
- 修改的文件
-
src/lfx/src/lfx/components/ollama/ollama.py - 简化 get_models
-
src/lfx/src/lfx/custom/utils.py - 强制使用源文件方法
当时因为测试通过,觉得问题解决了。
后来仔细review代码发现,改动涉及其他功能,有问题!
于是在ollama端检查模型,终于找到问题的真实原因,本地大模型pull不完整!