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

Alibaba Cloud Model Studio:応答の作成

最終更新日:Jul 15, 2026

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

OpenAI Chat Completions API に対する利点:

  • 組み込みツール:Web 検索、Web スクレイピング、コードインタープリター、Text-to-Image、Image-to-Image、ナレッジベース検索などの組み込みツールを使用して、複雑なタスクでより良い結果を得ることができます。詳細については、「ツール呼び出し」をご参照ください。

  • より柔軟な入力:直接的な文字列入力とチャット形式のメッセージ配列の両方をサポートします。

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

  • 便利なコンテキストキャッシュ:リクエストヘッダーに x-dashscope-session-cache: enable (デフォルト値:disable) を追加して、対話コンテキストのサーバー側での自動キャッシュを有効にします。これにより、コードの変更を必要とせずに、マルチターン対話の推論レイテンシーとコストを削減できます。詳細については、「セッションキャッシュ」をご参照ください。

互換性と制限事項

この API は、開発者の移行コストを削減するために OpenAI と互換性がありますが、パラメーター、機能、および動作が異なります。

基本原則:このドキュメントに明示的に記載されているパラメーターのみが処理されます。記載されていない OpenAI パラメーターはすべて無視されます。

以下の主な違いは、迅速に適応するのに役立ちます:

  • サポートされていないパラメーター:この API は、非同期実行パラメーター background など、一部の OpenAI API パラメーターをサポートしていません。現在、API は同期呼び出しのみをサポートしています。

  • 推論労力制御reasoning.effort パラメーターを使用して、モデルの推論労力を制御します。使用方法の詳細については、このパラメーターの説明をご参照ください。

シンガポール

SDK 呼び出し構成の base_urlhttps://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1 です。

HTTP リクエストエンドポイント:POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/responses

China (Beijing)

SDK 呼び出し構成の base_urlhttps://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1

HTTP リクエストエンドポイント:POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1/responses

米国 (バージニア)

SDK 呼び出し構成 base_urlhttps://dashscope-us.aliyuncs.com/compatible-mode/v1

HTTP リクエストエンドポイント:POST https://dashscope-us.aliyuncs.com/compatible-mode/v1/responses

ドイツ (フランクフルト)

SDK 呼び出し構成 base_urlhttps://{<u>WorkspaceId</u>}<u>.eu-central-1.maas.aliyuncs</u>.com/compatible-mode/v1/responses

HTTP リクエストエンドポイント:POST https://{WorkspaceId}.eu-central-1.maas.aliyuncs.com/compatible-mode/v1/responses

中国 (香港)

SDK 呼び出し構成 base_urlhttps://{WorkspaceId}.cn-hongkong.maas.aliyuncs.com/compatible-mode/v1

HTTP リクエストエンドポイント:POST https://{WorkspaceId}.cn-hongkong.maas.aliyuncs.com/compatible-mode/v1/responses

日本 (東京)

SDK 呼び出し構成 base_urlhttps://{WorkspaceId}.ap-northeast-1.maas.aliyuncs.com/compatible-mode/v1

HTTP リクエストエンドポイント:POST https://{WorkspaceId}.ap-northeast-1.maas.aliyuncs.com/compatible-mode/v1/responses

{WorkspaceId} を実際のワークスペース ID に置き換えてください。

重要

Alibaba Cloud Model Studio は、中国 (北京)、シンガポール、および中国 (香港) リージョン向けにワークスペース固有のドメインをリリースしました。新しい専用ドメインは、推論リクエストに対して優れたパフォーマンスと高い安定性を提供します。新しいドメインへの移行を推奨します:

  • 中国 (北京):https://dashscope.aliyuncs.com から https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com

  • シンガポール:https://dashscope-intl.aliyuncs.com から https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com

  • 中国 (香港):https://cn-hongkong.dashscope.aliyuncs.com から https://{WorkspaceId}.cn-hongkong.maas.aliyuncs.com

{WorkspaceId} は、Alibaba Cloud Model Studio コンソールの [ワークスペース詳細] ページで確認できるワークスペース ID です。既存のドメインは引き続き完全に機能します。

重要

OpenAI 互換の Responses API の従来の URL パス /api/v2/apps/protocols/compatible-mode/v1/responses は間もなく非推奨になります。できるだけ早く新しいパス /compatible-mode/v1/responses に移行してください。

リクエストボディ

基本的な呼び出し

Python

import os
from openai import OpenAI

client = OpenAI(
    # 環境変数が設定されていない場合は、次のように置き換えてください: api_key="sk-xxx"
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # {WorkspaceId} を実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
    base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
)

response = client.responses.create(
    model="qwen3.7-plus",
    input="あなたに何ができますか?"
)

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

Node.js

import OpenAI from "openai";

const openai = new OpenAI({
    // 環境変数が設定されていない場合は、次のように置き換えてください: apiKey: "sk-xxx"
    apiKey: process.env.DASHSCOPE_API_KEY,
    // {WorkspaceId} を実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
    baseURL: "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
});

async function main() {
    const response = await openai.responses.create({
        model: "qwen3.7-plus",
        input: "あなたに何ができますか?"
    });

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

main();

curl

curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
    "model": "qwen3.7-plus",
    "input": "あなたに何ができますか?"
}'

ストリーミング出力

Python

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # {WorkspaceId} を実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
    base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
)

stream = client.responses.create(
    model="qwen3.7-plus",
    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,
    // {WorkspaceId} を実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
    baseURL: "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
});

async function main() {
    const stream = await openai.responses.create({
        model: "qwen3.7-plus",
        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://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
--no-buffer \
-d '{
    "model": "qwen3.7-plus",
    "input": "人工知能について簡単に紹介してください。",
    "stream": true
}'

マルチターン対話

Python

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # {WorkspaceId} を実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
    base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
)

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

# 2 番目のターン - previous_response_id を使用してコンテキストをリンクします。応答 ID は 7 日間有効です。
response2 = client.responses.create(
    model="qwen3.7-plus",
    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,
    // {WorkspaceId} を実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
    baseURL: "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
});

async function main() {
    // 最初のターン
    const response1 = await openai.responses.create({
        model: "qwen3.7-plus",
        input: "私の名前は田中です。覚えておいてください。"
    });
    console.log(`最初の応答: ${response1.output_text}`);

    // 2 番目のターン - previous_response_id を使用してコンテキストをリンクします。応答 ID は 7 日間有効です。
    const response2 = await openai.responses.create({
        model: "qwen3.7-plus",
        input: "私の名前を覚えていますか?",
        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"),
    # {WorkspaceId} を実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
    base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
)

response = client.responses.create(
    model="qwen3.7-plus",
    input="Alibaba Cloud の公式サイトを見つけて、そのホームページから主要な情報を抽出してください。",
    # 最良の結果を得るには、組み込みツールを有効にすることを推奨します。
    tools=[
        {"type": "web_search"},
        {"type": "code_interpreter"},
        {"type": "web_extractor"}
    ],
)

# 次の行のコメントを解除すると、中間出力を表示できます。
# print(response.output)
print(response.output_text)

Node.js

import OpenAI from "openai";

const openai = new OpenAI({
    apiKey: process.env.DASHSCOPE_API_KEY,
    // {WorkspaceId} を実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
    baseURL: "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
});

async function main() {
    const response = await openai.responses.create({
        model: "qwen3.7-plus",
        input: "Alibaba Cloud の公式サイトを見つけて、そのホームページから主要な情報を抽出してください。",
        tools: [
            { type: "web_search" },
            { type: "code_interpreter" },
            { type: "web_extractor" }
        ]
    });

    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("Web コンテンツを抽出中です...");
        } else if (item.type === "message") {
            console.log(`応答コンテンツ: ${item.content[0].text}`);
        }
    }
}

