model-id-string-mismatch-debugging · ZH · 2026-10-11

报『模型不存在』:同一个模型在不同聚合站的 ID 写法差异

在不同 LLM API 聚合站之间迁移或并行调用时,同一个模型常因 ID 写法差异而报「模型不存在」或静默回落到其他模型。本文解释这类问题的常见原因,并给出在本站查询规范模型 ID 的可靠方法。

为什么同一个模型会报「模型不存在」

当你把别的聚合站能跑通的代码搬到另一个聚合站,最常见的报错就是 model not found 之类的 404,或者更隐蔽的「静默回落」——请求没报错,但返回的模型其实不是你想要的。

根本原因在于:模型 ID 本质上只是聚合站内部的路由键,不是行业统一标准。不同聚合站对上游模型的路由命名、前缀规则、版本粒度、大小写与分隔符处理都不一样,所以同一个模型在不同站点的 ID 可能完全不同。

常见的 ID 差异来源

1. 前缀与命名空间

有些站会把厂商或渠道作为前缀,例如 anthropic/claude-...、openai/gpt-...、deepseek/deepseek-...。另一家可能直接用裸模型名,不带任何前缀。带前缀的 ID 在没这个前缀约定的站上自然找不到。

2. 版本与快照粒度

同一个模型可能有多种写法:

  • 只写家族名,如 claude-3-5-sonnet
  • 带日期快照,如 claude-3-5-sonnet-20241022
  • 带 latest 之类的别名

不同站支持的粒度不同。有的站只认带日期的快照,有的站只认不带日期的别名,写错一种就会 404。

3. 大小写与分隔符

GPT-4o、gpt-4o、gpt_4o、gpt4o 在不同站可能只有一种被接受。大小写敏感与否、用不用连字符,都是各站自己定的。

4. 渠道映射不同

聚合站可能把同一个模型名路由到不同的上游渠道(官方、第三方、自建等)。当某个 ID 只在特定渠道下有效时,换个站或换个渠道就会找不到。

静默回落更危险

比 404 更麻烦的是「静默回落」:请求成功返回,但实际调用的模型不是你要的那个。常见情形包括:

  • 你写的 ID 在站内有「近似匹配」,系统自动选了一个相近的模型
  • 某个别名被映射到了默认模型
  • 请求里带了多个候选模型,系统选了可用的那个

结果就是:接口不报错,但输出风格、能力、价格都和预期不符。排查时如果不核对返回的模型名,很容易误判为「模型变笨了」。

如何在本站查到规范模型 ID

不要靠记忆或复制别站的 ID,务必以本站在线信息为准:

  1. 查本站的模型列表接口或文档页。本站支持用一个 API key 调用多个模型(Claude、GPT、DeepSeek、Qwen、GLM、Kimi 等)。以站内列出的 ID 为唯一准绳,直接复制使用。
  2. 调用模型列表端点。如果本站提供了类似 /v1/models 的端点,用你的 key 请求一次,把返回的 ID 作为可用值。
  3. 核对响应里的模型字段。每次调用后检查返回体中 model 字段,确认它就是你请求的那个 ID。这一步能直接暴露静默回落。
  4. 跑最小冒烟测试。换站或换 ID 后,先用一条极短的请求验证,再放进正式流程。

迁移代码时的建议

  • 把模型 ID 抽成配置项,不要硬编码在业务代码里。换站时只改配置,不改逻辑。
  • 记录实际生效的模型名。把响应里的 model 写进日志,便于事后审计。
  • 区分「找不到」和「回落」。前者立刻报错,后者需要主动检查才能发现,处理方式不同。
  • 不要跨站复制 ID。看到别站能用的写法,先在本站确认是否存在等价 ID。

一句话总结

模型 ID 是聚合站的内部路由键,不是通用标准。报「模型不存在」通常不是模型本身的问题,而是写法不匹配;以本站文档或模型列表为准,并在每次响应中核对实际模型名,就能同时避开 404 和静默回落。