すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Model Studio:OpenAI Responses API reference

最終更新日:Jan 27, 2026

このトピックでは、OpenAI 互換の Responses API を使用して Qwen モデルを呼び出す方法について説明します。入力パラメーターと出力パラメーターを解説し、呼び出し例を示します。

OpenAI Chat Completions API と比較した利点:

  • 組み込みツール:ウェブ検索、コードインタープリター、ウェブエクストラクターが含まれます。これらのツールをまとめて (tools=[{"type": "web_search"}, {"type": "code_interpreter"}, {"type": "web_extractor"}]) 有効化することで、複雑なタスクを処理する際に最高の結果を得ることができます。詳細については、「組み込みツールの呼び出し」をご参照ください。

  • より柔軟な入力:この API は、モデルの入力として文字列を直接渡すことをサポートしています。また、Chat フォーマットのメッセージ配列とも互換性があります。

  • 簡素化されたコンテキスト管理:以前の応答から previous_response_id を渡すことができるため、完全なメッセージ履歴配列を手動で構築する必要がありません。

互換性に関する注意と制限事項

この API は、開発者の移行コストを削減するために OpenAI との互換性を持つように設計されています。ただし、パラメーター、特徴、および特定の動作には違いがあります。

基本原則:リクエストは、このドキュメントに明記されているパラメーターのみを処理します。記載されていない OpenAI パラメーターはすべて無視されます。

以下に、迅速に適応するための主な違いをいくつか示します:

  • マルチモーダル入力は非サポート:現在、テキストモデルの qwen3-max-2026-01-23 のみがサポートされています。input パラメーターはテキストフォーマットのみをサポートし、画像やその他のファイルタイプはサポートしていません。

  • 非サポートのパラメーター:システムメッセージ命令の instructions や非同期実行パラメーターの background など、一部の OpenAI Responses API パラメーターはサポートされていません。現在、同期呼び出しのみがサポートされています。

  • 追加でサポートされるパラメーター:この API は、enable_thinking などの追加パラメーターもサポートしています。具体的な使用方法については、対応するパラメーターの説明をご参照ください。

現在、、Singapore リージョンのみ利用可能です。

シンガポール

SDK 呼び出し構成の base_url は次のとおりです:https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1

HTTP リクエストアドレス:POST https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1/responses

リクエストボディ

基本的な呼び出し

Python

import os
from openai import OpenAI

client = OpenAI(
    # 環境変数が設定されていない場合は、次の行を Model Studio API キーに置き換えてください:api_key="sk-xxx"
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    base_url="https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1",
)

response = client.responses.create(
    model="qwen3-max-2026-01-23",
    input="こんにちは、一文で自己紹介をしてください。"
)

# モデルの応答を取得
print(response.output_text)

Node.js

import OpenAI from "openai";

const openai = new OpenAI({
    // 環境変数が設定されていない場合は、次の行を Model Studio API キーに置き換えてください:apiKey: "sk-xxx"
    apiKey: process.env.DASHSCOPE_API_KEY,
    baseURL: "https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1"
});

async function main() {
    const response = await openai.responses.create({
        model: "qwen3-max-2026-01-23",
        input: "こんにちは、一文で自己紹介をしてください。"
    });

    // モデルの応答を取得
    console.log(response.output_text);
}

main();

curl

curl -X POST https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
    "model": "qwen3-max-2026-01-23",
    "input": "こんにちは、一文で自己紹介をしてください。"
}'

ストリーミング出力

Python

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    base_url="https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1",
)

stream = client.responses.create(
    model="qwen3-max-2026-01-23",
    input="人工知能について簡単に紹介してください。",
    stream=True
)

print("ストリーミング出力を受信中:")
for event in stream:
    if event.type == 'response.output_text.delta':
        print(event.delta, end='', flush=True)
    elif event.type == 'response.completed':
        print("\nストリームが完了しました")
        print(f"合計トークン数:{event.response.usage.total_tokens}")

Node.js

import OpenAI from "openai";

const openai = new OpenAI({
    apiKey: process.env.DASHSCOPE_API_KEY,
    baseURL: "https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1"
});

async function main() {
    const stream = await openai.responses.create({
        model: "qwen3-max-2026-01-23",
        input: "人工知能について簡単に紹介してください。",
        stream: true
    });

    console.log("ストリーミング出力を受信中:");
    for await (const event of stream) {
        if (event.type === 'response.output_text.delta') {
            process.stdout.write(event.delta);
        } else if (event.type === 'response.completed') {
            console.log("\nストリームが完了しました");
            console.log(`合計トークン数:${event.response.usage.total_tokens}`);
        }
    }
}

main();

curl

curl -X POST https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
--no-buffer \
-d '{
    "model": "qwen3-max-2026-01-23",
    "input": "人工知能について簡単に紹介してください。",
    "stream": true
}'