main();

curl

curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
    "model": "qwen3.7-plus",
    "input": "Alibaba Cloud の公式サイトを見つけて、そのホームページから主要な情報を抽出してください。",
    "tools": [
        {
            "type": "web_search"
        },
        {
            "type": "code_interpreter"
        },
        {
            "type": "web_extractor"
        }
    ]
}'

関数呼び出し

Python

from openai import OpenAI
import json
import os
import random

# クライアントを初期化します。
client = OpenAI(
    # 環境変数が設定されていない場合は、次のように置き換えてください: api_key="sk-xxx"
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # {WorkspaceId} を実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
    base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
)
# ユーザーの質問をシミュレートします。
USER_QUESTION = "北京の天気はどうですか?"
# ツールリストを定義します。
tools = [
    {
        "type": "function",
        "name": "get_current_weather",
        "description": "特定の都市の天気を取得するのに役立ちます。",
        "parameters": {
            "type": "object",
            "properties": {
                "location": {
                    "type": "string",
                    "description": "北京や杭州などの都市または地区。",
                }
            },
            "required": ["location"],
        },
    }
]


# 天気クエリツールをシミュレートします。
def get_current_weather(arguments):
    weather_conditions = ["sunny", "cloudy", "rainy"]
    random_weather = random.choice(weather_conditions)
    location = arguments["location"]
    return f"今日の {location} は {random_weather} です。"


# モデル応答関数をラップします。
def get_response(input_data):
    response = client.responses.create(
        model="qwen3.7-plus",
        input=input_data,
        tools=tools,
    )
    return response


# 対話コンテキストを維持します。
conversation = [{"role": "user", "content": USER_QUESTION}]

response = get_response(conversation)
function_calls = [item for item in response.output if item.type == "function_call"]
# ツール呼び出しが不要な場合は、コンテンツを直接出力します。
if not function_calls:
    print(f"最終的なアシスタントの応答: {response.output_text}")
else:
    # ツール呼び出しループに入ります。
    while function_calls:
        for fc in function_calls:
            func_name = fc.name
            arguments = json.loads(fc.arguments)
            print(f"ツール [{func_name}] を引数で呼び出し中: {arguments}")
            # ツールを実行します。
            tool_result = get_current_weather(arguments)
            print(f"ツールが返しました: {tool_result}")
            # ツール呼び出しとその結果をペアとしてコンテキストに追加します。
            conversation.append(
                {
                    "type": "function_call",
                    "name": fc.name,
                    "arguments": fc.arguments,
                    "call_id": fc.call_id,
                }
            )
            conversation.append(
                {
                    "type": "function_call_output",
                    "call_id": fc.call_id,
                    "output": tool_result,
                }
            )
        # 完全なコンテキストでモデルを再度呼び出します。
        response = get_response(conversation)
        function_calls = [
            item for item in response.output if item.type == "function_call"
        ]
    print(f"最終的なアシスタントの応答: {response.output_text}")

Node.js

import OpenAI from "openai";

// クライアントを初期化します。
const openai = new OpenAI({
  // 環境変数が設定されていない場合は、次のように置き換えてください: apiKey: "sk-xxx"
  apiKey: process.env.DASHSCOPE_API_KEY,
  // {WorkspaceId} を実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
  baseURL:
    "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
});

// ツールリストを定義します。
const tools = [
  {
    type: "function",
    name: "get_current_weather",
    description: "特定の都市の天気を取得するのに役立ちます。",
    parameters: {
      type: "object",
      properties: {
        location: {
          type: "string",
          description: "北京や杭州などの都市または地区。",
        },
      },
      required: ["location"],
    },
  },
];

// 天気クエリツールをシミュレートします。
const getCurrentWeather = (args) => {
  const weatherConditions = ["sunny", "cloudy", "rainy"];
  const randomWeather =
    weatherConditions[Math.floor(Math.random() * weatherConditions.length)];
  const location = args.location;
  return `今日の ${location} は ${randomWeather} です。`;
};

// モデル応答関数をラップします。
const getResponse = async (inputData) => {
  const response = await openai.responses.create({
    model: "qwen3.7-plus",
    input: inputData,
    tools: tools,
  });
  return response;
};

const main = async () => {
  const userQuestion = "北京の天気はどうですか?";

  // 対話コンテキストを維持します。
  const conversation = [{ role: "user", content: userQuestion }];

  let response = await getResponse(conversation);
  let functionCalls = response.output.filter(
    (item) => item.type === "function_call"
  );
  // ツール呼び出しが不要な場合は、コンテンツを直接出力します。
  if (functionCalls.length === 0) {
    console.log(`最終的なアシスタントの応答: ${response.output_text}`);
  } else {
    // ツール呼び出しループに入ります。
    while (functionCalls.length > 0) {
      for (const fc of functionCalls) {
        const funcName = fc.name;
        const args = JSON.parse(fc.arguments);
        console.log(`ツール [${funcName}] を引数で呼び出し中:`, args);
        // ツールを実行します。
        const toolResult = getCurrentWeather(args);
        console.log(`ツールが返しました: ${toolResult}`);
        // ツール呼び出しとその結果をペアとしてコンテキストに追加します。
        conversation.push({
          type: "function_call",
          name: fc.name,
          arguments: fc.arguments,
          call_id: fc.call_id,
        });
        conversation.push({
          type: "function_call_output",
          call_id: fc.call_id,
          output: toolResult,
        });
      }
      // 完全なコンテキストでモデルを再度呼び出します。
      response = await getResponse(conversation);
      functionCalls = response.output.filter(
        (item) => item.type === "function_call"
      );
    }
    console.log(`最終的なアシスタントの応答: ${response.output_text}`);
  }
};

// プログラムを開始します。
main().catch(console.error);

ドキュメント理解

Python

import os
from openai import OpenAI

client = OpenAI(
    # 環境変数を設定していない場合は、次の行を次のように置き換えてください: api_key="sk-xxx"
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    base_url="https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",
)

response = client.responses.create(
    model="qwen3.5-ocr",
    input=[
        {
            "role": "user",
            "content": [
                {
                    "type": "input_file",
                    "file_url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260616/qmycjl/1506.02640v5.pdf",
                },
                {
                    "type": "input_text",
                    "text": "ファイル内のすべてのテキストを読み取ってください。",
                },
            ],
        }
    ],
    extra_body={
        "ocr_options": {}
    },
)

