メッセージリストを手動で管理すると、複数のデバイスや長時間の休憩にわたる会話においてコンテキストの損失を引き起こす可能性があります。Alibaba Cloud Model Studio は、OpenAI 互換 Conversations API を提供しています。この API を Responses API と組み合わせて使用すると、履歴コンテキストを自動的に挿入できます。これにより、メッセージを手動で同期する必要がなくなり、さまざまなシナリオやデバイス間でシームレスな会話の継続性が可能になります。
会話の作成
新しいセッションを作成し、初期メッセージアイテムを追加します。
中国本土: POST https://dashscope.aliyuncs.com/compatible-mode/v1/conversations
国際: POST https://dashscope-intl.aliyuncs.com/compatible-mode/v1/conversations
レガシー URL パス /api/v2/apps/protocols/compatible-mode/v1/conversations は、メンテナンスのため間もなく非推奨となります。新しいパス /compatible-mode/v1/conversations へ早急に移行してください。
items 初期メッセージアイテムのリスト。最大 20 個のアイテムが許可されます。 | PythonNode.jscURL |
metadata セッションのメタデータ。このフィールドを使用して、セッションに関する追加の構造化情報を格納します。最大 16 個のキーと値のペアをサポートします。キーは最大 64 文字長、値は最大 512 文字長です。 |
応答パラメーター
created_at セッションが作成されたときの Unix タイムスタンプ (ミリ秒単位)。 | |
id セッションの一意の識別子。 | |
metadata セッションのメタデータ。これはキーと値のペアとして格納される追加情報です。最大 16 個のペアをサポートします。キーは最大 64 文字長、値は最大 512 文字長です。 | |
object オブジェクトタイプ。これは、値が |
会話の取得
特定のセッションに関する情報を取得します。
中国本土: GET https://dashscope.aliyuncs.com/compatible-mode/v1/conversations/{conversation_id}
国際: GET https://dashscope-intl.aliyuncs.com/compatible-mode/v1/conversations/{conversation_id}
conversation_id セッション ID。 | PythonNode.jscURL |
応答パラメーター
created_at セッションが作成されたときの Unix タイムスタンプ (ミリ秒単位)。 | |
id セッションの一意の識別子。 | |
metadata セッションのメタデータ。これはキーと値のペアとして格納される追加情報です。最大 16 個のペアをサポートします。キーは最大 64 文字長、値は最大 512 文字長です。 | |
object オブジェクトタイプ。これは、値が |
会話の更新
セッションのメタデータを更新します。
中国本土: POST https://dashscope.aliyuncs.com/compatible-mode/v1/conversations/{conversation_id}
国際: POST https://dashscope-intl.aliyuncs.com/compatible-mode/v1/conversations/{conversation_id}
conversation_id セッション ID。 | PythonNode.jscURL |
metadata セッションのメタデータ。これは既存のメタデータを完全に上書きします。最大 16 個のキーと値のペアをサポートします。キーは最大 64 文字長、値は最大 512 文字長です。 |
応答パラメーター
created_at セッションが作成されたときの Unix タイムスタンプ (ミリ秒単位)。 | |
id セッションの一意の識別子。 | |
metadata セッションのメタデータ。これはキーと値のペアとして格納される追加情報です。最大 16 個のペアをサポートします。キーは最大 64 文字長、値は最大 512 文字長です。 | |
object オブジェクトタイプ。これは、値が |
会話の削除
特定のセッションを削除します。セッション内のメッセージアイテムはそのまま残ります。
中国本土: DELETE https://dashscope.aliyuncs.com/compatible-mode/v1/conversations/{conversation_id}
国際: DELETE https://dashscope-intl.aliyuncs.com/compatible-mode/v1/conversations/{conversation_id}
conversation_id セッション ID。 | PythonNode.jscURL |
応答パラメーター
deleted 削除が成功したかどうかを示します。 | |
id 削除されたセッションの ID。 | |
object オブジェクトタイプ。これは、値が |
アイテムの作成
特定のセッションにメッセージアイテムを追加します。
中国本土: POST https://dashscope.aliyuncs.com/compatible-mode/v1/conversations/{conversation_id}/items
国際: POST https://dashscope-intl.aliyuncs.com/compatible-mode/v1/conversations/{conversation_id}/items
conversation_id セッション ID。 | PythonNode.jscURL |
items メッセージアイテムのリスト。リクエストごとに最大 20 個のアイテムを追加できます。 |
応答パラメーター
data 作成されたメッセージアイテムのリスト。 | |
first_id リスト内の最初のメッセージアイテムの ID。 | |
has_more さらにデータがありますか。 | |
last_id リスト内の最後のメッセージアイテムの ID。 |
アイテムのリスト
セッション内のすべてのメッセージアイテムをリスト表示します。
中国本土: GET https://dashscope.aliyuncs.com/compatible-mode/v1/conversations/{conversation_id}/items
国際: GET https://dashscope-intl.aliyuncs.com/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 オブジェクトタイプ。これは、値が |
アイテムの取得
特定のメッセージアイテムの詳細を取得します。
中国本土: GET https://dashscope.aliyuncs.com/compatible-mode/v1/conversations/{conversation_id}/items/{item_id}
国際: GET https://dashscope-intl.aliyuncs.com/compatible-mode/v1/conversations/{conversation_id}/items/{item_id}
conversation_id セッション ID。 | PythonNode.jscURL |
item_id メッセージアイテム ID。 |
応答パラメーター
content メッセージコンテンツオブジェクトのリスト。 | |
id メッセージアイテムの一意の識別子。 | |
role メッセージのロール。有効な値は、 | |
status メッセージの処理ステータス。有効な値は、 | |
type アイテムのタイプ。これは、値が |
アイテムの削除
特定のメッセージアイテムを削除します。
中国本土: DELETE https://dashscope.aliyuncs.com/compatible-mode/v1/conversations/{conversation_id}/items/{item_id}
国際: DELETE https://dashscope-intl.aliyuncs.com/compatible-mode/v1/conversations/{conversation_id}/items/{item_id}
conversation_id セッション ID。 | PythonNode.jscURL |
item_id メッセージアイテム ID。 |
応答パラメーター
deleted 削除が成功したかどうかを示します。 | |
id 削除されたメッセージアイテムの ID。 | |
object オブジェクトタイプ。これは、値が |
Responses API を使用した会話の例
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-intl.aliyuncs.com/compatible-mode/v1",
)
conversation = client.conversations.create(
items=[
{
"type": "message",
"role": "system",
"content": "Li Hong は浙江省杭州市出身の 20 歳の女性です。性格は優しく、芯が強いです。趣味は琴、囲碁、書道、絵画です。",
}
]
)
response1 = client.responses.create(
conversation=conversation.id, model="qwen3.6-plus", input="Li Hong は何歳ですか?"
)
print(f"最初の応答: {response1.output_text}")
response2 = client.responses.create(
conversation=conversation.id, model="qwen3.6-plus", input="彼女の趣味は何ですか?"
)
print(f"2 番目の応答: {response2.output_text}")
Node.js
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.DASHSCOPE_API_KEY,
baseURL: "https://dashscope-intl.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.6-plus",
input: "李紅さんは何歳ですか?"
});
console.log("最初の応答:", response1.output_text);
const response2 = await client.responses.create({
conversation: conversation.id,
model: "qwen3.6-plus",
input: "彼女の趣味は何ですか?"
});
console.log("2回目の応答:", response2.output_text);使用制限
セッションを作成したりメッセージアイテムを追加したりする場合、
items配列には最大 20 個のアイテムを含めることができます。metadataオブジェクトには、最大 16 個のキーと値のペアを含めることができます。キーは最大 64 文字長、値は最大 512 文字長です。