マルチターン対話

Python

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    base_url="https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1",
)

# 最初のターン
response1 = client.responses.create(
    model="qwen3-max-2026-01-23",
    input="私の名前は田中です。覚えておいてください。"
)
print(f"最初の応答:{response1.output_text}")

# 2番目のターン - previous_response_id を使用してコンテキストをリンクします
# 応答 ID の有効期限は 7 日間です
response2 = client.responses.create(
    model="qwen3-max-2026-01-23",
    input="私の名前を覚えていますか?",
    previous_response_id=response1.id
)
print(f"2番目の応答:{response2.output_text}")

Node.js

import OpenAI from "openai";

const openai = new OpenAI({
    apiKey: process.env.DASHSCOPE_API_KEY,
    baseURL: "https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1"
});

async function main() {
    // 1回目の対話
    const response1 = await openai.responses.create({
        model: "qwen3-max-2026-01-23",
        input: "My name is John, please remember it."
    });
    console.log(`最初の応答: ${response1.output_text}`);

    // 2回目の対話 - previous_response_id を使用してコンテキストをリンクします
    // 応答 ID は 7 日で有効期限が切れます
    const response2 = await openai.responses.create({
        model: "qwen3-max-2026-01-23",
        input: "Do you remember my name?",
        previous_response_id: response1.id
    });
    console.log(`2番目の応答: ${response2.output_text}`);
}

main();

組み込みツールの呼び出し

Python

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    base_url="https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1",
)

response = client.responses.create(
    model="qwen3-max-2026-01-23",
    input="Alibaba Cloud のウェブサイトを見つけて、主要な情報を抽出してください",
    # 最高の結果を得るために、組み込みツールを有効にします
    tools=[
        {"type": "web_search"},
        {"type": "code_interpreter"},
        {"type": "web_extractor"}
    ],
    extra_body={"enable_thinking": True}
)

# 中間出力を表示するには、以下の行のコメントを解除してください
# print(response.output)
print(response.output_text)

Node.js

import OpenAI from "openai";

const openai = new OpenAI({
    apiKey: process.env.DASHSCOPE_API_KEY,
    baseURL: "https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1"
});

async function main() {
    const response = await openai.responses.create({
        model: "qwen3-max-2026-01-23",
        input: "Alibaba Cloud のウェブサイトを見つけて、主要な情報を抽出してください",
        tools: [
            { type: "web_search" },
            { type: "code_interpreter" },
            { type: "web_extractor" }
        ],
        enable_thinking: true
    });

    for (const item of response.output) {
        if (item.type === "reasoning") {
            console.log("モデルが思考中です...");
        } else if (item.type === "web_search_call") {
            console.log(`検索クエリ:${item.action.query}`);
        } else if (item.type === "web_extractor_call") {
            console.log("ウェブコンテンツを抽出中...");
        } else if (item.type === "message") {
            console.log(`応答:${item.content[0].text}`);
        }
    }
}

main();

curl

curl -X POST https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
    "model": "qwen3-max-2026-01-23",
    "input": "Alibaba Cloud のウェブサイトを見つけて、主要な情報を抽出してください",
    "tools": [
        {
            "type": "web_search"
        },
        {
            "type": "code_interpreter"
        },
        {
            "type": "web_extractor"
        }
    ],
    "enable_thinking": true
}'

model string (必須)

モデル名。現在、qwen3-max-2026-01-23 のみがサポートされています。

input string or array (必須)

モデルの入力。以下のフォーマットがサポートされています:

  • string:プレーンテキスト入力。例:"Hello"

  • array:会話順に並べられたメッセージ配列。

配列メッセージのタイプ

システムメッセージ object (任意)

システムメッセージ。モデルのロール、トーン、タスクの目的、または制約を設定します。システムメッセージを使用する場合、メッセージ配列の最初の要素でなければなりません。

プロパティ

role string (必須)

メッセージのロール。値は system である必要があります。

content string (必須)

システム命令の内容。モデルのロール、動作、応答スタイル、およびタスクの制約を定義します。

ユーザーメッセージ object (必須)

ユーザーメッセージ。質問、命令、またはコンテキストをモデルに渡します。

プロパティ

role string (必須)

メッセージのロール。値は user である必要があります。

content string (必須)

ユーザーが入力したテキストコンテンツ。

アシスタントメッセージ object (任意)

アシスタントメッセージ。モデルからの以前の応答を含み、マルチターン対話でコンテキストを提供するために使用されます。

プロパティ

role string (必須)

メッセージのロール。値は assistant である必要があります。

content string (必須)

アシスタントの返信のテキストコンテンツ。

previous_response_id string (任意)

