Chat Completions
POST /v1/chat/completions 是兼容范围最广的对话接口,适用于多数 OpenAI SDK、聊天客户端和服务端应用。
最小请求
bash
# 完整端点用于发送对话请求;密钥从当前终端环境变量读取。
curl https://sprelaytoken.com/v1/chat/completions \
-H "Authorization: Bearer $SPRELAY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.6-sol",
"messages": [
{"role": "system", "content": "回答要简洁。"},
{"role": "user", "content": "解释什么是 API 网关。"}
]
}'-H 添加请求头,-d 后的 JSON 是请求正文。system 设定回答规则,user 是用户问题;数组顺序就是对话顺序。JSON 内不能写注释,所以修改时应保留双引号、逗号和方括号。
Python SDK
python
# os 读取环境变量;OpenAI 是兼容 SDK 的入口类。
import os
from openai import OpenAI
# base_url 必须保留 /v1,timeout 是最长等待秒数。
client = OpenAI(
api_key=os.environ["SPRELAY_API_KEY"],
base_url="https://sprelaytoken.com/v1",
timeout=60.0,
)
# create() 发出一次非流式请求,返回完整响应对象。
response = client.chat.completions.create(
model="gpt-5.6-sol",
messages=[
{"role": "system", "content": "回答要简洁。"},
{"role": "user", "content": "解释什么是 API 网关。"},
],
)
# choices[0] 表示读取第一个候选答案,只输出正文。
print(response.choices[0].message.content)JavaScript SDK
javascript
// 从已安装的 openai 包导入客户端。
import OpenAI from 'openai'
// 密钥从运行 Node.js 的环境变量读取,避免写进源码。
const client = new OpenAI({
apiKey: process.env.SPRELAY_API_KEY,
baseURL: 'https://sprelaytoken.com/v1',
timeout: 60_000,
})
// await 会等待服务器返回完整的非流式响应。
const response = await client.chat.completions.create({
model: 'gpt-5.6-sol',
messages: [
{ role: 'system', content: '回答要简洁。' },
{ role: 'user', content: '解释什么是 API 网关。' },
],
})
// 只打印第一个候选答案的文本,不输出整份响应 JSON。
console.log(response.choices[0].message.content)常用字段
| 字段 | 说明 |
|---|---|
model | 必填,使用当前分组支持的完整模型名称 |
messages | 必填,对话消息数组 |
stream | 是否使用 SSE 流式输出 |
temperature | 可选;模型不支持时不要强行传递 |
max_tokens | 可选;具体模型可能使用不同限制 |
tools | 可选,声明可调用工具 |
不同模型支持的可选字段并不完全一致。遇到“unsupported parameter”时,先删除非必需字段,只保留 model 和 messages 验证。
多轮对话
API 不会替你长期保存对话。下一轮请求需要把仍然相关的历史消息放入 messages。控制历史长度,避免上下文不断增长导致延迟和费用上升。
