元数据来源
- 定价覆盖:在控制台的 Models 页面中按模型设置。 仅对定价字段而言是最高优先级;未设置的价格类型会继续沿用下层的值。 请参阅 成本追踪。
config.yaml元数据:providers.<name>.models条目可以附带metadata(pricing、context_window、modes、capabilities等)。声明的字段会逐字段覆盖下层的所有来源; 省略的字段则沿用下层的值。这是本地模型的兜底方案:声明modes: [embedding]还会同时推导出模型的类别。- 提供商发现:大多数提供商会在自己的模型列表中描述其模型,对于提供商自身的部署,
提供商所报告的信息会逐字段覆盖目录中的值:Anthropic 的显示名称、Token 限制和能力标志;
Gemini 的显示名称、描述、Token 限制和思考支持(Vertex 上同样适用);Groq 的上下文窗口、输出限制、
模态、特性和价格;xAI 的上下文窗口、价格(含长上下文档位)和推理支持;Fireworks 的模型类型、上下文窗口和特性标志;
OpenRouter 的名称、描述、模态、支持的参数和价格;Cohere 的端点、上下文长度和特性;
Bedrock 的显示名称、模态和流式传输支持;Chutes 的上下文长度、最大输出、特性和价格;
Ollama 的
/api/show能力、模型家族和上下文长度;vLLM、SGLang 和 llm-d 的max_model_len;以及 llama.cpp 的上下文窗口和模态 (请参阅 llama.cpp)。能力名称会映射到目录的词汇表 (function_calling、vision、reasoning等),使两层用同一个键描述同一项特性。 这对自托管服务器最为重要,因为只有正在运行的进程才能知道真实的上下文窗口。 通过配置的模型列表声明的模型会跳过此步骤。 - 模型目录:即
ai-model-list注册表, 在启动时以及每次刷新目录时从MODEL_LIST_URL(默认值:GitHub 上该注册表的models.min.json)获取。 它为大多数托管模型提供丰富的默认值(定价、上下文窗口、能力、模式), 可直接匹配 ID、通过别名匹配,或去掉发布日期后缀后匹配,并补全上层提供商未报告的所有字段。 输入模态也算作能力:接受image的条目会声明vision(audio_input、video_input、pdf_input同理), 除非其能力中显式设置了该键。数据错误或缺失时,最好的修复方式是向注册表贡献修改; 如需立即修复,请使用覆盖配置。 - ID 启发式规则:针对最终没有任何模式的模型(llama.cpp 和 LM Studio 中很常见)的最后手段,按名称进行检查:
ID 中包含
embed或匹配常见嵌入模型家族(bge、e5、gte、minilm)的模型会被视为嵌入模型, ID 中包含rerank的模型会被视为重排序模型。带命名空间的 ID 按其最后一段路径进行匹配。 无法确定时,不做任何判定。
查看值的来源
在控制台的 Models 页面中展开某一行,即可查看模型的有效元数据以及每个字段的来源层; 将面板切换到 Provider、Catalog 或 Config,可以单独查看某一层。相同的数据也可通过GET /admin/models/metadata 获取。
元数据的作用
- 定价用于 成本追踪、预算和
cost负载均衡。每个定价字段都会记录其来源,因此控制台可以显示某个费率来自何处。 - 模式和类别仅用于控制台中的分组,路由从不会因此被阻止,因此
/v1/embeddings可以访问提供商提供的任何模型。 - 上下文窗口和能力会在
GET /v1/models(以及针对单个模型的GET /v1/models/{model})中公布,供动态选择模型的客户端使用。
离线行为
如果目录获取失败或部署环境处于隔离网络(air-gapped),网关仍会正常运行, 只是缺少由目录提供的默认值(包括目录中的定价)。定价覆盖、config.yaml 元数据、提供商发现信息
以及 ID 启发式规则依然有效。
MODEL_LIST_URL 既接受 HTTP URL,也接受本地文件:
GOMODEL_OFFLINE=true(该设置会忽略 HTTP 目录 URL)下依然有效。
设置 MODEL_LIST_URL=off 可完全关闭目录,并在 config.yaml 中声明元数据;完整的隔离网络部署检查清单请参阅
生产环境指南。