以前の応答の一意の ID。現在の応答 id は 7 日間有効です。このパラメーターを使用してマルチターン対話を作成できます。サーバーはそのターンの入力と出力を自動的に取得し、コンテキストとして結合します。input メッセージ配列と previous_response_id の両方が提供された場合、input 内の新しいメッセージが履歴コンテキストに追加されます。

stream boolean (任意) デフォルト:false

ストリーミング出力を有効にするかどうかを指定します。このパラメーターが true に設定されている場合、モデルの応答データはリアルタイムでクライアントにストリーミングされます。

tools array (任意)

モデルが応答を生成する際に呼び出すことができるツールの配列。組み込みツールとユーザー定義関数ツールの混在をサポートします。

最高の結果を得るために、code_interpreterweb_search、および web_extractor ツールを一緒に有効にすることを推奨します。

プロパティ

web_search

モデルがインターネット上の最新情報を検索できるようにするウェブ検索ツール。詳細については、「ウェブ検索」をご参照ください。

プロパティ

type string (必須)

値は web_search である必要があります。

例:[{"type": "web_search"}]

web_extractor

モデルがウェブページのコンテンツにアクセスして抽出できるようにするウェブページ抽出ツール。web_search ツールと一緒に使用する必要があります。詳細については、「ウェブスクレイピング」をご参照ください。

このツールは qwen3-max-2026-01-23 の思考モードにのみ適用されます。

プロパティ

type string (必須)

値は web_extractor である必要があります。

例:[{"type": "web_search"}, {"type": "web_extractor"}]

code_interpreter

モデルがコードを実行して結果を返すことを可能にするコードインタープリターツール。データ分析をサポートします。詳細については、「コードインタープリター」をご参照ください。

このツールは qwen3-max-2026-01-23 の思考モードにのみ適用されます。

プロパティ

type string (必須)

値は code_interpreter である必要があります。

例:[{"type": "code_interpreter"}]

カスタムツール関数

モデルが定義した関数を呼び出すことを可能にするユーザー定義関数ツール。モデルがツールを呼び出すことを決定すると、応答は function_call タイプの出力を返します。詳細については、「関数呼び出し」をご参照ください。

プロパティ

type string (必須)

値は function である必要があります。

name string (必須)

ツール名。名前には文字、数字、アンダースコア (_)、ハイフン (-) のみを含めることができます。最大長は 64 トークンです。

description string (必須)

モデルがいつ、どのようにツールを呼び出すかを決定するのに役立つツールの説明。

parameters object (任意)

ツールのパラメーターの説明。説明は有効な JSON スキーマである必要があります。parameters パラメーターが空の場合、ツールには時間クエリツールなどの入力パラメーターがありません。

ツール呼び出しの精度を向上させるために、parameters を渡すことを推奨します。

例:

[{
  "type": "function",
  "name": "get_weather",
  "description": "指定された都市の天気情報を取得する",
  "parameters": {
    "type": "object",
    "properties": {
      "city": {
        "type": "string",
        "description": "都市名"
      }
    },
    "required": ["city"]
  }
}]

tool_choice string or object (任意) デフォルト:auto

モデルがツールを選択して呼び出す方法を制御します。このパラメーターは、文字列とオブジェクトの 2 つのフォーマットをサポートします。

文字列フォーマット

  • auto:モデルがツールを呼び出すかどうかを自動的に決定します。

  • none:モデルがどのツールも呼び出さないようにします。

  • required:モデルにツールを強制的に呼び出させます。これは、tools リストにツールが 1 つしかない場合にのみ使用できます。

オブジェクトパターン

モデルが利用できるツールの範囲を設定します。モデルは、事前定義されたツールのリストからのみツールを選択して呼び出すことができます。

プロパティ

mode string (必須)

  • auto:モデルがツールを呼び出すかどうかを自動的に決定します。

  • required:モデルにツールを強制的に呼び出させます。これは、tools リストにツールが 1 つしかない場合にのみ使用できます。

tools array(必須)

モデルが呼び出すことを許可されているツール定義のリスト。

[
  { "type": "function", "name": "get_weather" }
]

type string (必須)

許可されたツール構成のタイプ。値は allowed_tools である必要があります。

temperature float (任意)

サンプリング温度。このパラメーターは、生成されるテキストの多様性を制御します。

温度が高いほど、より多様なテキストが生成されます。温度が低いほど、より決定論的なテキストが生成されます。

有効値:[0, 2)

temperature と top_p の両方が生成されるテキストの多様性を制御します。どちらか一方のみを設定することを推奨します。詳細については、「テキスト生成モデルの概要」をご参照ください。

top_p float (任意)

ニュークリアスサンプリングの確率しきい値。このパラメーターは、生成されるテキストの多様性を制御します。

top_p の値が高いほど、より多様なテキストが生成されます。top_p の値が低いほど、より決定論的なテキストが生成されます。

有効範囲: (0, 1.0]