print(response.output_text)

Node.js

import OpenAI from 'openai';

const client = new OpenAI({
    // 環境変数を設定していない場合は、次の行を次のように置き換えてください: apiKey: "sk-xxx"
    apiKey: process.env.DASHSCOPE_API_KEY,
    baseURL: "https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",
});

async function main() {
    const response = await client.responses.create({
        model: "qwen3.5-ocr",
        input: [{
            role: "user",
            content: [{
                type: "input_file",
                file_url: "https://example.com/your-document.pdf"
            }]
        }],
        ocr_options: { task: "document_parsing" }
    });

    // カスタムタスクの結果を取得
    console.log(response.output[0].content[0].ocr_result);
}

main();

curl

curl -X POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
    "model": "qwen3.5-ocr",
    "input": [
        {
            "role": "user",
            "content": [
                {
                    "type": "input_file",
                    "file_url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260616/qmycjl/1506.02640v5.pdf"
                },
                {
                    "type": "input_text",
                    "text": "ファイル内のすべてのテキストを読み取ってください。"
                }
            ]
        }
    ],
    "ocr_options": {}
}'

セッションキャッシュ

Python

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # {WorkspaceId} を実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
    base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
    # default_headers を介してセッションキャッシュを有効にします。
    default_headers={"x-dashscope-session-cache": "enable"}
)

# 1024 トークンを超える長いテキストを構築して、キャッシュ作成をトリガーします。
# そうでない場合、累積コンテキストが 1024 トークンを超えるとキャッシュがトリガーされます。
long_context = "人工知能 (AI) は、人間の知能をシミュレート、拡張、拡大できる理論、方法、技術、および応用システムを研究開発することに専念する、コンピューターサイエンスの主要な分野です。" * 50

# 最初のターン
response1 = client.responses.create(
    model="qwen3.7-plus",
    input=long_context + "\n\nこのコンテキストに基づいて、機械学習におけるランダムフォレストアルゴリズムを簡単に紹介してください。",
)
print(f"最初の応答: {response1.output_text}")

# 2 番目のターン: previous_response_id を使用してコンテキストをリンクします。キャッシュはサーバーによって自動的に処理されます。
response2 = client.responses.create(
    model="qwen3.7-plus",
    input="それと GBDT の主な違いは何ですか?",
    previous_response_id=response1.id,
)
print(f"2 番目の応答: {response2.output_text}")

# キャッシュのヒットステータスを確認します。
usage = response2.usage
print(f"入力トークン数: {usage.input_tokens}")
print(f"キャッシュされたトークン数: {usage.input_tokens_details.cached_tokens}")

Node.js

import OpenAI from "openai";

const openai = new OpenAI({
    apiKey: process.env.DASHSCOPE_API_KEY,
    // {WorkspaceId} を実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
    baseURL: "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
    // defaultHeaders を介してセッションキャッシュを有効にします。
    defaultHeaders: {"x-dashscope-session-cache": "enable"}
});

// 1024 トークンを超える長いテキストを構築して、キャッシュ作成をトリガーします。
// そうでない場合、累積コンテキストが 1024 トークンを超えるとキャッシュがトリガーされます。
const longContext = "人工知能 (AI) は、人間の知能をシミュレート、拡張、拡大できる理論、方法、技術、および応用システムを研究開発することに専念する、コンピューターサイエンスの主要な分野です。".repeat(50);

async function main() {
    // 最初のターン
    const response1 = await openai.responses.create({
        model: "qwen3.7-plus",
        input: longContext + "\n\nこのコンテキストに基づいて、機械学習におけるランダムフォレストアルゴリズムの基本原則と応用を含めて簡単に紹介してください。"
    });
    console.log(`最初の応答: ${response1.output_text}`);

    // 2 番目のターン: previous_response_id を使用してコンテキストをリンクします。キャッシュはサーバーによって自動的に処理されます。
    const response2 = await openai.responses.create({
        model: "qwen3.7-plus",
        input: "それと GBDT の主な違いは何ですか?",
        previous_response_id: response1.id
    });
    console.log(`2 番目の応答: ${response2.output_text}`);

    // キャッシュのヒットステータスを確認します。
    console.log(`入力トークン数: ${response2.usage.input_tokens}`);
    console.log(`キャッシュされたトークン数: ${response2.usage.input_tokens_details.cached_tokens}`);
}

main();

curl

# 最初のターン
# 長いテキストを 50 回繰り返し、1024 トークンを超えてキャッシュ作成がトリガーされるようにします。
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-H "x-dashscope-session-cache: enable" \
-d '{
    "model": "qwen3.7-plus",
    "input": "人工知能 (AI) は、コンピューターサイエンスの主要な分野です..."
}'

# 2 番目のターン - 前の応答の ID を previous_response_id として使用します。
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-H "x-dashscope-session-cache: enable" \
-d '{
    "model": "qwen3.7-plus",
    "input": "それと GBDT の主な違いは何ですか?",
    "previous_response_id": ""
}'

model string (必須)

使用するモデルの ID。

サポートされているモデル

シンガポール

国際デプロイメント範囲

qwen3.7-max, qwen3.7-max-2026-05-20, qwen3.7-max-2026-06-08, qwen3-max, qwen3-max-2026-01-23, qwen3.7-plus, qwen3.7-plus-2026-05-26, qwen3.6-plus, qwen3.6-plus-2026-04-02, qwen3.5-plus, qwen3.5-plus-2026-04-20, qwen3.5-plus-2026-02-15, qwen3.6-flash, qwen3.6-flash-2026-04-16, qwen3.5-flash, qwen3.5-flash-2026-02-23, qwen3.6-35b-a3b, qwen3.5-397b-a17b, qwen3.5-122b-a10b, qwen3.5-27b, qwen3.5-35b-a3b, qwen-plus, qwen-flash, qwen3-coder-plus, qwen3-coder-flash, qwen-plus-character, qwen-flash-character

米国 (バージニア)

グローバルデプロイメント範囲

qwen3.7-maxqwen3.7-max-2026-05-20qwen3.7-max-2026-06-08qwen3.7-plusqwen3.7-plus-2026-05-26qwen3.6-plusqwen3.6-plus-2026-04-02qwen3.5-plusqwen3.5-plus-2026-02-15qwen3.6-flashqwen3.6-flash-2026-04-16qwen3.5-flashqwen3.5-flash-2026-02-23qwen3.6-35b-a3bqwen3.5-122b-a10bqwen3.5-27bqwen3.5-35b-a3b

ドイツ (フランクフルト)

グローバルデプロイメント範囲

qwen3.7-maxqwen3.7-max-2026-05-20qwen3.7-max-2026-06-08qwen3.7-plusqwen3.7-plus-2026-05-26qwen3.5-397b-a17bqwen3.5-122b-a10bqwen3.5-35b-a3bqwen3.5-27b

中国 (北京)

中国本土デプロイメント範囲

