报『模型不存在』:同一个模型在不同聚合站的 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,务必以本站在线信息为准:
- 查本站的模型列表接口或文档页。本站支持用一个 API key 调用多个模型(Claude、GPT、DeepSeek、Qwen、GLM、Kimi 等)。以站内列出的 ID 为唯一准绳,直接复制使用。
- 调用模型列表端点。如果本站提供了类似
/v1/models的端点,用你的 key 请求一次,把返回的 ID 作为可用值。 - 核对响应里的模型字段。每次调用后检查返回体中
model字段,确认它就是你请求的那个 ID。这一步能直接暴露静默回落。 - 跑最小冒烟测试。换站或换 ID 后,先用一条极短的请求验证,再放进正式流程。
迁移代码时的建议
- 把模型 ID 抽成配置项,不要硬编码在业务代码里。换站时只改配置,不改逻辑。
- 记录实际生效的模型名。把响应里的
model写进日志,便于事后审计。 - 区分「找不到」和「回落」。前者立刻报错,后者需要主动检查才能发现,处理方式不同。
- 不要跨站复制 ID。看到别站能用的写法,先在本站确认是否存在等价 ID。
一句话总结
模型 ID 是聚合站的内部路由键,不是通用标准。报「模型不存在」通常不是模型本身的问题,而是写法不匹配;以本站文档或模型列表为准,并在每次响应中核对实际模型名,就能同时避开 404 和静默回落。