temperature と top_p の両方が生成されるテキストの多様性を制御します。どちらか一方のみを設定することを推奨します。詳細については、「テキスト生成モデルの概要」をご参照ください。

enable_thinking boolean (任意) デフォルト:false

思考モードを有効にするかどうかを指定します。このパラメーターを有効にすると、モデルは返信する前に思考します。思考プロセスは、reasoning タイプの出力項目を介して返されます。

思考モードを有効にする場合、複雑なタスクで最高のモデルパフォーマンスを達成するために、組み込みツールを有効にすることを推奨します

有効な値:

  • true:思考モードを有効にします。code_interpreter または web_extractor ツールを使用する場合は、これを有効にする必要があります。

  • false:思考モードを無効にします。

このパラメーターは標準の OpenAI パラメーターではありません。Python SDK は extra_body={"enable_thinking": True} を使用して渡します。Node.js SDK と curl は、トップレベルのパラメーターとして直接 enable_thinking: true を使用します。

応答オブジェクト (非ストリーミング出力)

{
    "created_at": 1769408284,
    "id": "351e34cc-5f75-483b-b948-35be954dbxxx",
    "model": "qwen3-max-2026-01-23",
    "object": "response",
    "output": [
        {
            "content": [
                {
                    "annotations": [],
                    "text": "こんにちは!私は Tongyi Lab によって開発された大規模言語モデルの Qwen です。質問に答えたり、テキストを作成したり、コードを書いたり、意見を述べたりすることができます。正確で、有用で、フレンドリなヘルプを提供することに尽力しています。",
                    "type": "output_text"
                }
            ],
            "id": "msg_59a7339e-77d0-4451-8f51-75fb8dbefxxx",
            "role": "assistant",
            "status": "completed",
            "type": "message"
        }
    ],
    "parallel_tool_calls": false,
    "status": "completed",
    "tool_choice": "auto",
    "tools": [],
    "usage": {
        "input_tokens": 39,
        "input_tokens_details": {
            "cached_tokens": 0
        },
        "output_tokens": 46,
        "output_tokens_details": {
            "reasoning_tokens": 0
        },
        "total_tokens": 85
    }
}

id string

この応答の一意の識別子です。UUID 文字列であり、7 日間有効です。この識別子を previous_response_id パラメーターで使用して、マルチターン対話を作成できます。

created_at integer

このリクエストの Unix タイムスタンプ (秒単位)。

object string

オブジェクトタイプ。値は response です。

status string

応答生成のステータス。有効な値:

  • completed:生成が完了しました。

  • failed:生成が失敗しました。

  • in_progress:生成中です。

  • cancelled:キャンセルされました。

  • queued:リクエストはキューに入っています。

  • incomplete:生成が不完全です。

model string

応答を生成するために使用されるモデルの ID。

output array

モデルによって生成された出力項目の配列。配列内の要素のタイプと順序は、モデルの応答によって異なります。

配列要素のプロパティ

type string

出力項目のタイプ。有効な値:

  • message:メッセージタイプ。モデルによって生成された最終的な返信内容が含まれます。

  • reasoning:推論タイプ。このタイプは、思考モード (enable_thinking: true) が有効な場合に返されます。推論トークンは output_tokens_details.reasoning_tokens でカウントされ、推論トークンとして課金されます。

  • function_call:関数呼び出しタイプ。このタイプは、ユーザー定義の function ツールが使用された場合に返されます。関数呼び出しを処理し、結果を返す必要があります。

  • web_search_call:検索呼び出しタイプ。このタイプは、web_search ツールが使用された場合に返されます。

  • code_interpreter_call:コード実行タイプ。このタイプは、code_interpreter ツールが使用された場合に返されます。enable_thinking: true と一緒に使用する必要があります。

  • web_extractor_call:ウェブページ抽出タイプ。このタイプは、web_extractor ツールが使用された場合に返されます。web_search ツールと一緒に使用する必要があります。

id string

出力項目の一意の識別子。このフィールドは、すべてのタイプの出力項目に含まれます。

role string

メッセージのロール。値は assistant です。このフィールドは、typemessage の場合にのみ存在します。

status string

出力項目のステータス。有効な値は completedin_progress です。このフィールドは、typemessagefunction_callweb_search_callcode_interpreter_call、または web_extractor_call の場合に存在します。

name string

関数名。このフィールドは、typefunction_call の場合にのみ存在します。

arguments string

関数呼び出しの引数 (JSON 文字列形式)。このフィールドは、typefunction_call の場合にのみ存在します。使用する前に JSON.parse() を使用して解析する必要があります。

call_id string

関数呼び出しの一意の識別子。このフィールドは、typefunction_call の場合にのみ存在します。関数呼び出しの結果を返す際には、この ID を使用してリクエストと応答を関連付ける必要があります。

content array

メッセージコンテンツの配列。このフィールドは、typemessage の場合にのみ存在します。

