选择型号
按任务找到合适的型号,确认它开放的接口、响应方式与输入类型,并读懂价格和区域信息。
目录中的每个型号都标明了它能做什么、通过哪个接口调用、接受哪些输入和怎样计价。本页说明如何读这些信息,以及挑选型号时应该比较什么。
前提:已创建密钥并把它设置为环境变量 TOKENTOSEA_API_KEY。命令行示例使用 jq。
去哪里查看型号#
| 位置 | 适合做什么 | 是否需要登录 |
|---|---|---|
| 模型目录 | 浏览全部型号的能力、接口、官方价格和完整调用示例 | 否 |
| 控制台 → 模型市场 | 以卡片形式浏览、搜索、查看调用示例 | 是 |
| 控制台 → 模型测试 | 在网页中直接调用任意型号,查看 token 用量、TPS 和费用 | 是 |
GET /v1/models | 在程序中读取当前密钥可调用的型号与能力 | 需要 API Key |
型号 ID#
请求体中的 model 必须与目录中的型号 ID 完全一致,区分大小写,例如 qwen3.8-flash、MiniMax-M3、doubao-seed-2-1-turbo-260628。控制台模型市场内部使用的 official:…、system-one:… 只是展示用标识,不能作为请求参数。
部分型号同时提供别名与带日期的固定版本(例如 fun-asr-realtime 与 fun-asr-realtime-2026-02-28)。需要结果可复现、或希望避免厂商更新别名指向时,请使用带日期的固定版本。
按任务选择接口#
截至 2026-10-21 的目录统计(每个型号可能开放多个接口):
| 任务 | 接口 | 开放型号数 | 参考 |
|---|---|---|---|
| 对话、文本生成、图像理解 | POST /v1/chat/completions | 121 | Chat Completions |
| 同上,Anthropic 协议 | POST /v1/messages | 97 | Messages |
| 同上,无状态 Responses 协议 | POST /v1/responses | 62 | Responses |
| 文生图 | POST /v1/images/generations | 29 | 图像 |
| 图像编辑 | POST /v1/images/edits | 19 | 图像 |
| 视频生成 | POST /v1/videos | 49 | 视频 |
| 语音合成 | POST /v1/audio/speech | 17 | 语音合成 |
| 语音识别 | POST /v1/audio/transcriptions | 13 | 语音识别 |
| 实时语音对话、识别、合成、同传 | WS /v1/realtime | 26 | 实时音频 |
| 向量 | POST /v1/embeddings | 17 | 向量 |
| 重排序 | POST /v1/rerank | 5 | 重排序 |
| OCR、翻译、海报、音效等专用能力 | POST /v1/tools/invoke | 12 | 专用模型 |
| 3D 生成 | POST /v1/3d/generations | 1 | 3D 生成 |
| 厂商原生调用(深度研究等) | POST /v1/invoke | 3 | 原生调用 |
| 结构化判断与信息抽取 | POST /v1/systemone | 6 | System One 指南 |
读懂型号能力#
GET /v1/models 与模型目录给出同一组能力字段。只有列出的组合才能调用,其他组合返回 422:
| 字段 | 含义 | 不满足时 |
|---|---|---|
verified_endpoints | 已验收的接口路径 | 422 endpoint_not_verified |
response_modes | 每个接口是否支持普通 JSON(json)与流式(sse) | 422 response_mode_not_verified |
verified_inputs | 每个接口、每种响应方式接受的输入类型:text、image、audio、video、document | 422 input_modality_not_verified |
resource_endpoints | 可配合使用的资源接口,如 /v1/files、/v1/audio/voices | 422 endpoint_not_verified |
system_voices | 语音型号可直接使用的系统音色 | 422 voice_not_registered |
max_output_tokens | 平台允许的单次输出上限 | 请求被拒绝 |
少数型号只支持流式输出(response_modes 中 json 为 false),请求必须带 "stream": true,否则返回 422 streaming_required。
下面的示例找出当前密钥可调用、支持流式且接受图像输入的 Chat Completions 型号:
curl -s https://api.tokentosea.com/v1/models \
-H "Authorization: Bearer $TOKENTOSEA_API_KEY" \
| jq -r '.data[]
| select(.response_modes["/v1/chat/completions"].sse == true)
| select(.verified_inputs["/v1/chat/completions"].sse | index("image"))
| "\(.id)\t\(.owned_by)\t\(.region)"'import os
import requests
models = requests.get(
"https://api.tokentosea.com/v1/models",
headers={"Authorization": f"Bearer {os.environ['TOKENTOSEA_API_KEY']}"},
timeout=30,
).json()["data"]
path = "/v1/chat/completions"
for model in models:
modes = (model.get("response_modes") or {}).get(path) or {}
inputs = (model.get("verified_inputs") or {}).get(path) or {}
if modes.get("sse") and "image" in inputs.get("sse", []):
print(model["id"], model["owned_by"], model["region"])const response = await fetch('https://api.tokentosea.com/v1/models', {
headers: { Authorization: `Bearer ${process.env.TOKENTOSEA_API_KEY}` },
});
const { data } = await response.json();
const path = '/v1/chat/completions';
for (const model of data) {
const sse = model.response_modes?.[path]?.sse;
const inputs = model.verified_inputs?.[path]?.sse ?? [];
if (sse && inputs.includes('image')) console.log(model.id, model.owned_by, model.region);
}读懂价格#
| 字段 | 含义 |
|---|---|
currency | 官方价格的币种:国内型号为 CNY,海外型号为 USD |
tariff | 价格规则:每条规则包含适用条件(when)和计量项(如输入 token、输出 token、缓存命中 token、图片、输出秒数),费率以「每 N 个单位」给出 |
pricing_status | official 为厂商公布价;provisional 为暂定价,见 pricing_basis |
price_version | 价格版本;每次调用按受理时的版本结算 |
同一型号可能按条件取不同费率,例如输入长度分档、是否命中缓存、是否开启思考、视频分辨率与时长、北京时间高峰时段等。模型目录把这些规则渲染成表格,并附上厂商价格页链接。计费方法见计费与结算。
读懂区域#
region 为 cn 的型号在国内执行节点处理,global 的型号在海外执行节点处理。调用方式完全相同,平台按型号自动路由,见区域与数据处理。
挑选建议#
- 先确认接口与输入:你的场景需要流式、图像输入或特定协议时,先用上面的字段筛选。
- 用模型测试比较:在模型测试用同一段提示词比较不同型号的首字延迟、TPS、输出质量与单次费用。
- 控制输出上限:设置合理的
max_tokens,既控制成本,也减少预留金额。 - 限定密钥范围:生产环境只给密钥开放实际使用的服务商或型号,见调用范围。