在跨裝置或長時間中斷的對話中,手動維護訊息列表容易丟失上下文。阿里雲百鍊提供相容 OpenAI 的 Conversations API。配合 Responses API,可自動注入歷史上下文,無需手動同步訊息,實現跨情境、跨裝置的對話延續。
Create conversation
建立一個新會話,可同時添加初始訊息項。
華北2(北京):POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1/conversations
新加坡:POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/conversations
舊版URL路徑 /api/v2/apps/protocols/compatible-mode/v1/conversations 即將停止維護,請儘快遷移至新版路徑 /compatible-mode/v1/conversations。
百鍊為華北2(北京)、新加坡地區推出了業務空間專屬網域名稱,能夠為推理請求提供卓越的效能和更高的穩定性,建議遷移至新網域名稱:
-
華北2(北京)地區:從
https://dashscope.aliyuncs.com遷移至https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com -
新加坡地區:從
https://dashscope-intl.aliyuncs.com遷移至https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com
其中 {WorkspaceId} 為您的業務空間 ID,可在百鍊控制台的業務空間詳情頁面查看。現有網域名稱仍可正常使用。
|
items 初始訊息項列表,最多20條。 |
Python
Node.js
cURL
|
|
metadata 會話中繼資料,用於以結構化格式儲存會話的附加資訊。最多16對索引值對,key最大長度64字元,value最大長度512字元。 |
響應參數
|
created_at 會話建立的 Unix 時間戳記(毫秒)。 |
|
|
id 會話唯一識別碼。 |
|
|
metadata 會話中繼資料,以索引值對形式儲存的附加資訊。最多16對,key最大長度64字元,value最大長度512字元。 |
|
|
object 物件類型,固定為 |
Retrieve conversation
擷取指定會話的資訊。
華北2(北京):GET https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1/conversations/{conversation_id}
新加坡:GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/conversations/{conversation_id}
|
conversation_id 會話ID。 |
Python
Node.js
cURL
|
響應參數
|
created_at 會話建立的 Unix 時間戳記(毫秒)。 |
|
|
id 會話唯一識別碼。 |
|
|
metadata 會話中繼資料,以索引值對形式儲存的附加資訊。最多16對,key最大長度64字元,value最大長度512字元。 |
|
|
object 物件類型,固定為 |
Update conversation
更新會話的中繼資料資訊。
華北2(北京):POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1/conversations/{conversation_id}
新加坡:POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/conversations/{conversation_id}
|
conversation_id 會話ID。 |
Python
Node.js
cURL
|
|
metadata 會話中繼資料,會完全覆蓋原有中繼資料。最多16對索引值對,key最大長度64字元,value最大長度512字元。 |
響應參數
|
created_at 會話建立的 Unix 時間戳記(毫秒)。 |
|
|
id 會話唯一識別碼。 |
|
|
metadata 會話中繼資料,以索引值對形式儲存的附加資訊。最多16對,key最大長度64字元,value最大長度512字元。 |
|
|
object 物件類型,固定為 |
Delete conversation
刪除指定會話。會話中的訊息項不會被刪除。
華北2(北京):DELETE https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1/conversations/{conversation_id}
新加坡:DELETE https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/conversations/{conversation_id}
|
conversation_id 會話ID。 |
Python
Node.js
cURL
|
響應參數
|
deleted 是否刪除成功。 |
|
|
id 被刪除的會話ID。 |
|
|
object 物件類型,固定為 |
Create Items
向指定會話添加訊息項。
華北2(北京):POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1/conversations/{conversation_id}/items
新加坡:POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/conversations/{conversation_id}/items
|
conversation_id 會話ID。 |
Python
Node.js
cURL
|
|
items 訊息項列表,每次最多添加20條。 |
響應參數
|
data 建立的訊息項列表。 |
|
|
first_id 列表中第一條訊息項的ID。 |
|
|
has_more 是否還有更多資料。 |
|
|
last_id 列表中最後一條訊息項的ID。 |
List Items
列出會話中的所有訊息項。
華北2(北京):GET https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1/conversations/{conversation_id}/items
新加坡:GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/conversations/{conversation_id}/items
|
conversation_id 會話ID。 |
Python
Node.js
cURL
|
|
after 分頁遊標,返回指定訊息ID之後的訊息項。 |
|
|
order 排序方式, |
|
|
limit 返回數量,範圍1-100,預設20。 |
響應參數
|
data 訊息項列表。 |
|
|
first_id 列表中第一條訊息項的ID。 |
|
|
has_more 是否還有更多資料。 |
|
|
last_id 列表中最後一條訊息項的ID。 |
|
|
object 物件類型,固定為 |
Retrieve Item
擷取指定訊息項的詳情。
華北2(北京):GET https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1/conversations/{conversation_id}/items/{item_id}
新加坡:GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/conversations/{conversation_id}/items/{item_id}
|
conversation_id 會話ID。 |
Python
Node.js
cURL
|
|
item_id 訊息項ID。 |
響應參數
|
content 訊息內容列表,包含一個或多個內容對象。 |
|
|
id 訊息項唯一識別碼。 |
|
|
role 訊息的角色類型,取值: |
|
|
status 訊息的處理狀態,取值: |
|
|
type 訊息項的類型,固定為 |
Delete Item
刪除指定的訊息項。
華北2(北京):DELETE https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1/conversations/{conversation_id}/items/{item_id}
新加坡:DELETE https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/conversations/{conversation_id}/items/{item_id}
|
conversation_id 會話ID。 |
Python
Node.js
cURL
|
|
item_id 訊息項ID。 |
響應參數
|
deleted 是否刪除成功。 |
|
|
id 被刪除的訊息項ID。 |
|
|
object 物件類型,固定為 |
Response API 使用 conversation 樣本
通過 Responses API 的 conversation 參數,可以實現多輪對話的上下文保持。
請勿同時傳入previous_response_id和conversation,否則會報錯:[400] INVALID_REQUEST: Mutually exclusive parameters: Ensure you are only providing one of: previous_response_id or conversation.
Python
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
)
conversation = client.conversations.create(
items=[
{
"type": "message",
"role": "system",
"content": "李紅,一位溫婉而堅韌的江南女子,出生在浙江省杭州市,她今年20歲,她的興趣愛好是琴棋書畫。",
}
]
)
response1 = client.responses.create(
conversation=conversation.id, model="qwen3.7-plus", input="李紅今年多大了"
)
print(f"第一輪響應: {response1.output_text}")
response2 = client.responses.create(
conversation=conversation.id, model="qwen3.7-plus", input="她的興趣愛好是什嗎?"
)
print(f"第二輪響應: {response2.output_text}")
Node.js
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.DASHSCOPE_API_KEY,
baseURL: "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
});
const conversation = await client.conversations.create({
items: [
{
type: "message",
role: "system",
content: "李紅,一位溫婉而堅韌的江南女子,出生在浙江省杭州市,她今年20歲,她的興趣愛好是琴棋書畫。"
}
]
});
const response1 = await client.responses.create({
conversation: conversation.id,
model: "qwen3.7-plus",
input: "李紅今年多大了"
});
console.log("第一輪響應:", response1.output_text);
const response2 = await client.responses.create({
conversation: conversation.id,
model: "qwen3.7-plus",
input: "她的興趣愛好是什嗎?"
});
console.log("第二輪響應:", response2.output_text);
使用限制
-
建立會話或添加訊息項時,
items最多包含20條。 -
metadata最多16對索引值對,key最大長度64字元,value最大長度512字元。