qwen3.7-max, qwen3.7-max-2026-05-20, qwen3.7-max-2026-06-08, qwen3-max, qwen3-max-2026-01-23, qwen3.6-plus, qwen3.6-plus-2026-04-02, qwen3.5-plus, qwen3.5-plus-2026-04-20, qwen3.5-plus-2026-02-15, qwen3.6-flash, qwen3.6-flash-2026-04-16, qwen3.5-flash, qwen3.5-flash-2026-02-23, qwen3.6-35b-a3b, qwen3.5-397b-a17b, qwen3.5-122b-a10b, qwen3.5-27b, qwen3.5-35b-a3b, qwen-plus, qwen-flash, qwen3-coder-plus, qwen3-coder-flash, qwen-plus-character, qwen-flash-character

香港 (中国)

グローバルデプロイメント範囲

qwen3.7-plus, qwen3.7-plus-2026-05-26, qwen3.6-plus, qwen3.6-flash, qwen3.5-flash, qwen3.5-flash-2026-02-23

中国 (香港) デプロイメント範囲

qwen3-max, qwen3-max-2026-01-23, qwen-plus, qwen3.5-flash, qwen3.5-flash-2026-02-23

日本 (東京)

日本デプロイメント範囲

qwen3.7-plus, qwen3.7-plus-2026-05-26

グローバルデプロイメント範囲

qwen3.7-plus, qwen3.7-plus-2026-05-26, qwen3.7-max, qwen3.7-max-2026-05-20, qwen3.6-plus, qwen3.6-plus-2026-04-02, qwen3.6-flash, qwen3.6-flash-2026-04-16

input string or array (必須)

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

  • string:プレーンテキスト、例:"Hello"

  • array:対話のターン順に並べられたメッセージの配列。

配列要素のタイプ

EasyInputMessage object

メッセージ作成者の role とメッセージペイロードの content を持つオブジェクト。

プロパティ

role string (必須)

メッセージ作成者のロール。有効な値:userassistantsystemdeveloper

content string or array (必須)

メッセージ本文。入力がプレーンテキストの場合は string、構造化コンテンツ配列の場合は array です。rolesystem または developer の場合、配列要素のタイプは input_text です。roleuser の場合、配列要素のタイプは input_textinput_image、または input_file です。roleassistant の場合、配列要素のタイプは output_text です。

Responses API は現在、ビデオまたはオーディオ入力をサポートしていません。これらのデータ型を渡すには、Chat Completions API または DashScope API を使用してください。

コンテンツ配列の項目

type string (必須)

コンテンツタイプを指定します。有効な値は input_textinput_image (user ロールのみ)、input_file (user ロールのみ、PDF と画像をサポート)、および output_text (assistant ロールのみ) です。

text string

テキストコンテンツ。typeinput_text または output_text の場合に必須です。

image_url string

画像のパブリック URL。typeinput_image の場合に必須です。

file_url string

ファイルのパブリック URL。typeinput_file の場合に必須です。PDF ファイル (最大 50 ページ、100 MB) と画像ファイル (最大 20 MB) をサポートします。現在、qwen3.5-ocr のみでサポートされています。

type string (任意)

message に固定されています。

ResponseOutputMessage object (任意)

モデルの出力メッセージ。対話を続けるには、以前の応答の output 配列から message オブジェクトを input に渡すことができます。EasyInputMessage とは異なり、このオブジェクトには idstatus、および構造化された content を含む完全な出力構造が含まれます。

プロパティ

type string (必須)

message に固定されています。

id string (必須)

以前の応答からの出力メッセージの一意の識別子。

role string (必須)

assistant に固定されています。

status string (必須)

メッセージステータス。有効な値:in_progresscompletedincomplete

content array (必須)

コンテンツの配列。要素は output_text オブジェクトです。

プロパティ

type string (必須)

output_text に固定されています。

text string (必須)

応答テキスト。

annotations array (任意)

アノテーション情報。

関数呼び出し object (任意)

モデルが外部ツールを呼び出すことを決定したときに生成される構造化された命令。

プロパティ

type string (必須)

function_call に固定されています。

id string (任意)

以前の応答からの関数呼び出しの一意の識別子。

name string (必須)

ツール関数の名前。

arguments string (必須)

ツール呼び出しの引数 (JSON 文字列形式)。

call_id string (必須)

ツール呼び出しの識別子。これは、モデルによって返される call_id と一致する必要があります。

status string (任意)

ステータス。有効な値:in_progresscompletedincomplete

関数呼び出し出力 object (任意)

ツール呼び出しの出力。メッセージリストでは、リクエストの失敗を防ぐために、このオブジェクトは対応する function_call メッセージの直後になければなりません

プロパティ

type string (必須)

function_call_output に固定されています。

id string (任意)

関数呼び出し出力の一意の識別子。

call_id string (必須)

ツール呼び出し識別子は、モデルによって返される call_id と一致する必要があります。

output string (必須)

ツール関数の実行結果。

status string (任意)

ステータス。有効な値:in_progresscompletedincomplete

Reasoning object (任意)

モデルの推論プロセス。以前の応答の output から reasoning 項目を input に渡すことで、後続のターンでこのプロセスを続けることができます。

プロパティ

type string (必須)

reasoning に固定されています。

id string (必須)

以前の応答からの推論コンテンツの一意の識別子。

summary array (必須)

推論の概要コンテンツ。

プロパティ

type string (必須)

summary_text に固定されています。

text string (必須)

概要テキスト。

status string (任意)

ステータス。有効な値:in_progresscompletedincomplete

Web 検索呼び出し object (任意)

Web 検索呼び出しオブジェクト。以前の応答の出力から web_search_call 項目を input に渡すことで、マルチターン対話で検索結果のコンテキストを提供できます。

プロパティ

type string (必須)

常に web_search_call です。

id string (必須)

以前の応答からの検索呼び出しの一意の識別子。

status string (必須)

検索ステータス。有効な値:in_progresssearchingcompletedfailed

action object (必須)

検索アクションの詳細。search タイプのみがサポートされています。

プロパティ

type string (必須)

検索タイプ。常に search です。

queries array (任意)

検索クエリのリスト。各要素は文字列です。

sources array (任意)

検索結果ソースのリスト。

プロパティ

type string (必須)

ソースタイプ。常に url です。

url string (必須)

ソース URL。

instructions string (任意)

コンテキストの冒頭にシステム命令として挿入されます。previous_response_id を使用する場合、前のターンで指定された instructions は現在のターンのコンテキストに渡されません。

previous_response_id string (任意)

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

conversation string (任意)

現在の応答が属する対話 (「Conversations API」をご参照ください)。対話の履歴は自動的にコンテキストとして含まれます。このリクエストの入出力は、完了時に会話に追加されます。previous_response_id とは併用できません。

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

ストリーミング出力を有効にします。true に設定すると、モデルはリアルタイムで応答をストリーミングします。

store boolean (任意) デフォルトは true

このセッションで生成されたモデル応答を保存するかどうかを指定します。

  • false:応答は保存されず、後続の呼び出しで previous_response_id を介して参照することはできません。

  • true:応答は保存されます。現在のモデル応答は、previous_response_id および後続の API 呼び出しで参照できます。

tools array (任意)

