会话保持策略
问题现象
当您使用不同账号(或不同客户端)发起多轮对话请求时,可能会出现请求失败或上下文丢失的情况。这是因为服务端无法自动识别哪些请求属于同一场对话。
解决方案:添加会话标识
您只需在每次请求的 HTTP Header 中增加一个参数——X-Conversation-Id,值为您自定义的会话ID(同一场对话的所有请求请务必使用相同的ID)。
各接口调用示例
1. GPT Response 接口(流式输出)
curl --location --request POST 'https://genaiapi.cloudsway.net/v1/ai/{your endpoint}/responses' \
--header 'Authorization: Bearer {your ak}' \
--header 'X-Conversation-Id: conversation-test1' \
--header 'Content-Type: application/json' \
--data-raw '{
"input": "再讲一个脑筋急转弯,附带答案。综合返回所有的。",
"previous_response_id": "resp_04825fd1c08c48820069c12ebdd7948190ac42abb8234f1a83",
"stream": true
}'
2. Chat Completion 接口(统一风格,支持 GPT / Claude / Gemini)
curl --location --request POST 'https://genaiapi.cloudsway.net/v1/ai/{your endpoint}/chat/completions' \
--header 'Authorization: Bearer {your ak}' \
--header 'X-Conversation-Id: conversation-test1' \
--header 'Content-Type: application/json' \
--data-raw '{
"messages": [
{
"role":"user",
"content":"hi"
}
]
}'
3. Claude 原生接口(支持缓存控制)
如果您使用 Claude 模型并希望进一步优化缓存效果,可以参考以下示例:
curl --location --request POST 'https://genaiapi.cloudsway.net/{your endpoint}/v1/messages' \
--header 'Authorization: Bearer {your ak}' \
--header 'X-Conversation-Id: conversation-test1' \
--header 'Content-Type: application/json' \
--data-raw '{
"model": "MaaS_Cl_Opus_4.7_20260416_cache",
"max_tokens": 1024,
"system": [
{
"type": "text",
"text": "long context",
"cache_control": {
"type": "ephemeral"
}
}
],
"messages": [
{
"role": "user",
"content": "Analyze the major themes in Pride and Prejudice."
}
]
}'
提升缓存命中率
除了解决对话中断问题,X-Conversation-Id 还有一个隐藏技能——帮助提升缓存命中率。这意味着:
-
模型响应速度更快
-
💰 重复内容无需重复计算,节省 Token 消耗
不同模型系列的缓存机制如下:
| 模型系列 | 缓存方式 | 您需要做的 |
|---|---|---|
| Claude | 显式缓存(需配合 cache_control) |
同一会话使用相同 X-Conversation-Id,并在消息中按需添加 cache_control 标记 |
| GPT 系列 | 隐式缓存(服务端自动管理) | 只需保证同一会话使用相同 X-Conversion-Id 即可 |
| Gemini 系列 | 隐式缓存(服务端自动管理) | 只需保证同一会话使用相同 X-Conversion-Id 即可 |
| 注意事项 | 说明 |
|---|---|
| 会话ID唯一性 | 每场独立对话请使用不同的 X-Conversation-Id,推荐格式如 conversation-{用户ID}-{会话编号} |
| 跨账号隔离 | 不同账号即使使用相同会话ID,上下文也不会相互干扰(账号本身已天然隔离) |
| ID 持久化 | 建议在客户端保存会话ID,以便用户下次继续同一场对话 |
| 缓存一致性 | 如需充分利用缓存,请确保同一会话的请求内容结构保持稳定 |