T
traeai
登录
返回首页
AI HOT 精选

Models.dev:一个关于人工智能模型规格、定价和功能的开源数据库

7.8Score
Models.dev:一个关于人工智能模型规格、定价和功能的开源数据库

TL;DR · AI 摘要

Models.dev 是一个由社区共建的开源数据库,集中整理 AI 模型的规格、定价与能力信息,并提供 API 与标准化 TOML 数据结构,支持快速集成与更新。

核心要点

  • API 可通过 curl https://models.dev/api.json 获取,Model ID 与 AI SDK 兼容。
  • 添加新模型需在 providers/{provider}/models/ 下创建 TOML 文件,包含 cost、limit、modalities 等 8 类字
  • 支持复用已有模型定义,通过 extends 字段继承基础配置,减少重复工作。

结构提纲

按章节快速跳转。

  1. Models.dev 是一个社区共建的开源数据库,用于统一收集和提供 AI 模型的规格、定价与能力信息。

  2. 提供标准 JSON API 和 SVG Logo 接口,支持通过 Model ID 和 Provider ID 快速查询。

  3. 数据以 TOML 文件组织,贡献者可按步骤添加 Provider、Logo 和 Model 定义,支持 extends 复用机制。

  4. 需创建 providers/{id}/ 目录并添加 provider.toml,指定 name、npm、env、doc 等字段。

  5. 模型定义需包含 name、attachment、reasoning、tool_call、cost、limit、modalities 等 8 类结构化字段。

  6. 通过 extends 字段可继承已有模型配置,适用于 wrapper provider 或变体模型快速建模。

思维导图

用一张图看清主题之间的关系。

查看大纲文本(无障碍 / 无 JS 友好)
  • Models.dev:AI 模型规格开源数据库
    • 核心功能
      • 统一模型规格数据库
      • 提供 JSON API 与 Logo 资源
      • 支持社区共建与版本管理
    • 数据结构
      • TOML 文件组织
      • Provider + Model 层级
      • 标准化字段(cost/limit/modalities)
    • 贡献流程
      • 创建 Provider 目录
      • 添加 Logo(SVG)
      • 定义 Model TOML
      • 使用 extends 复用模型

金句 / Highlights

值得收藏与分享的关键句。

  • 目前尚无一个集中数据库能涵盖所有可用 AI 模型的信息,Models.dev 正是为解决这一问题而发起的社区共建项目。

    第 1 段

    ⬇︎ 下载 PNG𝕏 分享到 X
  • 使用 Model ID 字段即可查询任意模型,该标识与 AI SDK 完全兼容。

    API 小节

    ⬇︎ 下载 PNG𝕏 分享到 X
  • 对于仅与现有模型略有差异的封装型 Provider,可通过 extends 关键字复用已有模型定义。

    3a 小节

    ⬇︎ 下载 PNG𝕏 分享到 X
  • 数据以 TOML 文件形式存储于仓库中,按 Provider 和 Model 分类,用于生成网页并驱动 API。

    Contributing 小节

    ⬇︎ 下载 PNG𝕏 分享到 X
#AI 模型数据库#开源项目#API 集成#TOML 配置#AI SDK
打开原文
图 1:Models.dev 标志
  • * *

Models.dev 是一个全面的开源 AI 模型规格、定价与能力信息数据库。

目前尚无单一数据库汇总所有可用 AI 模型的信息。我们发起 Models.dev 项目,旨在通过社区共建的方式解决这一问题;同时,它也在我们内部项目 opencode 中被广泛使用。

API

