Models.dev:OpenCode团队开源3.6K Star的AI模型数据库
GitHub: https://github.com/anomalyco/models.dev
官网: https://models.dev/
Stars: 3,600+
贡献者: 219+
发布平台: 程序员茄子(chenxutan.com)
标签: AI模型, 模型对比, 成本计算, OpenCode开源, TOML数据库
引言
现在开发 AI 应用,模型选择已经成为越来越头疼的问题。
国外有 OpenAI、Anthropic、Google、Meta,国内有 BAT、字节、快手。再加上无数开源模型和垂直领域专业模型,市场上的 AI 模型数量已经多得让人眼花缭乱。
每次对比几个模型的参数、价格、能力时,都要打开好几个标签页,在各家的文档中来回翻找。
Models.dev 来了。
这是 OpenCode 团队开源的 AI 模型数据库,把各家主流模型的所有关键信息都标准化地整合在了一起。
一、项目简介
Models.dev 是一个全面的 AI 模型规格数据库。
核心数据
| 指标 | 数值 |
|---|---|
| GitHub Star | 3,600+ |
| 贡献者 | 219+ |
| 数据格式 | TOML |
| API 格式 | JSON |
项目起源
项目最初是 OpenCode 内部使用的工具,后来开源出来造福整个开发者社区。
核心价值
它不是简单的网页展示,而是一个完整的数据库系统:
- 数据以 TOML 格式存储在仓库中
- 提供公开的 JSON API 供开发者直接调用
- 通过社区协作方式持续更新
二、解决的问题
问题1:一站式模型信息查询
传统方式:
┌─────────────────────────────────────────────────────────────┐
│ 打开10+标签页 │
│ ├── OpenAI 定价页 │
│ ├── Anthropic Claude 文档 │
│ ├── Google Gemini 规格页 │
│ ├── 各家 API 文档 │
│ └── ... │
└─────────────────────────────────────────────────────────────┘
Models.dev 方式:
curl https://models.dev/api.json
收录范围:
- OpenAI、Anthropic、Google、Meta 等数十家主流 AI 服务提供商
- 从基础对话模型到专业领域模型的全场景需求
问题2:精确的成本估算
对于商业 AI 项目,成本控制是重中之重。
Models.dev 记录的定价信息:
| 成本类型 | 说明 |
|---|---|
| 输入成本 | 每百万 token 美元 |
| 输出成本 | 每百万 token 美元 |
| 推理成本 | Reasoning token 成本(如有) |
| 缓存读取成本 | Prompt cache read |
| 缓存写入成本 | Prompt cache write |
| 音频输入成本 | Audio input(如有) |
| 音频输出成本 | Audio output(如有) |
让你精确估算项目运行成本,再也不用担心账单超支。
问题3:能力规格一目了然
除了价格,Models.dev 还记录了每个模型的能力规格:
| 能力指标 | 说明 |
|---|---|
| Tool Call | 是否支持工具调用 |
| Reasoning | 是否支持推理/思维链 |
| Structured Output | 是否支持结构化输出 |
| Temperature | 是否支持温度控制 |
| Attachment | 是否支持文件附件 |
| Knowledge Cutoff | 知识截止日期 |
| Release Date | 发布时间 |
| Last Updated | 最后更新时间 |
| Open Weights | 权重是否开源 |
| Context Window | 上下文窗口大小 |
| Max Input | 最大输入 token |
| Max Output | 最大输出 token |
| Input Modalities | 支持的输入模态 |
| Output Modalities | 支持的输出模态 |
这些指标对于选择合适的模型至关重要:
- 做 Agent 应用?Tool Call 是必需的
- 处理长文档?Context Window 是关键
三、核心亮点
1. 公开的 JSON API
Models.dev 最吸引人的地方之一,就是它提供了公开的 JSON API。
# 获取所有模型数据
curl https://models.dev/api.json
返回的 JSON 数据包含了所有模型的完整信息,你可以用它来:
| 用途 | 说明 |
|---|---|
| 模型选型工具 | 开发交互式模型选择器 |
| 成本计算器 | 精确计算 API 调用成本 |
| 模型管理面板 | 构建自己的管理界面 |
| 动态模型选择 | 代码中动态选择最优模型 |
API 数据结构:
{
"models": {
"openai/gpt-4o": {
"name": "GPT-4o",
"cost": {
"input": 2.50,
"output": 10.00
},
"limit": {
"context": 128000
}
}
}
}
每个模型都有唯一的 Model ID,这也是 AI SDK 中使用的标识符。
2. 提供商 Logo
除了模型数据,你还可以通过 API 获取各个提供商的 Logo:
curl https://models.dev/logos/anthropic.svg
curl https://models.dev/logos/openai.svg
curl https://models.dev/logos/google.svg
使用方法:
- 把
{provider}替换成 Provider ID - 如 anthropic、openai、google 等
- 如果没有某个提供商的 Logo,会返回默认 Logo
3. 社区驱动,持续更新
| 特性 | 说明 |
|---|---|
| 贡献者数量 | 219+ |
| 更新频率 | 新模型发布后很快收录 |
| 维护方式 | 社区协作 |
所有数据都存储在仓库的 providers/ 目录下:
- 按提供商分类
- 每个模型用一个 TOML 文件表示
- 结构清晰,方便贡献和维护
四、数据结构详解
目录结构
providers/
├── openai/
│ ├── provider.toml
│ ├── logo.svg
│ └── models/
│ ├── gpt-4o.toml
│ ├── gpt-4-turbo.toml
│ └── ...
├── anthropic/
│ ├── provider.toml
│ ├── logo.svg
│ └── models/
│ ├── claude-3-opus.toml
│ └── ...
└── ...
提供商配置
provider.toml 示例:
name = "OpenAI"
npm = "@ai-sdk/openai"
env = ["OPENAI_API_KEY"]
doc = "https://platform.openai.com/docs/models"
OpenAI 兼容接口配置:
name = "Custom Provider"
npm = "@ai-sdk/openai-compatible"
api = "https://api.example.com/v1"
env = ["CUSTOM_API_KEY"]
doc = "https://example.com/docs/models"
模型配置
models/gpt-5.toml 示例:
name = "GPT 5"
attachment = true
reasoning = true
tool_call = true
structured_output = true
temperature = true
knowledge = "2025-01"
release_date = "2025-03-15"
last_updated = "2025-03-15"
open_weights = false
[cost]
input = 3.00
output = 15.00
reasoning = 15.00
cache_read = 0.30
cache_write = 3.75
[limit]
context = 400000
input = 272000
output = 8192
[modalities]
input = ["text", "image"]
output = ["text"]
配置字段说明:
| 字段 | 类型 | 说明 |
|---|---|---|
name | string | 模型显示名称 |
attachment | boolean | 是否支持文件附件 |
reasoning | boolean | 是否支持推理 |
tool_call | boolean | 是否支持工具调用 |
structured_output | boolean | 是否支持结构化输出 |
temperature | boolean | 是否支持温度控制 |
knowledge | string | 知识截止日期 |
release_date | string | 发布日期 |
open_weights | boolean | 权重是否开源 |
五、本地运行
如果你想本地运行前端:
# 确保安装了 Bun
bun install
cd packages/web
bun run dev
访问 http://localhost:3000 就能看到界面。
六、使用场景
场景1:模型选型
# 获取所有模型数据
curl https://models.dev/api.json | jq '.models | keys'
场景2:成本计算
import requests
api = requests.get('https://models.dev/api.json').json()
def calculate_cost(model_id, input_tokens, output_tokens):
model = api['models'][model_id]
input_cost = model['cost']['input'] * input_tokens / 1_000_000
output_cost = model['cost']['output'] * output_tokens / 1_000_000
return input_cost + output_cost
场景3:动态模型选择
// 根据需求选择最优模型
const models = await fetch('https://models.dev/api.json')
.then(r => r.json());
const bestModel = Object.entries(models.models)
.filter(([_, m]) => m.tool_call && m.limit.context > 100000)
.sort((a, b) => a[1].cost.input - b[1].cost.input)[0];
七、对比其他方案
| 维度 | 手动查文档 | 官方定价页 | Models.dev |
|---|---|---|---|
| 信息完整度 | ⚠️ 分散 | ⚠️ 可能隐藏旧模型 | ✅ 完整 |
| 更新及时性 | ❌ 手动维护 | ⚠️ 官方更新 | ✅ 社区驱动 |
| 可编程性 | ❌ 无 | ❌ 无 | ✅ JSON API |
| 成本估算 | ❌ 手动计算 | ⚠️ 基础定价 | ✅ 详细成本 |
| 能力对比 | ❌ 手动整理 | ❌ 分散各处 | ✅ 标准化字段 |
八、为什么开源
最重要的是,它完全开源免费,由社区驱动,没有任何商业门槛。无论是个人开发者还是企业团队,都能从中受益。
开源优势:
| 优势 | 说明 |
|---|---|
| 透明 | 数据完全公开 |
| 可信 | 社区审核校验 |
| 可持续 | 219+ 贡献者维护 |
| 免费 | 无商业门槛 |
九、适用人群
| 人群 | 适用度 |
|---|---|
| AI 应用开发者 | ⭐⭐⭐⭐⭐ 完美 |
| 成本敏感项目 | ⭐⭐⭐⭐⭐ 完美 |
| 模型研究者 | ⭐⭐⭐⭐ 很好 |
| 企业选型 | ⭐⭐⭐⭐⭐ 完美 |
十、总结
核心价值
在 AI 模型数量爆炸式增长的今天,Models.dev 解决了模型信息碎片化的痛点:
| 价值 | 说明 |
|---|---|
| 一站式查询 | 所有主流模型信息 |
| 精确估算 | 详细成本数据 |
| 快速对比 | 标准化能力字段 |
| 直接使用 | JSON API |
| 持续更新 | 社区驱动 |
推荐理由
如果你经常需要和 AI 模型打交道,一定要把 Models.dev 收藏起来。它会帮你节省大量查资料的时间,让你把更多精力放在真正的业务逻辑上。
本文首发于「程序员茄子」博客,原文链接:https://chenxutan.com