每次 API 请求,平台都会为本次调用分配一个 请求 ID,用于追踪 API 调用、排查问题与提交工单。该机制适用于 所有 API 接口,包括 Chat、图像生成、视频生成、音频、Embeddings、Rerank 等。
无需额外配置,请求 ID 会自动包含在每个 API 响应中。
响应头说明
每次 API 调用的响应中会包含以下 Header:
| 响应头 | 含义 | 说明 |
|---|
X-Oneapi-Request-Id | 平台请求 ID | 平台为本次请求分配的唯一标识 |
request-id | 平台请求 ID(别名) | 与 X-Oneapi-Request-Id 值相同,方便不同客户端读取 |
自定义请求 ID
如果你的系统已经有自己的链路追踪 ID,可以在请求头中传入:
| 请求头 | 说明 |
|---|
X-Oneapi-Request-Id | 推荐使用;平台会优先采用该值 |
request-id | 兼容别名;当未传入 X-Oneapi-Request-Id 时采用 |
平台会去除首尾空白;如果传入值为空或长度超过 128 字符,平台会重新生成请求 ID。
错误响应中的请求 ID
当请求失败时,响应体的 JSON 中也会包含请求 ID:
{
"error": {
"message": "错误描述...",
"type": "error_type",
"request_id": "20260320153045abcdefgh"
}
}
| 字段 | 含义 |
|---|
error.request_id | 平台请求 ID |
如何获取请求 ID
通过 curl
curl -i https://models.kapon.cloud/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o",
"messages": [{"role": "user", "content": "Hello"}]
}'
响应头中可以看到:
X-Oneapi-Request-Id: 20260320153045abcdefgh
request-id: 20260320153045abcdefgh
Python
import openai
client = openai.OpenAI(
api_key="YOUR_API_KEY",
base_url="https://models.kapon.cloud/v1"
)
response = client.chat.completions.with_raw_response.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Hello"}]
)
# 从响应头获取请求 ID
platform_request_id = response.headers.get("X-Oneapi-Request-Id")
print(f"平台请求 ID: {platform_request_id}")
Node.js
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "YOUR_API_KEY",
baseURL: "https://models.kapon.cloud/v1",
});
const response = await client.chat.completions
.create({
model: "gpt-4o",
messages: [{ role: "user", content: "Hello" }],
})
.asResponse();
// 从响应头获取请求 ID
const platformRequestId = response.headers.get("X-Oneapi-Request-Id");
console.log(`平台请求 ID: ${platformRequestId}`);
使用场景
提交工单
遇到问题时,将平台请求 ID 附在工单中,可大幅加速排查效率。
链路追踪
在请求头中传入自己的追踪 ID,可将平台调用与你的内部日志关联起来。
程序化处理
在代码中捕获请求 ID,写入自己的日志系统,实现端到端链路追踪。
建议在生产环境中记录每次 API 调用的请求 ID,便于事后排查。