聊天接口 /v1/chat/completions
POST
/v1/chat/completions这里只列出部分常用参数,完整参数说明参考 OpenAI 官方文档:https://platform.openai.com/docs/api-reference/completions/create
模型定价均为官方定价的 1.5 倍(3.5 元充值档位除外),举例:
- gpt-3.5 输入部分 1333 token = 10 P,输出部分 1000 token = 10 P
- gpt-3.5-16k 输入部分 666 token = 10 P,输出部分 500 token = 10 P
- gpt-4 输入部分 66.6 token = 10 P,输出部分 33.3 token = 10 P
gpt-4-vision-preview 的图片部分价格有些不同,detail: low 的图片每张 20 P,detail: high 的图片每张 100 P。
缓存机制
API2D 的服务器会对请求结果做缓存,如果 sha1(request.body) 相同,会直接返回缓存的结果。缓存命中之后,本次请求不会扣除任何点数。
缓存会保存 24 小时,如果不想使用缓存,可以在请求 header 中添加 x-api2d-no-cache: 1 来跳过缓存,强制 API2D 服务器发送新请求。
如何判断返回值是缓存:
对于非流式请求,返回值中会多一个 cache 属性
对于流式请求,返回值 header 中会多一个 X-Api2d-Cache 字段
请求参数
默认为 false,为 true 时会尝试让 GPT 自己审查内容,不输出违规结果。由于 GPT 的调性,效果好坏比较随机。总的来说对暴力、色情内容效果较好,政治类效果一般。开启后会每次访问会增加约 1P 的消耗
默认为 false,为 true 时会调用文本安全接口对内容进行判定,并将审核结果添加到返回值中的 moderation 字段,开发者可以根据值自行判断如何处理。审核输出的详细解释:https://cloud.tencent.com/document/product/1124/51860 开启后每 9000 字符会增加 10P 的消耗
默认为 false,在 moderation 为 true 且自身也为 true 时,如果审核结果不是 Pass,将自动进行内容拦截,对流也生效
流方式返回,兼容官方参数,但因为有计费和审核逻辑,比官方流慢。
如果不指定,每次请求会预先冻结 模型支持的最大个数 Token,如果是 3.5 也就是 41P ,在请求完成后按 usage 字段多退少补。如果账户余额少于 41P 就会报错,此时可以指定 max_tokens,这样就会按 max_tokens 来冻结
{
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "user",
"content": "讲个笑话"
}
],
"safe_mode": false
}
示例代码
返回响应
{
"id": "chatcmpl-7KeDpu9A1NA8cvGROprevZBXrFf90",
"object": "chat.completion",
"created": 1685155529,
"model": "gpt-3.5-turbo-0301",
"usage": {
"prompt_tokens": 13,
"completion_tokens": 32,
"total_tokens": 45,
"pre_token_count": 4096,
"pre_total": 42,
"adjust_total": 41,
"final_total": 1
},
"choices": [
{
"message": {
"role": "assistant",
"content": "为什么小鸟不会在电脑上打字?因为它们只会打鸟语!"
},
"finish_reason": "stop",
"index": 0
}
]
}