配列要素のプロパティ

type string

コンテンツタイプ。値は output_text です。

text string

モデルによって生成されたテキストコンテンツ。

annotations array

テキスト注釈の配列。通常は空の配列です。

summary array

推論のまとめの配列。このフィールドは、typereasoning の場合にのみ存在します。各要素には、値が summary_texttype フィールドと、まとめのテキストを含む text フィールドが含まれます。

action object

検索操作情報。このフィールドは、typeweb_search_call の場合にのみ存在します。

プロパティ

query string

検索クエリのキーワード。

type string

検索タイプ。値は search です。

sources array

検索ソースのリスト。各要素には、値が urltype フィールドと、ウェブページの URL を含む url フィールドが含まれます。

code string

モデルによって生成および実行されるコード。このフィールドは、typecode_interpreter_call の場合にのみ存在します。

outputs array

コード実行出力の配列。このフィールドは、typecode_interpreter_call の場合にのみ存在します。各要素には、値が logstype フィールドと、コード実行ログを含む logs フィールドが含まれます。

container_id string

コードインタープリターコンテナーの識別子。このフィールドは、typecode_interpreter_call の場合にのみ存在します。同じセッション内の複数のコード実行を関連付けるために使用されます。

goal string

ウェブページからどの情報を抽出する必要があるかを説明する抽出目標の説明。このフィールドは、typeweb_extractor_call の場合にのみ存在します。

output string

ウェブページから抽出されたコンテンツのまとめ。このフィールドは、typeweb_extractor_call の場合にのみ存在します。

urls array

抽出されたウェブページの URL のリスト。このフィールドは、typeweb_extractor_call の場合にのみ存在します。

usage object

このリクエストのトークン消費情報。

プロパティ

input_tokens integer

入力トークンの数。

output_tokens integer

モデルによって出力されたトークンの数。

total_tokens integer

消費された合計トークン数。これは input_tokens と output_tokens の合計です。

input_tokens_details object

入力トークンの詳細な分類。

プロパティ

cached_tokens integer

キャッシュにヒットしたトークンの数。コンテキストキャッシュの詳細については、「コンテキストキャッシュ」をご参照ください。

output_tokens_details object

出力トークンの詳細な分類。

プロパティ

reasoning_tokens integer

思考プロセスにおけるトークンの数。

x_tools object

ツール使用に関する統計情報。組み込みツールが使用された場合、このフィールドには各ツールの呼び出し数が含まれます。

例:

  • ウェブ検索ツール:{"web_search": {"count": 1}}

  • コードインタープリターツール:{"code_interpreter": {"count": 1}}

  • ウェブエクストラクターツール:{"web_extractor": {"count": 1}}

error object

モデルが応答を生成できなかった場合に返されるエラーオブジェクト。成功した場合、このフィールドは null です。

tools array

エコーリクエストからの tools パラメーターの完全な内容。構造はリクエストボディの tools パラメーターと同じです。

tool_choice string

エコーリクエストからの tool_choice パラメーターの値。有効な値は autonone、および required です。

応答チャンクオブジェクト (ストリーミング出力)

基本的な呼び出し

// response.created - 応答が作成されました
{"response":{"id":"428c90e9-9cd6-90a6-9726-c02b08ebexxx","created_at":1769082930,"object":"response","status":"queued",...},"sequence_number":0,"type":"response.created"}

// response.in_progress - 応答処理中
{"response":{"id":"428c90e9-9cd6-90a6-9726-c02b08ebexxx","status":"in_progress",...},"sequence_number":1,"type":"response.in_progress"}

// response.output_item.added - 新しい出力項目が追加されました
{"item":{"id":"msg_bcb45d66-fc34-46a2-bb56-714a51e8exxx","content":[],"role":"assistant","status":"in_progress","type":"message"},"output_index":0,"sequence_number":2,"type":"response.output_item.added"}

// response.content_part.added - 新しいコンテンツブロックが追加されました
{"content_index":0,"item_id":"msg_bcb45d66-fc34-46a2-bb56-714a51e8exxx","output_index":0,"part":{"annotations":[],"text":"","type":"output_text","logprobs":null},"sequence_number":3,"type":"response.content_part.added"}

// response.output_text.delta - 増分テキスト (複数回トリガー)
{"content_index":0,"delta":"人工知能","item_id":"msg_bcb45d66-fc34-46a2-bb56-714a51e8exxx","logprobs":[],"output_index":0,"sequence_number":4,"type":"response.output_text.delta"}
{"content_index":0,"delta":"(AI) は、コンピューターシステムによって人間の知的行動をシミュレートする技術と科学を指します","item_id":"msg_bcb45d66-fc34-46a2-bb56-714a51e8exxx","logprobs":[],"output_index":0,"sequence_number":6,"type":"response.output_text.delta"}

