OpenAI Chat Completions API
使用 BetterToken OpenAI-compatible Chat Completions API:完整请求 URL、Bearer API Key、curl、Python 和 JavaScript 示例。
通过 POST https://bettertoken.ai/v1/chat/completions 调用 OpenAI-compatible Chat Completions。外部工具通常只填写 Base URL https://bettertoken.ai/v1,由工具自行追加 /chat/completions。
重点信息
| 字段 | 填写内容 |
|---|---|
| API Key | BetterToken API Key |
| 完整请求 URL | https://bettertoken.ai/v1/chat/completions |
| Model | YOUR_MODEL_ID |
准备工作
- 创建 BetterToken API Key
- 从模型广场或 Console 中对应 Key 的 Setup 弹窗复制 Model ID
- 准备支持
curl的终端,或 Python 3 / Node.js
安装
curl
curl 无需额外 SDK。确认终端可以运行 curl --version。
Python
python -m pip install openaiJavaScript
npm install openai手动配置
curl
curl "https://bettertoken.ai/v1/chat/completions" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ --data '{ "model": "YOUR_MODEL_ID", "messages": [ { "role": "user", "content": "Hello" } ] }'Python SDK
from openai import OpenAI
client = OpenAI( api_key="YOUR_API_KEY", base_url="https://bettertoken.ai/v1",)
response = client.chat.completions.create( model="YOUR_MODEL_ID", messages=[ {"role": "user", "content": "Hello"}, ],)
print(response.choices[0].message.content)JavaScript SDK
import OpenAI from "openai";
const client = new OpenAI({ apiKey: "YOUR_API_KEY", baseURL: "https://bettertoken.ai/v1",});
const response = await client.chat.completions.create({ model: "YOUR_MODEL_ID", messages: [{ role: "user", content: "Hello" }],});
console.log(response.choices[0].message.content);验证连接
在右侧 Playground 中:
- 在 Authorization 中输入
YOUR_API_KEY。 - 将
model替换为YOUR_MODEL_ID。 - 修改
messages后发送请求。
Playground 使用完整路径 https://bettertoken.ai/v1/chat/completions,无需手动拼接 endpoint。
收到 200 响应且 choices[0].message.content 包含模型回复,即表示连接成功。
切换模型
把请求中的 YOUR_MODEL_ID 替换为模型广场或 Setup 弹窗中的完整 Model ID。不要根据展示名称自行缩写 Model ID。
常见错误
| 错误 | 处理方式 |
|---|---|
401 | 检查 Authorization 是否为 Bearer YOUR_API_KEY,并重新复制 BetterToken API Key。 |
404 | 直接调用使用完整 URL https://bettertoken.ai/v1/chat/completions;SDK 的 base_url 使用 https://bettertoken.ai/v1。 |
| 模型不存在 | 使用模型广场或 Setup 弹窗中的完整 Model ID。 |
| 请求格式错误 | 确认 messages 是数组,并且每项包含 role 和 content。 |
技术说明
Base URL 与完整请求 URL
GitHub Copilot 和 TRAE 等要求完整请求 URL 的工具使用 https://bettertoken.ai/v1/chat/completions。Cursor、Cline、OpenCode、n8n 和 Dify 等会自行追加路径的工具只填写 https://bettertoken.ai/v1。
/v1/chat/completions授权
Use your BetterToken API Key as a bearer token. Do not expose API keys in frontend browser code, screenshots, logs, tickets, or Git repositories.
请求体 application/json
对话消息数组。每项应包含 role 和 content。
是否请求流式响应。
响应
200所选模型返回的 Chat Completions API 响应。
OpenAI-compatible Chat Completions API 响应。实际字段会随所选模型和请求参数变化。
{}400请求格式错误、缺少参数、JSON 或 multipart 解析失败、尺寸格式错误。
Show child attributes
"invalid request""invalid_request_error""invalid_request""insufficient quota"{
"error": {
"message": "invalid request",
"type": "invalid_request_error",
"code": "invalid_request"
},
"message": "insufficient quota"
}401API Key 缺失或无效。
Show child attributes
"invalid request""invalid_request_error""invalid_request""insufficient quota"{
"error": {
"message": "invalid request",
"type": "invalid_request_error",
"code": "invalid_request"
},
"message": "insufficient quota"
}402额度或余额不足。
Show child attributes
"invalid request""invalid_request_error""invalid_request""insufficient quota"{
"error": {
"message": "invalid request",
"type": "invalid_request_error",
"code": "invalid_request"
},
"message": "insufficient quota"
}429触发限速、并发限制或上游繁忙。
Show child attributes
"invalid request""invalid_request_error""invalid_request""insufficient quota"{
"error": {
"message": "invalid request",
"type": "invalid_request_error",
"code": "invalid_request"
},
"message": "insufficient quota"
}500网关或上游服务异常。
Show child attributes
"invalid request""invalid_request_error""invalid_request""insufficient quota"{
"error": {
"message": "invalid request",
"type": "invalid_request_error",
"code": "invalid_request"
},
"message": "insufficient quota"
}