応答を生成する際にモデルが呼び出すことができるツールの配列。組み込みツールとカスタム function ツールの両方をサポートし、一緒に使用できます。

最良の結果を得るには、code_interpreterweb_search、および web_extractor ツールを有効にしてください。

プロパティ

Web 検索

最新の情報をインターネットで検索します。関連ドキュメント:「Web 検索

プロパティ

type string (必須)

web_search に固定されています。

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

Web エクストラクタ

Web ページにアクセスしてコンテンツを抽出します。web_search ツールと一緒に使用する必要があります。qwen3-max および qwen3-max-2026-01-23 モデルの場合、推論モードも有効にする必要があります。関連ドキュメント:「Web 抽出

プロパティ

type string (必須)

web_extractor に固定されています。

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

コードインタープリター

サンドボックス環境でコードを実行して、データ分析などのタスクを実行します。qwen3-max および qwen3-max-2026-01-23 モデルの場合、推論モードも有効にする必要があります。関連ドキュメント:「コードインタープリター

プロパティ

type string (必須)

code_interpreter に固定されています。

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

Web 検索画像

テキストの説明に基づいて画像を検索します。関連ドキュメント:「テキストによる画像検索

プロパティ

type string (必須)

web_search_image に固定されています。

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

Image Search

入力画像に基づいて類似または関連する画像を検索します。入力には画像の URL を含める必要があります。関連ドキュメント:「画像による画像検索

プロパティ

type string (必須)

image_search に固定されています。

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

ファイル検索

指定されたナレッジベースを検索してナレッジ取得を実行します。関連ドキュメント:「ナレッジ取得

プロパティ

type string (必須)

file_search に固定されています。

vector_store_ids array (必須)

検索するナレッジベースの ID。現在、1 つのナレッジベース ID のみ提供できます。

例:[{"type": "file_search", "vector_store_ids": ["your_knowledge_base_id"]}]

MCP 呼び出し

モデルコンテキストプロトコル (MCP) を介して外部サービスを呼び出します。関連ドキュメント:「MCP

プロパティ

type string (必須)

mcp に固定されています。

server_protocol string (必須)

MCP サービスとの通信プロトコル、例:"sse"

server_label string (必須)

MCP サービスを識別するために使用されるラベル。

server_description string (任意)

サービスの説明。モデルがその機能を理解し、いつ使用するかを決定するのに役立ちます。

server_url string (必須)

MCP サービスエンドポイントの URL。

headers object (任意)

リクエストヘッダー。認証などの情報を運ぶために使用されます (例:Authorization)。

例:

mcp_tool = {
    "type": "mcp",
    "server_protocol": "sse",
    "server_label": "amap-maps",
    "server_description": "AMap MCP サーバーは、15 のコア API をカバーする地理情報サービスの完全なスイートを提供します。これらには、カスタムマップ生成、ナビゲーション、配車サービス、ジオコーディング、逆ジオコーディング、IP ベースの位置情報、天気クエリ、サイクリング、ウォーキング、運転、公共交通機関のルート計画、距離測定、さまざまな検索機能が含まれます。",
    "server_url": "https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/mcps/amap-maps/sse",
    "headers": {
        "Authorization": "Bearer <your-mcp-server-token>"
    }
}

カスタムツール 関数

モデルが開発者定義の関数を呼び出すことを許可します。モデルがツールを呼び出す必要があると判断した場合、応答はタイプ 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)

temperaturetop_p はどちらも生成されるテキストの多様性を制御します。これらのパラメーターのいずれか一方のみを一度に使用することを推奨します。詳細については、「概要」をご参照ください。

top_p float (任意)

Top-p サンプリングの確率のしきい値。生成されるテキストの多様性を制御します。

値が高いほど出力はよりランダムで多様になり、低いほどより集中的で決定論的になります。

値の範囲: (0, 1.0]

temperaturetop_p はどちらも生成されるテキストの多様性を制御します。これらのパラメーターのいずれか一方のみを一度に使用することを推奨します。詳細については、「概要」をご参照ください。

enable_thinking boolean (任意)

推論モードを有効または無効にします。有効にすると、モデルは応答する前に推論ステップを実行します。推論プロセスは、タイプ reasoning の出力項目として返されます。推論モードを有効にする場合、複雑なタスクで最良の結果を得るために、組み込みツールも有効にすることを推奨します

有効な値:

  • true:推論モードを有効にします。

  • false:推論モードを無効にします。

さまざまなモデルのデフォルト値については、「サポートされているモデル」をご参照ください。

このパラメーターは標準の OpenAI パラメーターではありません。Python SDK では、extra_body={"enable_thinking": True} を使用して渡します。Node.js SDK および curl では、トップレベルパラメーターとして enable_thinking: true を使用します。enable_thinking は非推奨になるため、代わりに reasoning.effort を使用することを推奨します。

reasoning object (任意)

モデルの推論労力を制御します。モデルは応答する前に推論ステップを実行し、推論プロセスはタイプ reasoning の出力項目を介して返されます。

プロパティ

effort string (任意):推論労力のレベル。デフォルトは medium です。

  • none:推論を無効にし、直接的な回答を提供します。

  • minimal:最速の応答のために推論を最小限に抑えます。

  • medium (デフォルト):速度と深さのバランスを取った中程度の推論。

  • high:複雑で専門的なタスクに最適化された深い推論。

  • high:複雑で専門的な問題に対する詳細な分析。

reasoning.effortenable_thinking よりも優先されます。enable_thinking は非推奨になるため、reasoning.effort を使用することを推奨します。

ocr_options object (任意)

OCR 組み込みタスクパラメーター。qwen3.5-ocr モデルにのみ適用されます。このパラメーターを使用して、組み込み OCR タスク (情報抽出やテキストのローカライズなど) を呼び出します。組み込みタスクの結果は、応答の ocr_result フィールドで返されます。

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

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

{
    "created_at": 1771165900.0,
    "id": "f75c28fb-4064-48ed-90da-4d2cc4362xxx",
    "model": "qwen3.7-plus",
    "object": "response",
    "output": [
        {
            "content": [
                {
                    "annotations": [],
                    "text": "こんにちは!私は Qwen3.5、Alibaba Cloud が開発した大規模言語モデルで、2026 年までの知識を持ち、複雑な推論、創造的なタスク、多言語での会話を支援するように設計されています。",
                    "type": "output_text"
                }
            ],
            "id": "msg_89ad23e6-f128-4d4c-b7a1-a786e7880xxx",
            "role": "assistant",
            "status": "completed",
            "type": "message"
        }
    ],
    "parallel_tool_calls": false,
    "status": "completed",
    "tool_choice": "auto",
    "tools": [],
    "usage": {
        "input_tokens": 57,
        "input_tokens_details": {
            "cached_tokens": 0
        },
        "output_tokens": 44,
        "output_tokens_details": {
            "reasoning_tokens": 0
        },
        "total_tokens": 101,
        "x_details": [
            {
                "input_tokens": 57,
                "output_tokens": 44,
                "total_tokens": 101,
                "x_billing_type": "response_api"
            }
        ]
    }
}

