OrcaRouter

OpenAI 兼容 API 如何选择模型?

更新于 2026-11-03 · orcarouter.cyou

简答:OpenAI 兼容 API 选模型,先按任务筛掉不适合的模型,再核对当前目录中的准确 model ID、端点和能力,最后用同一组样例比较质量、延迟、失败率与实际成本。不要把“目录里有模型”直接等同于“支持 Responses、工具调用、视觉或流式输出”;这些能力需要在目标服务上逐项验证。截至 2026 年 11 月 3 日,模型名称、别名、价格和可用端点都应以当前目录、控制台和服务商文档为准。

定义:OpenAI 兼容 API 的模型选择,是在明确任务需求后,从当前可调用目录中筛选候选 model ID,并验证接口能力、质量、速度、成本和稳定性的过程。

先看这张表:不同任务应该优先核对什么

没有一个模型对所有任务都最优。OpenAI 原生文档将模型选择放在质量、成本、延迟和具体工作流之间权衡;兼容 API 还要额外确认服务商是否实现了对应端点和参数。下表是选型起点,不是固定型号推荐。

任务优先关注候选筛选方法上线前验证
普通聊天与问答响应质量、延迟、上下文优先选择通用文本模型,再用真实问题测试检查多轮上下文、流式输出和最大输出限制
代码生成与修改代码正确率、长上下文、工具调用选择代码或通用推理能力较强的候选用固定仓库任务测试编译、测试和补丁质量
复杂推理与 Agent多步规划、函数调用、失败恢复优先核对 Responses 或目标服务对应的工具协议验证工具参数、错误处理和中断后的状态
长文本处理上下文窗口、输入成本、输出上限查看当前目录的上下文规格,不能只看宣传名称用接近真实长度的输入测试截断和超时
视觉或多模态输入模态、图片格式、分辨率和价格筛选明确标注视觉或图片输入的候选实际发送一张测试图片,确认请求格式和响应字段
结构化输出JSON Schema、函数调用、字段稳定性确认兼容层是否支持目标结构化参数测试缺字段、类型错误和拒答场景
批量自动化单位任务成本、吞吐、限速和失败重试优先比较轻量模型与批处理能力按“每个成功任务”而不是单次请求计算成本

OpenAI 的模型目录可用于核对原生模型的定位、模型 ID、输入输出能力和当前规格;这些信息不能自动推导第三方兼容服务的可用性。使用兼容接口时,还要以目标服务的当前模型目录和接口说明为准。

参考:OpenAI 模型选择指南、OpenAI 模型目录、当前模型目录页面。

五步选出可调用的模型,而不是只选一个名字

  1. 先写清硬条件。记录任务类型、是否需要图片、是否需要工具调用、预估输入长度、可接受延迟、输出长度和预算上限。如果必须使用视觉、结构化输出或工具调用,这些应先作为硬条件,而不是等请求失败后再排查。
  2. 从当前目录复制准确 model ID。在目标服务的模型广场、/models 返回结果或控制台中复制完整 ID,不要凭记忆拼接供应商前缀、版本号或别名。目录存在只说明服务可能展示该模型,最终仍要用最小请求确认账号、端点和权限是否可用。
  3. 逐项核对接口能力。分别确认使用的是 Chat Completions、Responses 还是其他协议,并核对工具调用、视觉输入、流式事件、结构化输出和参数名称。原生 OpenAI 文档中的 Responses API、认证和错误说明只适用于原生 API;兼容实现可能只覆盖其中一部分。
  4. 用同一组样例横测。至少准备 10 个接近真实工作的样例,固定提示词、输入和输出要求,记录任务成功率、人工质量分、首字节延迟、总耗时、输入输出 token、错误类型和每个成功任务的成本。不要只测一个“看起来效果很好”的问题。
  5. 上线前保留替代方案。为主模型设置可验证的备用候选,但不要假设不同模型的参数、上下文和工具协议完全相同。切换前确认请求体能被备用模型接受,并记录实际使用的 model ID、请求 ID、最后事件和脱敏错误日志。

OpenAI 的模型选择资料强调,应使用代表性任务进行实验,并在质量、速度、输出用途和使用频率之间取舍。对于兼容 API,这个原则还应扩展为“在目标服务上实测”,因为同一个模型名称在不同服务中的端点、参数和可用能力可能不同。

model、base_url 和 API Key 分别解决什么问题

model 指定本次请求使用的模型;base_url 指定请求发往哪个 API 入口;API Key 用于认证和计量。三者缺一不可,但它们不能互相替代:model 写错通常表现为模型不存在或不可用,base_url 写错可能请求到了错误的服务,Key 错误则可能返回认证或权限错误。

最小配置可以抽象为:

如果使用 OpenAI 官方 SDK,官方文档展示了通过客户端调用 Responses API 的基本形状;接入兼容服务时,SDK 的请求形状可以作为参考,但实际 base URL、model ID、认证方式和支持字段仍需以兼容服务文档为准。参考:OpenAI SDK 与 CLI 文档、OpenAI API Reference 总览。

价格、速度和质量怎么比较:不要只看单价