// response.output_text.done - テキストが完了しました
{"content_index":0,"item_id":"msg_bcb45d66-fc34-46a2-bb56-714a51e8exxx","logprobs":[],"output_index":0,"sequence_number":53,"text":"人工知能 (AI) は、コンピューターシステムによって人間の知的行動をシミュレートする技術と科学を指します...","type":"response.output_text.done"}

// response.content_part.done - コンテンツブロックが完了しました
{"content_index":0,"item_id":"msg_bcb45d66-fc34-46a2-bb56-714a51e8exxx","output_index":0,"part":{"annotations":[],"text":"...全文...","type":"output_text","logprobs":null},"sequence_number":54,"type":"response.content_part.done"}

// response.output_item.done - 出力項目が完了しました
{"item":{"id":"msg_bcb45d66-fc34-46a2-bb56-714a51e8exxx","content":[{"annotations":[],"text":"...全文...","type":"output_text","logprobs":null}],"role":"assistant","status":"completed","type":"message"},"output_index":0,"sequence_number":55,"type":"response.output_item.done"}

// response.completed - 応答が完了しました (完全な応答と使用量を含む)
{"response":{"id":"428c90e9-9cd6-90a6-9726-c02b08ebexxx","created_at":1769082930,"model":"qwen3-max-2026-01-23","object":"response","output":[...],"status":"completed","usage":{"input_tokens":37,"output_tokens":243,"total_tokens":280,...}},"sequence_number":56,"type":"response.completed"}

組み込みツールの呼び出し

id:1
event:response.created
:HTTP_STATUS/200
data:{"sequence_number":0,"type":"response.created","response":{"output":[],"parallel_tool_calls":false,"created_at":1769435906,"tool_choice":"auto","model":"","id":"863df8d9-cb29-4239-a54f-3e15a2427xxx","tools":[],"object":"response","status":"queued"}}

id:2
event:response.in_progress
:HTTP_STATUS/200
data:{"sequence_number":1,"type":"response.in_progress","response":{"output":[],"parallel_tool_calls":false,"created_at":1769435906,"tool_choice":"auto","model":"","id":"863df8d9-cb29-4239-a54f-3e15a2427xxx","tools":[],"object":"response","status":"in_progress"}}

id:3
event:response.output_item.added
:HTTP_STATUS/200
data:{"sequence_number":2,"item":{"summary":[],"type":"reasoning","id":"msg_5bd0c6df-19b8-4a04-bc00-8042a224exxx"},"output_index":0,"type":"response.output_item.added"}

id:4
event:response.reasoning_summary_text.delta
:HTTP_STATUS/200
data:{"delta":"ユーザーは私に次のことを求めています:\n1. Alibaba Cloud の公式ウェブサイトを検索する。\n2. ホームページから主要な情報を抽出する。\n\nまず Alibaba Cloud のウェブサイトの URL を検索し、次に web_extractor ツールを使用してサイトにアクセスし、主要な情報を抽出する必要があります。","sequence_number":3,"output_index":0,"type":"response.reasoning_summary_text.delta","item_id":"msg_5bd0c6df-19b8-4a04-bc00-8042a224exxx","summary_index":0}

id:14
event:response.reasoning_summary_text.done
:HTTP_STATUS/200
data:{"sequence_number":13,"text":"ユーザーは私に次のことを求めています:\n1. Alibaba Cloud の公式ウェブサイトを検索する。\n2. ホームページから主要な情報を抽出する。\n\nまず Alibaba Cloud のウェブサイトの URL を検索し、次に web_extractor ツールを使用してサイトにアクセスし、主要な情報を抽出する必要があります。","output_index":0,"type":"response.reasoning_summary_text.done","item_id":"msg_5bd0c6df-19b8-4a04-bc00-8042a224exxx","summary_index":0}

id:15
event:response.output_item.done
:HTTP_STATUS/200
data:{"sequence_number":14,"item":{"summary":[{"type":"summary_text","text":"ユーザーは私に次のことを求めています:\n1. Alibaba Cloud の公式ウェブサイトを検索する。\n2. ホームページから主要な情報を抽出する。\n\nまず Alibaba Cloud のウェブサイトの URL を検索し、次に web_extractor ツールを使用してサイトにアクセスし、主要な情報を抽出する必要があります。"}],"type":"reasoning","id":"msg_5bd0c6df-19b8-4a04-bc00-8042a224exxx"},"output_index":1,"type":"response.output_item.done"}

id:16
event:response.output_item.added
:HTTP_STATUS/200
data:{"sequence_number":15,"item":{"action":{"type":"search","query":"ウェブ検索"},"id":"msg_a8a686b1-0a57-40e1-bb55-049a89cd4xxx","type":"web_search_call","status":"in_progress"},"output_index":1,"type":"response.output_item.added"}