id string

この応答の一意の識別子 (UUID)。この ID は 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:推論タイプ。このパラメーターは、reasoning.effortnone 以外の値に設定されている場合、または推論モードが有効になっている場合に返されます。推論トークンは output_tokens_details.reasoning_tokens でカウントされ、推論トークンとして課金されます。

  • function_call:関数呼び出しタイプ。これは、カスタム function ツールが使用されるときに返されます。関数呼び出しを処理し、結果を返します。

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

  • code_interpreter_callcode_interpreter ツールが使用されるときに返されるコード実行タイプ。

  • web_extractor_call:Web 抽出タイプ。これは、web_extractor ツールが使用されるときに返されます。web_search ツールと一緒に使用する必要があります。

  • web_search_image_call:テキストによる画像検索の呼び出しタイプ。これは、web_search_image ツールを使用するときに返されます。見つかった画像のリストが含まれています。

  • image_search_call:画像による画像検索の呼び出しタイプ。これは、image_search ツールが使用されるときに返されます。類似画像のリストが含まれています。

  • mcp_call:MCP 呼び出しタイプ。これは、mcp ツールを使用するときに返されます。MCP サービス呼び出しの結果が含まれています。

  • file_search_call:ナレッジベース検索の呼び出しタイプ。これは、file_search ツールを使用するときに返されます。ナレッジベースの取得クエリと結果が含まれています。

id string

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

role string

メッセージのロールは常に assistant です。このパラメーターは、typemessage の場合にのみ存在します。

status string

出力項目のステータス。有効な値:completed および in_progress。このパラメーターは、type パラメーターが reasoning に設定されていない場合に存在します。

name string

ツールまたは関数の名前。このパラメーターは、typefunction_callweb_search_image_callimage_search_call、または mcp_call の場合に存在します。

web_search_image_call および image_search_call の場合、値はそれぞれ "web_search_image" および "image_search" に固定されます。

mcp_call の場合、値は MCP サービスで呼び出される特定の関数の名前です (例:amap-maps-maps_geo)。

arguments string

ツール呼び出しのパラメーター (JSON 文字列形式)。このパラメーターは、typefunction_callweb_search_image_callimage_search_call、または mcp_call の場合に存在します。使用する前に JSON.parse() を使用して文字列を解析します。さまざまなツールタイプの引数の内容は次のとおりです:

  • web_search_image_call{"queries": ["検索キーワード 1", "検索キーワード 2"]}queries は、ユーザー入力に基づいてモデルが自動的に生成した検索キーワードのリストです。

  • image_search_call{"img_idx": 0, "bbox": [0, 0, 1000, 1000]}img_idx は入力画像のインデックス (0 から始まる) で、bbox は検索領域のバウンディングボックス座標 [x1, y1, x2, y2] です。座標値の範囲は 0 から 1000 です。

  • function_call:ユーザー定義の関数パラメーターのスキーマから生成されたパラメーターオブジェクト。

  • mcp_call:MCP サービスで呼び出される関数のパラメーターオブジェクト。

call_id string

関数呼び出しの一意の ID。このパラメーターは、typefunction_call の場合にのみ含まれます。この ID は、リクエストを応答にリンクするために、関数呼び出しの結果に含める必要があります。

content array

メッセージ本文の配列。このパラメーターは、typemessage に設定されている場合にのみ存在します。

配列要素のプロパティ

type string

コンテンツタイプ。値は output_text に固定されています。

text string

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

annotations array

テキストアノテーションの配列。通常は空の配列です。

summary array

推論の概要の配列。このフィールドは、typereasoning の場合にのみ存在します。各要素には type フィールド (値:summary_text) と text フィールド (概要テキスト) が含まれます。

action object

検索アクションに関する情報。このパラメーターは、typeweb_search_call の場合にのみ存在します。

プロパティ

query string

検索クエリキーワード。

type string

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

sources array

検索ソースのリスト。各要素には typeurl フィールドが含まれます。

code string

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

outputs array

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

container_id string

コードインタープリターのコンテナ識別子。このパラメーターは、typecode_interpreter_call の場合にのみ存在します。この識別子は、同じセッション内の複数のコード実行を関連付けます。

goal string

Web ページから抽出する情報の説明。このパラメーターは、typeweb_extractor_call の場合にのみ使用できます。

output string

ツール呼び出しの出力。出力は文字列です。

  • typeweb_extractor_call の場合、これは Web ページから抽出されたコンテンツの概要です。

  • typeweb_search_image_call または image_search_call の場合、これは画像検索結果の配列を含む JSON 文字列です。各要素には titleurl、および index フィールドが含まれます。

  • typemcp_call の場合、これは MCP サービスによって返される JSON 文字列の結果です。

urls array

抽出された Web ページの URL のリスト。このパラメーターは、typeweb_extractor_call の場合にのみ使用できます。

server_label string

MCP サービスのラベル。これは、typemcp_call の場合にのみ表示されます。呼び出しがどの MCP サービスを使用したかを示します。

queries array

ナレッジベース取得のためのクエリのリスト。このパラメーターは、typefile_search_call の場合にのみ存在します。配列には文字列が含まれます。各文字列は、モデルによって生成された検索クエリです。

results array

ナレッジベースからの検索結果の配列。このパラメーターは、typefile_search_call の場合にのみ存在します。

配列要素のプロパティ

file_id string

一致したドキュメントのファイル ID。

filename string

一致したドキュメントのファイル名。

score float

一致の関連性スコア。値の範囲は 0 から 1 です。値が大きいほど関連性が高くなります。

text string

一致したドキュメントからのコンテンツスニペット。

usage object

このリクエストのトークン消費に関する情報。

プロパティ

input_tokens integer

入力内のトークン数。補足事項

output_tokens integer

モデルの出力内のトークン数。

total_tokens integer

消費された合計トークン数は、input_tokensoutput_tokens の合計です。

input_tokens_details object

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

プロパティ

cached_tokens integer

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

output_tokens_details object

出力トークンの詳細な内訳。

プロパティ

reasoning_tokens integer

推論トークンの数。

x_details array

リクエストの請求明細の配列。これは、トップレベルの usage フィールドよりも詳細なマルチモーダルトークンの内訳を提供します。

プロパティ

input_tokens integer

入力内のトークン数。補足事項

output_tokens integer

モデルの出力内のトークン数。

total_tokens integer

消費された合計トークン数は、input_tokensoutput_tokens の合計です。

x_billing_type string

値は response_api に固定されています。

image_tokens integer

画像入力のトークン数。このフィールドは、入力に画像が含まれる場合に返され、input_tokens_details.image_tokens と同等です。

input_tokens_details object

入力トークンの詳細な内訳。このフィールドは、マルチモーダル入力に対して返されます。現在、text_tokensimage_tokens のみを区別します。ビデオまたはオーディオトークンの内訳は提供しません。

プロパティ

text_tokens integer

テキスト入力のトークン数。

image_tokens integer

画像入力のトークン数。

output_tokens_details object

