Skip to content

fix(backend): 模型名含斜杠时按 OpenAI 兼容兜底路由 + 模型测试改 ping 语义 - #85

Merged
fxbin merged 2 commits into
mainfrom
issue-83-openai-compat-fallback
Sep 28, 2026
Merged

fxbin merged 2 commits into
mainfrom
issue-83-openai-compat-fallback

Conversation

@fxbin

@fxbin fxbin commented Sep 28, 2026

Copy link
Copy Markdown
Owner

What & why

修复 #83(两个提交):

① resolver 应用层 OpenAI 兼容兜底(fix):resolve_litellm_model 原先对含 / 的 model_id 一律原样透传,跳过 provider 路由——「组织/模型」命名(网关常见格式)被 litellm 按首段当未知 provider 解析,报 BadRequestError: LLM Provider NOT provided。新规则:

  1. litellm_model 显式覆写优先(不变);
  2. provider=custom → openai/ 前缀(组织/模型命名同样走这里);
  3. 显式 provider → 按该 provider 拼接,同前缀去重;
  4. 无 provider 信息 + 含 /:首段命中 litellm 注册表(带缓存,取 .value)→ 原样透传(旧语义保留);首段未知 → 兜底 openai/ 前缀(应用层「未知即 OpenAI 兼容」约定,讨论见 [P1][LLM] 模型名含斜杠的自定义网关模型被 litellm 拒绝:Provider NOT provided #83 评论);
  5. 裸模型名 → 原样(litellm 自身默认 openai)。

② 模型测试改 ping 语义(chore):现有 POST /models/{id}/test 即连通性检查(复用而非新造端点),提示词改为 ping、max_tokens 200→16——输出压到短语级,成本趋近于零、推理型模型不再长思考;思考占满导致空正文时沿用既有 note 分支提示重试。

Refs #83。Closes #83。

Area

  • backend

Verification

  • 新增 6 个 resolver 回归(custom/显式 provider + 组织命名、前缀去重、已知前缀透传、未知前缀兜底、拼写错误兜底);既有 resolver 语义测试全部保持
  • 无测试钉住旧提示词/参数(已核实)
  • ruff check + format 通过;LLM 定向套件绿
  • 全量 make test-backend(TEST_PG_PORT=5341,退出码落盘 /tmp/final-full.exit)= 0

Verifier verdict

CI 门禁即机器 Verifier;路由规则由新旧共 10 个 resolver 单测钉死。本 PR 按新规则停在合并前等所有者审批。

Checklist

  • Branch named issue-<number>-<short-slug> and PR links the issue
  • 记录中不出现真实模型名(测试数据均为 example-org/example-29b 占位)
  • 无本地文件入库

@fxbin
fxbin merged commit a02a05b into main Sep 28, 2026
5 checks passed
@fxbin
fxbin deleted the issue-83-openai-compat-fallback branch September 28, 2026 15:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[P1][LLM] 模型名含斜杠的自定义网关模型被 litellm 拒绝:Provider NOT provided

1 participant