id:17
event:response.web_search_call.in_progress
:HTTP_STATUS/200
data:{"sequence_number":16,"output_index":1,"type":"response.web_search_call.in_progress","item_id":"msg_a8a686b1-0a57-40e1-bb55-049a89cd4xxx"}

id:19
event:response.web_search_call.completed
:HTTP_STATUS/200
data:{"sequence_number":18,"output_index":1,"type":"response.web_search_call.completed","item_id":"msg_a8a686b1-0a57-40e1-bb55-049a89cd4xxx"}

id:20
event:response.output_item.done
:HTTP_STATUS/200
data:{"sequence_number":19,"item":{"action":{"sources":[{"type":"url","url":"https://cn.aliyun.com/"},{"type":"url","url":"https://www.aliyun.com/"}],"type":"search","query":"ウェブ検索"},"id":"msg_a8a686b1-0a57-40e1-bb55-049a89cd4xxx","type":"web_search_call","status":"completed"},"output_index":1,"type":"response.output_item.done"}

id:33
event:response.output_item.added
:HTTP_STATUS/200
data:{"sequence_number":32,"item":{"urls":["https://cn.aliyun.com/"],"goal":"Alibaba Cloud のホームページから、会社のポジショニング/プロファイル、コア製品とサービス、主要な事業セクション、特別な機能/ソリューション、最新ニュース/イベント、無料トライアル/プロモーション情報、ナビゲーションメニュー構造など、主要な情報を抽出する。","id":"msg_8c2cf651-48a5-460c-aa7a-bea5b09b4xxx","type":"web_extractor_call","status":"in_progress"},"output_index":3,"type":"response.output_item.added"}

id:34
event:response.output_item.done
:HTTP_STATUS/200
data:{"sequence_number":33,"item":{"output":"https://cn.aliyun.com/ の有用な情報は、ユーザーの目標「Alibaba Cloud のホームページから、会社のポジショニング/プロファイル、コア製品とサービス、主要な事業セクション、特別な機能/ソリューション、最新ニュース/イベント、無料トライアル/プロモーション情報、ナビゲーションメニュー構造など、主要な情報を抽出する」に対して次のとおりです:\n\nページ内の証拠:\n## Tongyi 大規模モデル、企業が AI 時代を受け入れるための最初の選択肢\n\n## 企業の技術革新のクラウドを創造するための完全な製品システム\n\nすべてのクラウド製品## 大規模モデルとクラウドコンピューティングの協調開発に依存して AI を手の届くものにする\n\nすべての AI ソリューション\n\nまとめ:\nAlibaba Cloud は、Tongyi 大規模モデルを中心とした主要なエンタープライズ AI ソリューションプロバイダーとして位置づけられています...","urls":["https://cn.aliyun.com/"],"goal":"Alibaba Cloud のホームページから、会社のポジショニング/プロファイル、コア製品とサービス、主要な事業セクション、特別な機能/ソリューション、最新ニュース/イベント、無料トライアル/プロモーション情報、ナビゲーションメニュー構造など、主要な情報を抽出する。","id":"msg_8c2cf651-48a5-460c-aa7a-bea5b09b4xxx","type":"web_extractor_call","status":"completed"},"output_index":3,"type":"response.output_item.done"}

id:50
event:response.output_item.added
:HTTP_STATUS/200
data:{"sequence_number":50,"item":{"content":[{"type":"text","text":""}],"type":"message","id":"msg_final","role":"assistant"},"output_index":5,"type":"response.output_item.added"}

id:51
event:response.output_text.delta
:HTTP_STATUS/200
data:{"delta":"Alibaba Cloud の公式ウェブサイトを見つけ、ホームページから主要な情報を抽出しました:\n\n","sequence_number":51,"output_index":5,"type":"response.output_text.delta"}

id:60
event:response.completed
:HTTP_STATUS/200
data:{"type":"response.completed","response":{"id":"863df8d9-cb29-4239-a54f-3e15a2427xxx","status":"completed","usage":{"input_tokens":45,"output_tokens":320,"total_tokens":365}}}

ストリーミング出力は一連の JSON オブジェクトを返します。各オブジェクトには、イベントタイプを識別するための type フィールドと、イベントの順序を示すための sequence_number フィールドが含まれます。response.completed イベントはストリームの終了を示します。

type string