[](https://github.com/anomalyco/models.dev#api) 您可以通过 API 访问这些数据:

bash
curl https://models.dev/api.json

使用 Model ID 字段可对任意模型进行查询;该 ID 同时也是 AI SDK 所采用的标识符。

图标(Logos)

[](https://github.com/anomalyco/models.dev#logos) 厂商图标以 SVG 文件形式提供:

bash
curl https://models.dev/logos/{provider}.svg

{provider} 替换为对应的 Provider ID(例如 anthropicopenaigoogle)。若暂无某厂商的图标,则返回默认图标。

贡献指南

[](https://github.com/anomalyco/models.dev#contributing) 数据以 TOML 文件形式存储于本仓库中,按厂商与模型分类组织;图标则以 SVG 格式保存。这些数据用于生成本页面并驱动 API 接口。

我们亟需您的协助,以确保数据持续更新。

添加新模型

[](https://github.com/anomalyco/models.dev#adding-a-new-model) 添加新模型前,请先确认该厂商是否已存在于 providers/ 目录中。若尚未存在,请按以下步骤操作:

#### 1. 创建厂商条目

[](https://github.com/anomalyco/models.dev#1-create-a-provider) 若该厂商尚未出现在 providers/ 中:

  1. providers/ 下新建一个以厂商 ID 命名的文件夹,例如 providers/newprovider/
  2. 在该文件夹中添加 provider.toml 文件,填写厂商信息:
toml
name = "Provider Name"
npm = "@ai-sdk/provider" # AI SDK 包名
env = ["PROVIDER_API_KEY"] # 授权所用的环境变量名
doc = "https://example.com/docs/models" # 厂商文档链接

若该厂商未发布 npm 包,但提供 OpenAI 兼容的 API 接口,请相应设置 npm 字段并补充 api 基础 URL:

toml
npm = "@ai-sdk/openai-compatible" # 使用 OpenAI 兼容 SDK
api = "https://api.example.com/v1" # 使用 openai-compatible 时必填

#### 2. 添加图标(可选)

[](https://github.com/anomalyco/models.dev#2-add-a-logo-optional) 为该厂商添加图标:

  1. 在厂商目录下添加 logo.svg 文件(例如 providers/newprovider/logo.svg);
  2. 图标需为 SVG 格式,不设定固定尺寸或颜色,使用 currentColor 作为填充/描边色。

SVG 示例结构如下:

xml
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
  <!-- 图标路径 -->
</svg>

#### 3. 添加模型定义

[](https://github.com/anomalyco/models.dev#3-add-a-model-definition) 在厂商的 models/ 目录下创建一个新的 TOML 文件,文件名即为模型 ID。

若模型 ID 中包含 /,请使用子文件夹结构。例如,对于模型 ID openai/gpt-5,应创建 openai/ 子目录,并在其中放置名为 gpt-5.toml 的文件。

toml
name = "Model Display Name"
attachment = true           # true 或 false —— 是否支持文件附件
reasoning = false           # true 或 false —— 是否支持推理 / 思维链
tool_call = true            # true 或 false —— 是否支持工具调用
structured_output = true    # true 或 false —— 是否支持专用结构化输出功能
temperature = true          # true 或 false —— 是否支持温度参数调节
knowledge = "2024-04"       # 知识截止日期
release_date = "2025-02-19" # 首次公开发布日期
last_updated = "2025-02-19" # 最近一次更新日期
open_weights = true         # true 或 false —— 模型训练权重是否公开可用

[cost]
input = 3.00                # 每百万输入 token 的费用(美元)
output = 15.00              # 每百万输出 token 的费用(美元)
reasoning = 15.00           # 每百万推理 token 的费用(美元)
cache_read = 0.30           # 每百万缓存读取 token 的费用(美元)
cache_write = 3.75          # 每百万缓存写入 token 的费用(美元)
input_audio = 1.00          # 每百万音频输入 token 的费用(美元)
output_audio = 10.00        # 每百万音频输出 token 的费用(美元)

[limit]
context = 400_000           # 最大上下文窗口(tokens)
input = 272_000             # 最大输入 token 数
output = 8_192              # 最大输出 token 数

[modalities]
input = ["text", "image"]   # 支持的输入模态
output = ["text"]           # 支持的输出模态

[interleaved]
field = "reasoning_content" # 混合内容字段名,如 "reasoning_content" 或 "reasoning_details"

#### 3a. 通过 extends 复用已有模型定义

[](https://github.com/anomalyco/models.dev#3a-reuse-an-existing-model-with-extends) 对于封装型厂商(即复用其他厂商模型的包装层),建议复用原始模型定义,而非完整复制整个文件。

extends 仅适用于非第一方的封装与镜像服务。请勿在作为模型家族权威来源的官方厂商目录中使用(例如 providers/anthropic/providers/openai/providers/google/providers/xai/providers/minimax/providers/moonshot/)。

toml
[extends]
from = "anthropic/claude-opus-4-6"
omit = ["experimental.modes.fast"]

[provider]
npm = "@ai-sdk/anthropic"

规则说明:

  • from 必须指向另一模型,格式为 <provider>/<model-id>
  • omit 为可选项,用于在继承模型与本地覆盖合并后移除指定字段;
  • 可在本地覆盖任意顶层模型字段;
  • 若覆盖嵌套表(如 [cost][limit][modalities]),需包含该表所需的完整值;
  • id 仍由文件名决定,无需在 TOML 中额外声明。

当封装模型与源模型在本质上相同,且仅存在少量字段覆盖或省略时,请使用 extends

#### 4. 提交 Pull Request

[](https://github.com/anomalyco/models.dev#4-submit-a-pull-request)

  1. Fork 本仓库
  2. 创建一个包含你修改的新分支
  3. 添加你的提供者和/或模型文件
  4. 提交一个描述清晰的 PR

验证

[](https://github.com/anomalyco/models.dev#validation) 我们有一个 GitHub Action 会自动对你的提交进行模式(schema)校验,确保:

  • 所有必填字段均已存在
  • 数据类型正确
  • 值处于可接受范围内
  • TOML 语法合法

在将现有封装模型转换为 extends 时,请对比变更前后的生成输出:

bash
bun run compare:migrations

该命令会为每个变更的模型 TOML 文件打印差异(diff),便于你确认生成的 JSON 仅在预期位置发生了变化。

模式(Schema)参考

[](https://github.com/anomalyco/models.dev#schema-reference) 模型必须符合 packages/core/src/schema.ts 中定义的以下模式。

提供者(Provider)模式:

  • name:字符串 —— 提供者的显示名称
  • npm:字符串 —— AI SDK 包名
  • env:字符串数组 —— 用于认证的环境变量键
  • doc:字符串 —— 提供者文档链接
  • api(可选):字符串 —— OpenAI 兼容 API 端点;仅当使用 @ai-sdk/openai-compatible 作为 npm 包时为必填项

模型(Model)模式:

  • name:字符串 —— 模型的显示名称
  • attachment:布尔值 —— 是否支持文件附件
  • reasoning:布尔值 —— 是否支持推理 / 思维链(chain-of-thought)
  • tool_call:布尔值 —— 是否支持工具调用
  • structured_output(可选):布尔值 —— 是否支持结构化输出功能
  • temperature(可选):布尔值 —— 是否支持温度参数控制
  • knowledge(可选):字符串 —— 知识截止日期,格式为 YYYY-MMYYYY-MM-DD
  • release_date:字符串 —— 首次公开发布日期,格式为 YYYY-MMYYYY-MM-DD
  • last_updated:字符串 —— 最近一次更新日期,格式为 YYYY-MMYYYY-MM-DD
  • open_weights:布尔值 —— 表示模型训练权重是否公开可用
  • interleaved(可选):布尔值或对象 —— 是否支持交错推理(interleaved reasoning)。使用 true 表示通用支持,或使用对象并指定 field 字段以明确格式
  • interleaved.field:字符串 —— 交错字段名称(如 "reasoning_content""reasoning_details"
  • cost.input:数字 —— 每百万输入 token 的成本(美元)
  • cost.output:数字 —— 每百万输出 token 的成本(美元)
  • cost.reasoning(可选):数字 —— 每百万推理 token 的成本(美元)
  • cost.cache_read(可选):数字 —— 每百万缓存读取 token 的成本(美元)
  • cost.cache_write(可选):数字 —— 每百万缓存写入 token 的成本(美元)
  • cost.input_audio(可选):数字 —— 每百万音频输入 token 的成本(美元),若单独计费
  • cost.output_audio(可选):数字 —— 每百万音频输出 token 的成本(美元),若单独计费
  • limit.context:数字 —— 最大上下文窗口(token 数)
  • limit.input:数字 —— 最大输入 token 数
  • limit.output:数字 —— 最大输出 token 数
  • modalities.input:字符串数组 —— 支持的输入模态(如 ["text", "image", "audio", "video", "pdf"]
  • modalities.output:字符串数组 —— 支持的输出模态(如 ["text"]
  • status(可选):字符串 —— 支持的状态值:
  • alpha —— 表示模型处于 Alpha 测试阶段
  • beta —— 表示模型处于 Beta 测试阶段
  • deprecated —— 表示模型已不再由提供者的公开 API 提供服务

示例

[](https://github.com/anomalyco/models.dev#examples) 可参考 providers/ 目录中的现有提供者:

  • providers/anthropic/ —— Anthropic Claude 模型
  • providers/openai/ —— OpenAI GPT 模型
  • providers/google/ —— Google Gemini 模型

前端开发

[](https://github.com/anomalyco/models.dev#working-on-frontend) 请确保已安装 Bun

bash
$ bun install
$ cd packages/web
$ bun run dev

随后将在 http://localhost:3000 打开前端界面。

使用 opencode 进行手动测试

[](https://github.com/anomalyco/models.dev#manual-testing-with-opencode) 你可以通过以下方式手动验证提供者变更:

bash
$ bun install
$ cd packages/web
$ bun run build
$ OPENCODE_MODELS_PATH="dist/_api.json" opencode

有疑问?

[](https://github.com/anomalyco/models.dev#questions) 如需帮助或对贡献流程有疑问,请提交一个 Issue。

  • * *

Models.dev 由 SST 的维护者创建。

加入我们的社区 Discord | YouTube | X.com

AI 可能会生成不准确的信息,请核实重要内容

Models.dev:一个关于人工智能模型规格、定价和功能的开源数据库 | AI HOT 精选 | traeai