模型价格通常按输入和输出 token 分开计算,兼容服务还可能存在不同的计费口径、缓存计费、最低计费单位或额外服务费用。价格页只能帮助你建立预算,不能替代真实任务成本核算。OpenAI 的成本优化文档指出,减少请求和 token、选择足够用的较小模型,通常有助于降低成本和延迟;但在兼容 API 上,具体价格应查看当前服务商价格页或账单。

建议用下面的公式核算:

单次请求估算成本 = 输入 token ÷ 1,000,000 × 输入单价 + 输出 token ÷ 1,000,000 × 输出单价 + 其他已明确列出的费用

公式中的价格和 token 数必须来自当前账单、响应 usage 字段或服务商文档;不要把示例数字当成任何具体模型的真实价格。更实用的指标是“每个成功任务成本”:如果便宜模型经常需要重试、人工修改或二次调用,最终成本未必更低。

横测时至少记录四类数据:一是任务质量,例如正确率、格式合规率和人工评分;二是速度,例如首字节延迟和完整响应时间;三是资源,例如输入、输出和缓存 token;四是稳定性,例如 4xx、429、5xx、超时和流式中断次数。OpenAI 的模型优化资料也提醒,模型行为会随模型快照和模型系列变化,因此应保留测试集,模型或目录变化后重新评估。

参考:OpenAI 成本优化指南、OpenAI 模型优化指南。

最小验证请求:先确认模型能用,再测试高级能力

第一轮验证只做一件事:发送短文本,确认认证、base URL、model ID 和基础响应都正常。不要在第一步同时加入工具调用、视觉输入、长上下文和流式处理。

使用兼容服务时,可以按服务商文档替换以下占位符:

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://YOUR-COMPATIBLE-ENDPOINT/v1"
)

response = client.chat.completions.create(
    model="COPY_FROM_CURRENT_MODELS_LIST",
    messages=[
        {"role": "user", "content": "只回复:模型连接测试成功"}
    ]
)

print(response.choices[0].message.content)

这段代码中的 endpoint 和 model 只是占位符,不能直接当作某个服务的固定地址或模型名。成功判定应包括:HTTP 状态正常、响应体能解析、返回的模型或请求信息符合预期、文本内容可读取,并且服务商账单或用量记录能够对应到这次请求。若服务商只实现 Responses API 或其他协议,应改用其文档中的最小示例,不要强行套用 Chat Completions。

第二轮再分别测试流式输出、结构化输出、工具调用、图片输入和较长上下文。每增加一种能力,都要单独记录请求体、响应体和错误体,避免把基础认证问题与高级参数兼容问题混在一起。

模型 ID 或能力不匹配时,按顺序排查

排查时不要先更换模型。先确认凭据、URL、路径、模型 ID、请求体和响应体,只有在这些要素都正确后,才比较模型能力或切换备用模型。

生产环境的稳妥做法:主模型、备用模型和重新核验

可以为稳定任务设置主模型和备用模型,但降级策略必须建立在测试结果上。备用模型至少要通过同一组最小请求和关键能力测试;如果主模型支持工具调用而备用模型不支持,不能只替换 model 字段就认为降级完成。

如果你只需要普通聊天,先从当前目录中选一个明确支持文本输入输出的候选;如果需要代码、视觉、工具调用或结构化输出,则把对应能力作为硬条件逐项验证。最终答案不是“哪个模型名字最好”,而是“哪个当前可调用候选在你的任务集上达到质量、速度、成本和稳定性的平衡”。

常见问题

OpenAI 兼容 API 选模型,能不能直接使用模型广场里的名称?

不能直接假设可以。应从目标服务当前模型目录、/models 返回结果或控制台复制准确 model ID,再用最小文本请求验证账号、端点和模型是否实际可调用。目录展示不等于当前账号一定有权限。

模型名称前面要不要加供应商前缀?

没有统一答案。有的兼容服务要求供应商前缀,有的使用原生模型 ID,也有服务使用自定义别名。不要自行添加或删除前缀,以目标服务当前文档和模型目录中的完整值为准。

模型越贵,是否一定更适合 OpenAI 兼容 API?

不一定。复杂推理、代码或高风险任务可能需要更强模型,但普通分类、提取和高频自动化往往更关注速度和单位任务成本。应使用固定样例比较质量、延迟、失败率和每个成功任务成本。

为什么模型支持 Chat Completions,却不一定支持 Responses?

OpenAI 兼容 API 可能只实现部分协议。模型可用性、端点支持、工具调用、视觉输入、流式事件和结构化输出是不同维度,必须按目标端点逐项验证,不能仅凭模型名称推断。

模型返回 404,是模型不存在还是 URL 写错?

两者都有可能。先分别检查 base URL、请求路径和 model ID,确认没有重复拼接版本路径,也没有把模型页面链接当成 API 路径;随后查看响应体和请求日志定位具体字段。

价格应该看模型目录还是账单?

模型目录和价格页可用于建立预估,但最终应以当前服务商价格说明、响应 usage 和账单为准。兼容服务的计费口径可能与原生 API 不同,示例价格不能当作实际报价。

相关阅读

参考资料

  1. 当前模型目录页面
  2. OpenAI Model selection
  3. OpenAI Models
  4. OpenAI SDKs and CLI
  5. OpenAI API Reference Overview
  6. OpenAI Cost optimization
  7. OpenAI Model optimization