opencode 开始工作:
                                   ▄
  █▀▀█ █▀▀█ █▀▀█ █▀▀▄ █▀▀▀ █▀▀█ █▀▀█ █▀▀█
  █  █ █  █ █▀▀▀ █  █ █    █  █ █  █ █▀▀▀
  ▀▀▀▀ █▀▀▀ ▀▀▀▀ ▀▀▀▀ ▀▀▀▀ ▀▀▀▀ ▀▀▀▀ ▀▀▀▀

最近使用langflow,遇到一个问题,ollama的model name 列表出不来。

开始轮流使用各大模型debug:

minimax2.5,mimo-v2-pro,qwen3.6-plus-free,以为这么多程序员助理,总有一个会吧。

后来在minimax2.5的不懈努力下,干了快到两个工作日时长,终于有点眉目了。

1. 问题定位
                                                                                    
     前端报错显示 POST /api/v1/custom_component/update 返回 404                     
     错误,错误信息为:
                                                                                   
     Client error '404 Not Found' for url 'http://192.168.5.13:11434/api/show'      
                                                                                    
                                                                                    
2. 根本原因
                                                                                    
     Ollama 组件的 get_models 方法会:                                              
     1. 调用 /api/tags 获取模型列表
     2. 对每个模型调用 /api/show 检查 capabilities                                 
                                                                                    
     当 /api/show 返回 404 时,原始代码使用 raise_for_status()                      
     直接抛出异常,导致整个模型列表获取失败,前端显示为空。                         

3. 解决过程

     - 关键发现:代码通过 compile()
     编译后存储,运行时使用的是编译后的代码而非源文件
     - 绕过方案:在 update_component_build_config 中强制使用源文件中的方法

     修改代码:
     - 简化 get_models 方法:只调用 /api/tags 获取模型名称,不调用 /api/show
     检查 capabilities
     - 修改 utils.py:对于 ChatOllamaComponent,直接调用源文件方法

4. 修改的文件

     - src/lfx/src/lfx/components/ollama/ollama.py - 简化 get_models
     - src/lfx/src/lfx/custom/utils.py - 强制使用源文件方法

当时因为测试通过,觉得问题解决了。

后来仔细review代码发现,改动涉及其他功能,有问题!

于是在ollama端检查模型,终于找到问题的真实原因,本地大模型pull不完整!

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