![[Bug]: ollama_chat wildcard expansion prepends extra "ollama/" prefix when model_name differs from provider prefix](https://www.chat-gpts.plus/wp-content/uploads/2026/06/30358-82cfbbb3.jpg)
[Bug]: ollama_chat wildcard expansion prepends extra “ollama/” prefix when model_name differs from provider prefix
快速结论:当使用 ollama_chat 通配符配置(如 model_name: "ollama_server1/*")且自定义前缀与内部 provider 标识 “ollama” 不一致时,LiteLLM 的通配符展开逻辑会错误地额外追加 ollama/ 前缀,导致 /v1/models 返回的模型 ID 变为 ollama_server1/ollama/gemma3:1b。优先检查 model_name 前缀是否与内部 provider 不一致,当前可改用显式模型列表作为临时方案。
问题场景
用户在 LiteLLM Proxy 中配置 ollama_chat 通配符路由,希望通过自定义 model_name 前缀(例如 ollama_server1/*)区分多个 Ollama 实例。调用 /v1/models 接口时返回的模型 ID 中出现了多余的 ollama/ 前缀,导致所有模型不可调用。
报错原文
litellm.APIConnectionError: Ollama_chatException -
{"error":"model 'ollama/gemma3:1b' not found"}
Received Model Group=ollama_server1/ollama/gemma3:1b
Available Model Group Fallbacks=None
LiteLLM Retried: 3 times, LiteLLM Max Retries: 3
原因分析
根因位于 LiteLLM 的通配符展开逻辑中。当处理 ollama_chat/* 通配符时,路由器在内部解析 provider 前缀(”ollama”)并将其拼接到已展开的模型 ID 前,但未检查 model_name 是否已经定义了自定义前缀。展开函数(位于 litellm/proxy/utils.py 中的 _get_models_from_provider() 及相关通配符处理函数)大致执行:
expanded_model = f"{provider_prefix}/{base_model}"
它没有判断 model_name 中的自定义前缀是否应该替换(而不是叠加)provider 前缀,导致当 ollama_server1/* + ollama_chat/* 时,展开步骤为每个发现的模型额外添加 ollama/,最终得到 ollama_server1/ollama/gemma3:1b。
环境排查
- 确认 LiteLLM 版本是否为 1.88.1 或相近版本(该 bug 在此版本中已复现)
- 检查
model_name配置中的前缀是否与 provider 内部前缀(如 “ollama”、”openai” 等)不一致 - 确认 config.yaml 中是否使用了通配符展开(
model_name: "your_prefix/*"配合model: "ollama_chat/*") - 检查代理日志中
Received Model Group字段是否出现多余前缀
解决步骤
- 临时绕过方案(推荐优先尝试):改用显式模型列表替代通配符展开。对于每个 Ollama 实例单独配置具体模型 ID:
- model_name: "ollama_server1/gemma3:1b" litellm_params: model: "ollama_chat/gemma3:1b" api_base: "http://ollama-server1:11434" - model_name: "ollama_server2/gemma3:1b" litellm_params: model: "ollama_chat/gemma3:1b" api_base: "http://ollama-server2:11434" - 长期修复方向:等待 LiteLLM 提交 Pull Request 修复通配符展开逻辑。修复方案应包括:
- 追踪通配符展开路径中的 provider 前缀处理
- 在拼接 provider 前缀前检查 resolved model ID 是否已包含该前缀
- 允许
model_name完全控制暴露的模型 ID,不让路由器注入 provider 特定前缀
- 监控 Issue 状态:关注 GitHub Issue #30358 的进展,该问题已被标注为 “bug” 和 “proxy”,有贡献者表示将提交修复 PR。
验证方法
修复后或使用显式配置后,调用 /v1/models 接口确认返回的模型 ID 格式。预期输出:ollama_server1/gemma3:1b(无多余 ollama/ 前缀)。同时调用任意客户端使用该模型 ID 发起请求,确认不再返回 model 'ollama/gemma3:1b' not found 错误。



