用 API 密钥调用判断、重排、嵌入、图像、语音合成和语音转写
特殊模型接口
持有 API 密钥后,除了对话,还可以调用下面六类接口。每一次成功调用都会记入个人调用日志和后台请求列表,并按实际处理请求的上游单价计算费用。
供应商没有声明对应接口时,这个用途不能被选中。目录里会写明原因,例如「该供应商不提供重排接口」。
判断
对一段内容回答是非、选择或评分类问题。可在全局设置里选为意图识别模型,也可以分发给调用方通过判断接口使用。
POST /v1/decisions
{
"model": "your-gateway-model",
"input": "这笔订单被扣了两次款。",
"questions": [
{
"name": "is_complaint",
"instructions": "这是不是一条投诉?",
"type": "predicate"
},
{
"name": "department",
"instructions": "应该交给哪个部门?",
"type": "choice",
"choices": [
{ "value": "billing", "description": "付款、发票和退款。" },
{ "value": "other", "description": "以上都不是。" }
]
}
]
}
同一用途还有 POST /v1/systemone。请求体用 state 放被判断的内容,questions 是按题名索引的对象。网关会把它收成同一种判断请求,再按所选上游编码。
计费按 token。判断同时计输入和输出,输出价可以为 0。嵌入只计输入。
限制:
- 一次请求最多 256 题。超过所选上游的单批上限时,网关按上限拆开并发发送,再按题名合并答案。每一批单独记一条用量。
- 选择题至少 2 个选项。评分题至少 1 个等级。题名不能重复。
- 图片只能放在
data:地址里。不接收图片的上游会返回 400。 - 缺题、多题、答案不在选项里,都会拒绝,并指出是哪一题。
- 请求体上限 32 MiB。
- 不同上游给出的判断分数不能直接比较。
重排
POST /v1/rerank
{
"model": "your-gateway-model",
"query": "退款进度",
"documents": ["订单已发货。", "退款将在三个工作日内到账。"]
}
计费按搜索次数。上游返回搜索次数时用该值;没有返回时,按 1 次查询加每 100 个文档 1 次计算。界面上的价格是每千次搜索。
嵌入
POST /v1/embeddings
{
"model": "your-gateway-model",
"input": "把这段文字变成向量。"
}
计费按输入 token。
图像
POST /v1/images/generations
{
"model": "your-gateway-model",
"prompt": "一张蓝色背景的产品图",
"n": 1
}
计费按返回的图片张数。价格按每张填写。
语音合成
POST /v1/audio/speech
{
"model": "your-gateway-model",
"input": "你好,这是一段语音。",
"voice": "alloy"
}
计费按请求文本的字符数,以 Unicode 标量计数。价格按每百万字符填写。请求体上限 32 MiB。
语音转写
上传文件:POST /v1/audio/transcriptions,multipart/form-data,字段为 model 和 file。
计费按音频时长。网关在上传时只读取容器头,不把整段音频解码。库内按秒计价,界面按每分钟填写。认不出格式时返回 400,消息为「无法识别音频格式」。文件请求体上限 25 MiB。
实时转写走 WebSocket。费用按本次会话里收到的音频帧累计时长计算。
视频
视频的计费方式取决于上游。按 Token 计费的模型用上游回报的视频 Token 数,价格按每百万视频 Token 填写。
按秒计费的模型按分辨率档位分价,价格按每秒填写。计费时长依次取上游回报的时长、请求里的时长、模型默认时长;档位取值顺序相同,但两者各自独立取值,来源可能不同。视频文件的实际时长只用于核对,不决定金额。请求详情里同时显示计费时长和实际时长,并分别列出「计费时长依据」与「计费档位依据」。
实时语音
实时语音在会话结束时结算一次。按 Token 计费的上游按回报的文本、音频、图片 Token 分别计价,命中缓存的部分也按模态分别计价:文本缓存命中、音频缓存命中、图片缓存命中各有一项价格,均按每百万 Token 填写。按时长计费的上游按音频时长计算,价格按每分钟填写,不出现音频与图片的 Token 价格项。
为 OpenAI 实时模型配价时,「音频缓存命中价」为必填项;「图片输入价」与「图片缓存命中价」始终出现、可以留空——调用方随时可能往会话里送图,不按模型能力声明隐藏,否则带图会话会整行未定价、而在表单里找不到可填的价。会话里出现图片而没有配价时,这次调用记为未定价。表单里的「文本缓存命中」只对应文本。
请求的缓存命中数(以及由它算出的缓存命中率)对实时语音只统计文本缓存,不含音频与图片缓存。上游只报了缓存总数、没有按模态拆分时,网关不推断各模态的缓存数,这次调用记为无法计量,详情写明「上游未按模态报告缓存用量」。
会话因断线、达到最长时长等原因提前结束时,已产生的用量照常结算。
费用未算出的调用
调用成功但算不出金额时,请求列表的费用列显示以下两种结果,这类调用不计入金额:
- 未定价: 这次调用用到的计价项没有配置价格,请求详情写明缺少哪几项价格。配置后,之后的调用正常计费,已发生的调用不追溯。
- 无法计量: 上游和请求都没有给出可信的用量,或用量不足以按价格项拆分(如实时语音只报了缓存总数)。请求详情写明原因。
在模型服务列表可以看到这类调用的次数,并进入对应的请求列表。
额度
Token 额度只计入按 Token 计费的用量,不计入按张、按秒、按字符计费的模型。把 Token 额度设为 0 会拒绝全部调用。要约束这类模型,请使用金额额度,金额按调用结束后的实际费用计入。
错误
模型不支持所调用的接口时,返回 400,消息为「该模型不支持此接口」。所选上游全部失败时返回 502。错误都带中文消息和稳定错误码。状态码的判定依据、reason 全表与三种协议的错误体形状,见错误参考。