イベントタイプ識別子。有効な値:

  • response.created:応答が作成されたときにトリガーされます。ステータスは queued です。

  • response.in_progress:応答処理が開始されたときにトリガーされます。ステータスは in_progress に変わります。

  • response.output_item.added:メッセージや web_extractor_call などの新しい出力項目が出力配列に追加されたときにトリガーされます。item.typeweb_extractor_call の場合、これはウェブエクストラクターツールの呼び出しが開始されたことを示します。

  • response.content_part.added:新しいコンテンツブロックが出力項目のコンテンツ配列に追加されたときにトリガーされます。

  • response.output_text.delta:増分テキスト生成のためにトリガーされます。このイベントは複数回トリガーされ、delta フィールドには新しいテキストフラグメントが含まれます。

  • response.output_text.done:テキスト生成が完了したときにトリガーされます。text フィールドには完全なテキストが含まれます。

  • response.content_part.done:コンテンツブロックが完了したときにトリガーされます。part オブジェクトには完全なコンテンツブロックが含まれます。

  • response.output_item.done:出力項目が完全に生成されたときにトリガーされます。item オブジェクトには完全な出力項目が含まれます。item.typeweb_extractor_call の場合、これはウェブエクストラクターツールの呼び出しが完了したことを示します。

  • response.reasoning_summary_text.delta:(思考モードが有効な場合) 推論のまとめの増分テキスト。delta フィールドには新しいまとめのフラグメントが含まれます。

  • response.reasoning_summary_text.done:(思考モードが有効な場合) 推論のまとめが完了しました。text フィールドには完全なまとめが含まれます。

  • response.web_search_call.in_progress / searching / completed:(web_search ツールを使用する場合) 検索ステータス変更イベント。

  • response.code_interpreter_call.in_progress / interpreting / completed:(code_interpreter ツールを使用する場合) コード実行ステータス変更イベント。

  • 注:web_extractor ツールを使用する場合、専用のイベントタイプ識別子はありません。ウェブエクストラクターツールの呼び出しは、一般的な response.output_item.added および response.output_item.done イベントを通じて伝達されます。これは、値が web_extractor_callitem.type フィールドによって識別されます。

  • response.completed:応答生成が完了したときにトリガーされます。response オブジェクトには、使用量情報を含む完全な応答が含まれます。このイベントはストリームの終了を示します。

sequence_number integer

イベントシリアル番号。0 から始まり、増分します。これを使用して、クライアントがイベントを正しい順序で処理することを保証できます。

response object

応答オブジェクト。response.createdresponse.in_progress、および response.completed イベントに表示されます。response.completed イベントでは、outputusage を含む完全な応答データが含まれます。その構造は、非ストリーミング応答の応答オブジェクトと一致します。

item object

出力項目オブジェクト。response.output_item.added および response.output_item.done イベントに表示されます。added イベントでは、コンテンツが空の配列である初期スケルトンです。done イベントでは、完全なオブジェクトです。

プロパティ

id string

出力項目の一意の識別子。例:msg_xxx

type string

出力項目のタイプ。有効な値:messagereasoning など。

role string

メッセージのロール。値は assistant です。このフィールドは、タイプが message の場合にのみ存在します。

status string

生成ステータス。added イベントでは、ステータスは in_progress です。done イベントでは、ステータスは completed です。

content array

メッセージコンテンツの配列。added イベントでは、空の配列 [] です。done イベントでは、part オブジェクトと同じ構造を持つ完全なコンテンツブロックオブジェクトが含まれます。

part object

コンテンツブロックオブジェクト。response.content_part.added および response.content_part.done イベントに表示されます。

プロパティ

type string

コンテンツブロックタイプ。値は output_text です。

text string

テキストコンテンツ。added イベントでは、空の文字列です。done イベントでは、完全なテキストです。

annotations array

テキスト注釈の配列。通常は空の配列です。

logprobs object | null

トークンの対数確率情報。現在、これは null です。

delta string

増分テキストコンテンツ。response.output_text.delta イベントに表示され、新しいテキストフラグメントが含まれます。クライアントは、完全なテキストを取得するためにすべての delta フラグメントを連結する必要があります。

text string

完全なテキストコンテンツ。response.output_text.done イベントに表示され、コンテンツブロックの完全なテキストが含まれます。これを使用して、連結された delta の結果を検証できます。

item_id string

出力項目の一意の識別子。同じ出力項目に関連するイベントを関連付けるために使用されます。

output_index integer

output 配列内の出力項目のインデックス位置。

content_index integer

content 配列内のコンテンツブロックのインデックス位置。

summary_index integer

まとめ配列のインデックス。response.reasoning_summary_text.delta および response.reasoning_summary_text.done イベントに表示されます。

よくある質問

Q:マルチターン対話のコンテキストはどのように渡せばよいですか?

A:会話の新しいターンを開始するには、前の成功した応答の idprevious_response_id パラメーターとして渡します。

Q:応答例の一部のフィールドがこのドキュメントで説明されていないのはなぜですか?

A:公式の OpenAI SDK を使用すると、独自のモデル構造に基づいて追加のフィールドが出力される場合があります。これらのフィールドは通常 null です。これらのフィールドは OpenAI プロトコルによって定義されていますが、現在当社のサービスではサポートされていません。そのため、null 値になっています。このドキュメントで説明されているフィールドにのみ注目してください。