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

2026-05-22 1 阅读 maxloh
Models.dev 是一个包含 AI 模型规范、定价和功能的综合开源数据库。没有一个数据库包含所有可用人工智能模型的信息。我们启动了 Models.dev 作为社区贡献的项目来解决这个问题。我们还在 opencode 内部使用它。 API 您可以通过 API 访问此数据。 curl https://models.dev/api.json 使用模型 ID 字段对任何模型进行查找;这是AI SDK使用的标识符。徽标 提供商徽标以 SVG 文件形式提供:curl https://models.dev/logos/{provider}.svg 将 {provider} 替换为提供商 ID(例如 anthropic 、 openai 、 google )。如果我们没有提供商的徽标,则会提供默认徽标。贡献数据以TOML文件的形式存储在repo中;按提供商和模型组织。徽标存储为 SVG。这用于生成此页面并为 API 提供支持。我们需要您帮助保持数据最新。添加新模型 要添加新模型,请首先检查提供程序是否已存在于 apps/ 目录中。如果没有,则: 1. 创建一个提供程序 如果该提供程序尚未位于 apps/ 中: 使用提供程序的 ID 在 apps/ 中创建一个新文件夹。例如,providers/newprovider/ 。添加包含提供者详细信息的provider.toml: name = " Provider Name " npm = " @ai-sdk/provider " # AI SDK 包名称 env = [ " PROVIDER_API_KEY " ] # 用于身份验证的环境变量密钥 doc = " https://example.com/docs/models " # 链接到提供者的文档 如果提供者未发布 npm 包但公开 OpenAI 兼容端点,请相应地设置 npm 字段并包含基本 URL: npm = " @ai-sdk/openai-filled " # 使用 OpenAI 兼容的 SDK api = " https://api.example.com/v1 " # 与 openai 兼容时必需 2. 添加徽标(可选) 要为提供商添加徽标: 将 logo.svg 文件添加到提供商的目录(例如,providers/newprovider/logo.svg ) 使用没有固定大小或颜色的 SVG 格式 - 使用 currentColor 进行填充/描边 示例 SVG结构: < svg xmlns = " http://www.w3.org/2000/svg " viewBox = " 0 0 24 24 " fill = " currentColor " > 3. 添加模型定义 在提供程序的 models/ 目录中创建一个新的 TOML 文件,其中文件名是模型 ID。如果模型 ID 包含 / ,则使用子文件夹。例如,对于模型 ID openai/gpt-5 ,创建一个文件夹 openai/ 并在其中放置一个名为 gpt-5.toml 的文件。 name = " Model Display Name "attachment = true # 或 false - 支持文件附件 Reasoning = false # 或 true - 支持推理/思维链 tool_call = true # 或 false - 支持工具调用 Structured_output = true # 或 false - 支持专用结构化输出功能Temperature = true # 或 false - 支持温度控制knowledge = " 2024-04 " # 知识截止日期release_date = " 2025-02-19 " # 首次公开发布日期last_updated = " 2025-02-19 " # 最近更新日期 open_weights = true # 或 false - 模型的训练权重公开 [ cost ] input = 3.00 # 每百万个输入令牌的成本(美元) output = 15.00 # 每百万个输出令牌的成本(美元) Reasoning = 15.00 # 每百万个推理令牌的成本(美元) cache_read = 0.30 # 每百万个缓存读取令牌的成本(美元) cache_write = 3.75 # 每百万个缓存写入令牌的成本(美元) input_audio = 1.00 # 每百万个音频输入令牌的成本(美元) output_audio = 10.00 # 每百万个音频输出令牌的成本(美元) [ limit ] context = 400_000 # 最大上下文窗口(令牌) input = 272_000 # 最大输入令牌 output = 8_192 # 最大输出令牌 [ modalities ] input = [ " text " , " image " ] # 支持的输入模式 output = [ " text " ] # 支持的输出模式 [ interleaved ] field = " Reasoning_content " # 交错字段的名称 "reasoning_content" 或 "reasoning_details" 3a.通过扩展重用现有模型 对于从另一个提供程序镜像模型的包装提供程序,更喜欢重用规范模型定义而不是复制整个文件。仅将扩展用于非第一方包装器和镜像。不要在充当模型系列规范源的实际实验室提供程序目录中使用它,例如providers/anthropic/、providers/openai/、providers/google/、providers/xai/、providers/minimax/或providers/moonshot/。 [ extends ] from = " anthropic/claude-opus-4-6 " omit = [ " Experimental.modes.fast " ] [provider ] npm = " @ai-sdk/anthropic " 规则: from 必须使用 / 指向另一个模型。 omit 是可选的,并在合并继承模型和本地覆盖后删除字段。您可以在本地覆盖任何顶级模型字段。如果您覆盖 [cost] 、 [limit] 或 [modalities] 等嵌套表,请包含该表所需的完整值。 id 仍然来自文件名;不要将其添加到 TOML。当包装器模型与源模型本质上相同并且仅通过一小组覆盖或 o 有所不同时,请使用扩展