出力トークンの詳細な内訳。このフィールドには、トップレベルの output_tokens_details と比較して、追加の text_tokens フィールドがあります。text_tokens フィールドは、マルチモーダル入力に対して返されます。

プロパティ

reasoning_tokens integer

推論プロセスのトークン数。

text_tokens integer

テキスト出力のトークン数。このフィールドは、マルチモーダル入力に対して返されます。

plugins object

組み込みツールの呼び出しの統計。このフィールドは、web_search などの組み込みツールが使用されるときに返されます。その内容は、トップレベルの x_tools フィールドと同じです。

プロパティ

web_search object

Web 検索呼び出しの統計。

プロパティ

count integer

この応答で Web 検索が呼び出された回数。

prompt_tokens_details object

入力トークンのキャッシュ詳細。このフィールドは、セッションキャッシュが有効になっている場合に返されます。入力に画像が含まれているがキャッシュミスになった場合、空のオブジェクトを返すことがあります。

プロパティ

cached_tokens integer

キャッシュにヒットしたトークン数。

cache_creation_input_tokens integer

このリクエストで新しいキャッシュを作成するために使用されたトークン数。

cache_creation object

キャッシュ作成に関する詳細。

プロパティ

ephemeral_5m_input_tokens integer

新しい 5 分間のエフェメラルキャッシュを作成するために使用されたトークン数。

cache_type string

キャッシュタイプ。値は ephemeral に固定されています。

x_tools object

ツール使用状況に関する統計。これには、各組み込みツールが呼び出された回数が含まれます。

例:{"web_search": {"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.7-max","object":"response","output":[...],"status":"completed","usage":{"input_tokens":37,"output_tokens":243,"total_tokens":280,...}},"sequence_number":56,"type":"response.completed"}

Web 抽出

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":"Web search"},"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":"Web search"},"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## 通義大規模モデル、AI 時代の企業の最初の選択肢\n\n## 完全な製品システム、企業の技術革新のためのクラウドを構築\n\nすべてのクラウド製品## 大規模モデルとクラウドコンピューティングの相乗的開発を通じて AI を利用可能にする\n\nすべての AI ソリューション\n\n概要: \nAlibaba Cloud は、通義大規模モデルを中心とした主要な企業 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}}}

テキストによる画像検索

// 1. response.created: 応答が作成されます。
id:1
event:response.created
data:{"sequence_number":0,"type":"response.created","response":{"output":[],"status":"queued",...}}

// 2. response.in_progress: 応答が処理中です。
id:2
event:response.in_progress
data:{"sequence_number":1,"type":"response.in_progress","response":{"status":"in_progress",...}}

// 3. response.output_item.added: 推論が開始されます。
id:3
event:response.output_item.added
data:{"sequence_number":2,"item":{"summary":[],"type":"reasoning","id":"msg_xxx"},"output_index":0,"type":"response.output_item.added"}

// 4. response.reasoning_summary_text.delta: 推論の概要の差分。
id:4
event:response.reasoning_summary_text.delta
data:{"delta":"ユーザーは猫の写真を見つけたいようです。web_search_image ツールを使用して検索する必要があります...","sequence_number":3,"output_index":0,"type":"response.reasoning_summary_text.delta","item_id":"msg_xxx","summary_index":0}

// 5. response.reasoning_summary_text.done: 推論の概要が完了しました。
id:10
event:response.reasoning_summary_text.done
data:{"sequence_number":9,"text":"ユーザーは猫の写真を見つけたいようです。web_search_image ツールを使用して猫の写真を検索する必要があります。","output_index":0,"type":"response.reasoning_summary_text.done","item_id":"msg_xxx","summary_index":0}

// 6. response.output_item.done: 推論項目が完了しました。
id:11
event:response.output_item.done
data:{"sequence_number":10,"item":{"summary":[{"type":"summary_text","text":"..."}],"type":"reasoning","id":"msg_xxx"},"output_index":0,"type":"response.output_item.done"}

// 7. response.output_item.added: テキストによる画像検索ツールの呼び出しが開始されます (ステータス: in_progress; name と arguments を含む)。
id:12
event:response.output_item.added
data:{"sequence_number":11,"item":{"name":"web_search_image","arguments":"{\"queries\": [\"猫の写真\", \"かわいい猫\"]}","id":"msg_xxx","type":"web_search_image_call","status":"in_progress"},"output_index":1,"type":"response.output_item.added"}

// 8. response.output_item.done: テキストによる画像検索ツールの呼び出しが完了しました (完全な 'output' 検索結果を含む)。
id:13
event:response.output_item.done
data:{"sequence_number":12,"item":{"name":"web_search_image","output":"[{\"title\": \"かわいい子猫...\", \"url\": \"https://example.com/cat.jpg\", \"index\": 1}, ...]","arguments":"{\"queries\": [\"猫の写真\", \"かわいい猫\"]}","id":"msg_xxx","type":"web_search_image_call","status":"completed"},"output_index":1,"type":"response.output_item.done"}

// 9-12. 後続の推論とメッセージ出力イベントが続きます。これは基本的な呼び出しフローと同様です。
// response.output_item.added (reasoning) → reasoning_summary_text.delta/done → response.output_item.done (reasoning)
// response.output_item.added (message) → response.content_part.added → response.output_text.delta → response.output_text.done → response.content_part.done → response.output_item.done (message)

// 13. response.completed: 応答が完了しました。
id:118
event:response.completed
data:{"sequence_number":117,"type":"response.completed","response":{"output":[...],"status":"completed","usage":{"input_tokens":7895,"output_tokens":318,"total_tokens":8213,"x_tools":{"web_search_image":{"count":1}}}}}

画像による画像検索

// 1-6. 推論フェーズは、テキストによる画像検索フローと同じです。

// 7. response.output_item.added: 画像による画像検索ツールの呼び出しが開始します。
// 注:引数には img_idx (画像インデックス) と bbox (バウンディングボックス) が含まれます。
id:29
event:response.output_item.added
data:{"sequence_number":29,"item":{"name":"image_search","arguments":"{\"img_idx\": 0, \"bbox\": [0, 0, 1000, 1000]}","id":"msg_xxx","type":"image_search_call","status":"in_progress"},"output_index":1,"type":"response.output_item.added"}

// 8. response.output_item.done: 画像による画像検索ツールの呼び出しが完了します。
id:30
event:response.output_item.done
data:{"sequence_number":30,"item":{"name":"image_search","output":"[{\"title\": \"Ink wash mountain background...\", \"url\": \"https://example.com/landscape.jpg\", \"index\": 1}, ...]","arguments":"{\"img_idx\": 0, \"bbox\": [0, 0, 1000, 1000]}","id":"msg_xxx","type":"image_search_call","status":"completed"},"output_index":1,"type":"response.output_item.done"}

// 9-12. 2回目の推論 + 最終メッセージの出力 (基本的な呼び出しと同じ)。

// 13. response.completed
id:408
event:response.completed
data:{"sequence_number":407,"type":"response.completed","response":{"output":[...],"status":"completed","usage":{"input_tokens":8371,"output_tokens":417,"total_tokens":8788,"x_tools":{"image_search":{"count":1}}}}}

