在跨设备或长时间中断的对话中,手动维护消息列表容易丢失上下文。阿里云百炼提供兼容 OpenAI 的 Conversations API。配合 Responses API,可自动注入历史上下文,无需手动同步消息,实现跨场景、跨设备的对话延续。
Create conversation
创建一个新会话,可同时添加初始消息项。
中国内地:POST https://dashscope.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1/conversations
国际:POST https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1/conversations
items 初始消息项列表,最多20条。 | PythonNode.jscURL |
metadata 会话元数据,用于以结构化格式存储会话的附加信息。最多16对键值对,key最大长度64字符,value最大长度512字符。 |
响应参数
created_at 会话创建的 Unix 时间戳(毫秒)。 | |
id 会话唯一标识符。 | |
metadata 会话元数据,以键值对形式存储的附加信息。最多16对,key最大长度64字符,value最大长度512字符。 | |
object 对象类型,固定为 |
Retrieve conversation
获取指定会话的信息。
中国内地:GET https://dashscope.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1/conversations/{conversation_id}
国际:GET https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1/conversations/{conversation_id}
conversation_id 会话ID。 | PythonNode.jscURL |
响应参数
created_at 会话创建的 Unix 时间戳(毫秒)。 | |
id 会话唯一标识符。 | |
metadata 会话元数据,以键值对形式存储的附加信息。最多16对,key最大长度64字符,value最大长度512字符。 | |
object 对象类型,固定为 |
Update conversation
更新会话的元数据信息。
中国内地:POST https://dashscope.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1/conversations/{conversation_id}
国际:POST https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1/conversations/{conversation_id}
conversation_id 会话ID。 | PythonNode.jscURL |
metadata 会话元数据,会完全覆盖原有元数据。最多16对键值对,key最大长度64字符,value最大长度512字符。 |
响应参数
created_at 会话创建的 Unix 时间戳(毫秒)。 | |
id 会话唯一标识符。 | |
metadata 会话元数据,以键值对形式存储的附加信息。最多16对,key最大长度64字符,value最大长度512字符。 | |
object 对象类型,固定为 |
Delete conversation
删除指定会话。会话中的消息项不会被删除。
中国内地:DELETE https://dashscope.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1/conversations/{conversation_id}
国际:DELETE https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1/conversations/{conversation_id}
conversation_id 会话ID。 | PythonNode.jscURL |
响应参数
deleted 是否删除成功。 | |
id 被删除的会话ID。 | |
object 对象类型,固定为 |
Create Items
向指定会话添加消息项。
中国内地:POST https://dashscope.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1/conversations/{conversation_id}/items
国际:POST https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1/conversations/{conversation_id}/items
conversation_id 会话ID。 | PythonNode.jscURL |
items 消息项列表,每次最多添加20条。 |
响应参数
data 创建的消息项列表。 | |
first_id 列表中第一条消息项的ID。 | |
has_more 是否还有更多数据。 | |
last_id 列表中最后一条消息项的ID。 |
List Items
列出会话中的所有消息项。
中国内地:GET https://dashscope.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1/conversations/{conversation_id}/items
国际:GET https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1/conversations/{conversation_id}/items
conversation_id 会话ID。 | PythonNode.jscURL |
after 分页游标,返回指定消息ID之后的消息项。 | |
order 排序方式, | |
limit 返回数量,范围1-100,默认20。 |
响应参数
data 消息项列表。 | |
first_id 列表中第一条消息项的ID。 | |
has_more 是否还有更多数据。 | |
last_id 列表中最后一条消息项的ID。 | |
object 对象类型,固定为 |
Retrieve Item
获取指定消息项的详情。
中国内地:GET https://dashscope.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1/conversations/{conversation_id}/items/{item_id}
国际:GET https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1/conversations/{conversation_id}/items/{item_id}
conversation_id 会话ID。 | PythonNode.jscURL |
item_id 消息项ID。 |
响应参数
content 消息内容列表,包含一个或多个内容对象。 | |
id 消息项唯一标识符。 | |
role 消息的角色类型,取值: | |
status 消息的处理状态,取值: | |
type 消息项的类型,固定为 |
Delete Item
删除指定的消息项。
中国内地:DELETE https://dashscope.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1/conversations/{conversation_id}/items/{item_id}
国际:DELETE https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1/conversations/{conversation_id}/items/{item_id}
conversation_id 会话ID。 | PythonNode.jscURL |
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://dashscope.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1",
)
conversation = client.conversations.create(
items=[
{
"type": "message",
"role": "system",
"content": "李红,一位温婉而坚韧的江南女子,出生在浙江省杭州市,她今年20岁,她的兴趣爱好是琴棋书画。",
}
]
)
response1 = client.responses.create(
conversation=conversation.id, model="qwen3.5-plus", input="李红今年多大了"
)
print(f"第一轮响应: {response1.output_text}")
response2 = client.responses.create(
conversation=conversation.id, model="qwen3.5-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://dashscope.aliyuncs.com/api/v2/apps/protocols/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.5-plus",
input: "李红今年多大了"
});
console.log("第一轮响应:", response1.output_text);
const response2 = await client.responses.create({
conversation: conversation.id,
model: "qwen3.5-plus",
input: "她的兴趣爱好是什么?"
});
console.log("第二轮响应:", response2.output_text);使用限制
创建会话或添加消息项时,
items最多包含20条。metadata最多16对键值对,key最大长度64字符,value最大长度512字符。