MCP

// 1-6. 推論フェーズ (他のツールと同じ)。

// 7. response.mcp_call_arguments.delta: MCP 引数の差分 (MCP 固有のイベント)。
id:27
event:response.mcp_call_arguments.delta
data:{"delta":"{\"city\": \"Beijing\"}","sequence_number":26,"output_index":1,"type":"response.mcp_call_arguments.delta","item_id":"msg_xxx"}

// 8. response.mcp_call_arguments.done: MCP 引数が完了 (MCP 固有のイベント)。
id:28
event:response.mcp_call_arguments.done
data:{"sequence_number":27,"arguments":"{\"city\": \"Beijing\"}","output_index":1,"type":"response.mcp_call_arguments.done","item_id":"msg_xxx"}

// 9. response.output_item.added: MCP ツール呼び出しが開始 (name、server_label、arguments を含む)。
id:29
event:response.output_item.added
data:{"sequence_number":28,"item":{"name":"amap-maps-maps_weather","server_label":"MCP Server","arguments":"{\"city\": \"Beijing\"}","id":"msg_xxx","type":"mcp_call","status":"in_progress"},"output_index":1,"type":"response.output_item.added"}

// 10. response.mcp_call.completed: MCP 呼び出しが完了 (MCP 固有のイベント)。
id:30
event:response.mcp_call.completed
data:{"sequence_number":29,"output_index":1,"type":"response.mcp_call.completed","item_id":"msg_xxx"}

// 11. response.output_item.done: MCP 出力項目が完了 (完全な 'output' を含む)。
id:31
event:response.output_item.done
data:{"sequence_number":30,"item":{"output":"{\"city\":\"Beijing\",\"forecasts\":[...]}","name":"amap-maps-maps_weather","server_label":"MCP Server","arguments":"{\"city\": \"Beijing\"}","id":"msg_xxx","type":"mcp_call","status":"completed"},"output_index":1,"type":"response.output_item.done"}

// 12-15. 2回目の推論 + 最終メッセージ出力。

// 16. response.completed
id:172
event:response.completed
data:{"sequence_number":171,"type":"response.completed","response":{"output":[...],"status":"completed","usage":{"input_tokens":5019,"output_tokens":539,"total_tokens":5558}}}

ナレッジベース検索

// 1-6. 推論フェーズ (他のツールと同じ)。

// 7. response.output_item.added: ナレッジベース検索が開始 (クエリを含む、結果なし)。
id:19
event:response.output_item.added
data:{"sequence_number":18,"item":{"id":"msg_xxx","type":"file_search_call","queries":["Alibaba Cloud Model Studio X1 電話","Alibaba Cloud Model Studio X1 電話","Model Studio X1"],"status":"in_progress"},"output_index":1,"type":"response.output_item.added"}

// 8. response.file_search_call.in_progress: 検索が進行中 (file_search 固有のイベント)。
id:20
event:response.file_search_call.in_progress
data:{"sequence_number":19,"output_index":1,"type":"response.file_search_call.in_progress","item_id":"msg_xxx"}

// 9. response.file_search_call.searching: 検索中 (file_search 固有のイベント)。
id:21
event:response.file_search_call.searching
data:{"sequence_number":20,"output_index":1,"type":"response.file_search_call.searching","item_id":"msg_xxx"}

// 10. response.file_search_call.completed: 検索が完了 (file_search 固有のイベント)。
id:22
event:response.file_search_call.completed
data:{"sequence_number":21,"output_index":1,"type":"response.file_search_call.completed","item_id":"msg_xxx"}

// 11. response.output_item.done: クエリと結果を含む完全な出力項目を提供します。
id:23
event:response.output_item.done
data:{"sequence_number":22,"item":{"id":"msg_xxx","type":"file_search_call","queries":["Alibaba Cloud Model Studio X1 電話","Alibaba Cloud Model Studio X1 電話","Model Studio X1"],"results":[{"score":0.7519,"filename":"Alibaba Cloud Model Studio シリーズ電話製品概要","text":"Alibaba Cloud Model Studio X1 — 究極の視覚体験をお楽しみください...","file_id":"file_xxx"}],"status":"completed"},"output_index":1,"type":"response.output_item.done"}

// 12-15. 2回目の推論 + 最終メッセージ出力。

// 16. response.completed
id:146
event:response.completed
data:{"sequence_number":145,"type":"response.completed","response":{"output":[...],"status":"completed","usage":{"input_tokens":1576,"output_tokens":722,"total_tokens":2298,"x_tools":{"file_search":{"count":1}}}}}

ストリーミング出力は一連の 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 の場合、これは Web 抽出ツール呼び出しの開始を示します。

  • response.content_part.added: 新しいコンテンツパートが出力項目の content 配列に追加されます。

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

  • response.output_text.done:コンテンツパートのテキスト生成が完了しました。text フィールドには全文が含まれます。

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

  • response.output_item.done:出力項目が完了しました。item オブジェクトには完全な出力項目が含まれます。item.typeweb_extractor_call の場合、これは Web 抽出ツール呼び出しの完了を示します。

  • 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 イベントを介して渡され、item.type フィールドの値が web_extractor_call であることによって識別されます。

  • response.mcp_call_arguments.delta / response.mcp_call_arguments.done:これらのイベントは、MCP 呼び出し引数の差分と完了ステータスを提供します。

  • response.mcp_call.completed:MCP サービス呼び出しが完了しました。

  • response.file_search_call.in_progress / searching / completed:ナレッジベース検索のステータス変更イベント (file_search ツールを使用する場合)。

  • 注:web_search_image および image_search ツールを使用する場合、専用の中間状態イベントはありません。ツール呼び出しは、response.output_item.added (呼び出し開始) および response.output_item.done (呼び出し完了) イベントを介して伝達されます。

  • 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 イベントでは、content が空の配列である初期スケルトンです。done イベントでは、完全なオブジェクトです。

プロパティ

id string

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

type string

出力項目のタイプ。考えられる値:messagereasoningweb_search_callweb_search_image_call (テキストによる画像検索)、image_search_call (画像による画像検索)、mcp_call (MCP 呼び出し)、file_search_call (ナレッジベース検索)。

role string

メッセージロール。常に assistant です。typemessage の場合にのみ存在します。

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

出力項目の一意の識別子。この ID を使用して、同じ項目に属するイベントを関連付けます。

output_index integer

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

content_index integer

content 配列内のコンテンツパートのインデックス。

summary_index integer

推論出力項目の summary 配列内の項目のインデックス。このフィールドは、response.reasoning_summary_text.delta および response.reasoning_summary_text.done イベントに表示されます。

よくある質問

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

A: 新しい対話リクエストを行う際に、モデルの前回の成功した応答からの idprevious_response_id パラメーターとして渡します。

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

A: 公式の OpenAI SDK は、OpenAI プロトコルで定義された追加のフィールドを出力する場合があります。当社のサービスはこれらのフィールドをサポートしていないため、通常は null です。このトピックで説明されているフィールドにのみ注目してください。