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

Alibaba Cloud Model Studio:Qwen-OCR テキスト抽出モデル

最終更新日:Jan 15, 2026

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

リファレンス: テキスト抽出 (Qwen-OCR)

OpenAI 互換性

シンガポールリージョン

SDK 呼び出しの場合、base_urlhttps://dashscope-intl.aliyuncs.com/compatible-mode/v1 に設定します。

HTTP 呼び出しの場合、endpointPOST https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions です。

米国 (バージニア) リージョン

SDK 呼び出しの場合、base_urlhttps://dashscope-us.aliyuncs.com/compatible-mode/v1 に設定します。

HTTP 呼び出しの場合、endpointPOST https://dashscope-us.aliyuncs.com/compatible-mode/v1/chat/completions です。

中国 (北京) リージョン

SDK 呼び出しの場合、base_urlhttps://dashscope.aliyuncs.com/compatible-mode/v1 に設定します。

HTTP 呼び出しの場合、endpointPOST https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions です。

API キーの取得環境変数としての設定が必要です。OpenAI SDK を使用する場合は、SDK のインストールも必要です。

リクエストボディ

非ストリーミング出力

Python

from openai import OpenAI
import os

PROMPT_TICKET_EXTRACTION = """
列車の切符の画像から、請求書番号、列車番号、出発駅、到着駅、出発日時、座席番号、座席クラス、チケット価格、ID カード番号、乗客名を抽出してください。
キー情報を正確に抽出する必要があります。情報を省略したり、捏造したりしないでください。ぼやけている、または強い光で隠されている単一の文字は、英語の疑問符 (?) に置き換えてください。
データを次の JSON 形式で返します: {'invoice_number': 'xxx', 'departure_station': 'xxx', 'arrival_station': 'xxx', 'departure_date_and_time':'xxx', 'seat_number': 'xxx','ticket_price':'xxx', 'id_card_number': 'xxx', 'passenger_name': 'xxx'},
"""

try:
    client = OpenAI(
        # リージョンごとに API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
        # 環境変数が設定されていない場合は、次の行を Model Studio API キーに置き換えてください: api_key="sk-xxx",
        api_key=os.getenv("DASHSCOPE_API_KEY"),
        # 以下はシンガポールリージョンのベース URL です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/compatible-mode/v1 に変更してください
        # 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/compatible-mode/v1 に置き換えてください
        base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
    )
    completion = client.chat.completions.create(
        model="qwen-vl-ocr-2025-11-20",
        messages=[
            {
                "role": "user",
                "content": [
                    {
                        "type": "image_url",
                        "image_url": {"url":"https://img.alicdn.com/imgextra/i2/O1CN01ktT8451iQutqReELT_!!6000000004408-0-tps-689-487.jpg"},
                        # 入力画像の最小ピクセルしきい値。画像のピクセル数がこの値を下回る場合、総ピクセル数が min_pixels を超えるまで拡大されます。
                        "min_pixels": 32 * 32 * 3,
                        # 入力画像の最大ピクセルしきい値。画像のピクセル数がこの値を超える場合、総ピクセル数が max_pixels を下回るまで縮小されます。
                        "max_pixels": 32 * 32 * 8192
                    },
                    # モデルは、次のテキストフィールドでプロンプトを渡すことをサポートしています。プロンプトが渡されない場合、デフォルトのプロンプトが使用されます: 画像からテキストコンテンツのみを出力し、追加の説明やフォーマットは含めないでください。
                    {"type": "text",
                     "text": PROMPT_TICKET_EXTRACTION}
                ]
            }
        ])
    print(completion.choices[0].message.content)
except Exception as e:
    print(f"Error message: {e}")

Node.js

import OpenAI from 'openai';

// 列車チケット情報抽出のプロンプトを定義します。
const PROMPT_TICKET_EXTRACTION = `
列車の切符の画像から、請求書番号、列車番号、出発駅、到着駅、出発日時、座席番号、座席クラス、チケット価格、ID カード番号、乗客名を抽出してください。
キー情報を正確に抽出する必要があります。情報を省略したり、捏造したりしないでください。ぼやけている、または強い光で隠されている単一の文字は、英語の疑問符 (?) に置き換えてください。
データを次の JSON 形式で返します: {'invoice_number': 'xxx', 'departure_station': 'xxx', 'arrival_station': 'xxx', 'departure_date_and_time':'xxx', 'seat_number': 'xxx','ticket_price':'xxx', 'id_card_number': 'xxx', 'passenger_name': 'xxx'}
`;

const client = new OpenAI({
  // リージョンごとに API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
  // 環境変数が設定されていない場合は、次の行を Model Studio API キーに置き換えてください: apiKey: "sk-xxx",
  apiKey: process.env.DASHSCOPE_API_KEY,
  // 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/compatible-mode/v1 に置き換えてください
  baseURL: 'https://dashscope-intl.aliyuncs.com/compatible-mode/v1',
});

async function main() {
  const response = await client.chat.completions.create({
    model: 'qwen-vl-ocr-2025-11-20',
    messages: [
      {
        role: 'user',
        content: [
          // モデルはテキストフィールドでプロンプトを渡すことをサポートしています。プロンプトが渡されない場合、デフォルトのプロンプトが使用されます: 画像からテキストコンテンツのみを出力し、追加の説明やフォーマットは含めないでください。
          { type: 'text', text: PROMPT_TICKET_EXTRACTION},
          {
            type: 'image_url',
            image_url: {
              url: 'https://img.alicdn.com/imgextra/i2/O1CN01ktT8451iQutqReELT_!!6000000004408-0-tps-689-487.jpg',
            },
              //  入力画像の最小ピクセルしきい値。画像のピクセル数がこの値を下回る場合、総ピクセル数が min_pixels を超えるまで拡大されます。
              "min_pixels": 32 * 32 * 3,
              // 入力画像の最大ピクセルしきい値。画像のピクセル数がこの値を超える場合、総ピクセル数が max_pixels を下回るまで縮小されます。
              "max_pixels": 32 * 32 * 8192
          }
        ]
      }
    ],
  });
  console.log(response.choices[0].message.content)
}

main();

curl

# ======= 重要 =======
# リージョンごとに API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
# 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions に置き換えてください
# === 実行前にこのコメントを削除してください ===

curl -X POST https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "model": "qwen-vl-ocr-2025-11-20",
  "messages": [
        {
            "role": "user",
            "content": [
                {
                    "type": "image_url",
                    "image_url": {"url":"https://img.alicdn.com/imgextra/i2/O1CN01ktT8451iQutqReELT_!!6000000004408-0-tps-689-487.jpg"},
                    "min_pixels": 3072,
                    "max_pixels": 8388608
                },
                {"type": "text", "text": "列車の切符の画像から、請求書番号、列車番号、出発駅、到着駅、出発日時、座席番号、座席クラス、チケット価格、ID カード番号、乗客名を抽出してください。キー情報を正確に抽出する必要があります。情報を省略したり、捏造したりしないでください。ぼやけている、または強い光で隠されている単一の文字は、英語の疑問符 (?) に置き換えてください。データを次の JSON 形式で返します: {\'invoice_number\': \'xxx\', \'departure_station\': \'xxx\', \'arrival_station\': \'xxx\', \'departure_date_and_time\':\'xxx\', \'seat_number\': \'xxx\',\'ticket_price\':\'xxx\', \'id_card_number\': \'xxx\', \'passenger_name\': \'xxx\'}"}
            ]
        }
    ]
}'

ストリーミング出力

Python

import os
from openai import OpenAI

PROMPT_TICKET_EXTRACTION = """
列車の切符の画像から、請求書番号、列車番号、出発駅、到着駅、出発日時、座席番号、座席クラス、チケット価格、ID カード番号、乗客名を抽出してください。
キー情報を正確に抽出する必要があります。情報を省略したり、捏造したりしないでください。ぼやけている、または強い光で隠されている単一の文字は、英語の疑問符 (?) に置き換えてください。
データを次の JSON 形式で返します: {'invoice_number': 'xxx','departure_station': 'xxx', 'arrival_station': 'xxx', 'departure_date_and_time':'xxx', 'seat_number': 'xxx','ticket_price':'xxx', 'id_card_number': 'xxx', 'passenger_name': 'xxx'},
"""

client = OpenAI(
    # リージョンごとに API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
    # 環境変数が設定されていない場合は、次の行を Model Studio API キーに置き換えてください: api_key="sk-xxx",
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/compatible-mode/v1 に置き換えてください
    base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
    model="qwen-vl-ocr-2025-11-20",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "image_url",
                    "image_url": {"url":"https://img.alicdn.com/imgextra/i2/O1CN01ktT8451iQutqReELT_!!6000000004408-0-tps-689-487.jpg"},
                    # 入力画像の最小ピクセルしきい値。画像のピクセル数がこの値を下回る場合、総ピクセル数が min_pixels を超えるまで拡大されます。
                    "min_pixels": 32 * 32 * 3,
                    # 入力画像の最大ピクセルしきい値。画像のピクセル数がこの値を超える場合、総ピクセル数が max_pixels を下回るまで縮小されます。
                    "max_pixels": 32 * 32 * 8192
                },
                  # モデルは、次のテキストフィールドでプロンプトを渡すことをサポートしています。プロンプトが渡されない場合、デフォルトのプロンプトが使用されます: 画像からテキストコンテンツのみを出力し、追加の説明やフォーマットは含めないでください。
                {"type": "text","text": PROMPT_TICKET_EXTRACTION}
            ]
        }
    ],
    stream=True,
    stream_options={"include_usage": True}
)

for chunk in completion:
    print(chunk.model_dump_json())

Node.js

import OpenAI from 'openai';


// 列車チケット情報抽出のプロンプトを定義します。
const PROMPT_TICKET_EXTRACTION = `
列車の切符の画像から、請求書番号、列車番号、出発駅、到着駅、出発日時、座席番号、座席クラス、チケット価格、ID カード番号、乗客名を抽出してください。
キー情報を正確に抽出する必要があります。情報を省略したり、捏造したりしないでください。ぼやけている、または強い光で隠されている単一の文字は、英語の疑問符 (?) に置き換えてください。
データを次の JSON 形式で返します: {'invoice_number': 'xxx', 'departure_station': 'xxx', 'arrival_station': 'xxx', 'departure_date_and_time':'xxx', 'seat_number': 'xxx','ticket_price':'xxx', 'id_card_number': 'xxx', 'passenger_name': 'xxx'}
`;

const openai = new OpenAI({
  // リージョンごとに API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
  // 環境変数が設定されていない場合は、次の行を Model Studio API キーに置き換えてください: apiKey: "sk-xxx",
  apiKey: process.env.DASHSCOPE_API_KEY,
  // 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/compatible-mode/v1 に置き換えてください
  baseURL: 'https://dashscope-intl.aliyuncs.com/compatible-mode/v1',
});

async function main() {
  const response = await openai.chat.completions.create({
    model: 'qwen-vl-ocr-2025-11-20',
    messages: [
      {
        role: 'user',
        content: [
          // モデルは、次のテキストフィールドでプロンプトを渡すことをサポートしています。プロンプトが渡されない場合、デフォルトのプロンプトが使用されます: 画像からテキストコンテンツのみを出力し、追加の説明やフォーマットは含めないでください。
          { type: 'text', text: PROMPT_TICKET_EXTRACTION},
          {
            type: 'image_url',
            image_url: {
              url: 'https://img.alicdn.com/imgextra/i2/O1CN01ktT8451iQutqReELT_!!6000000004408-0-tps-689-487.jpg',
            },
              //  入力画像の最小ピクセルしきい値。画像のピクセル数がこの値を下回る場合、総ピクセル数が min_pixels を超えるまで拡大されます。
              "min_pixels": 32 * 32 * 3,
              // 入力画像の最大ピクセルしきい値。画像のピクセル数がこの値を超える場合、総ピクセル数が max_pixels を下回るまで縮小されます。
              "max_pixels": 32 * 32 * 8192
          }
        ]
      }
    ],
    stream: true,
    stream_options:{"include_usage": true}
  });
let fullContent = ""
  console.log("Streaming output content:")
  for await (const chunk of response) {
    if (chunk.choices[0] && chunk.choices[0].delta.content != null) {
      fullContent += chunk.choices[0].delta.content;
      console.log(chunk.choices[0].delta.content);
    }
}
  console.log(`Full output content: ${fullContent}`)
}

main();

curl

# ======= 重要 =======
# リージョンごとに API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
# 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions に置き換えてください
# === 実行前にこのコメントを削除してください ===

curl -X POST https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "model": "qwen-vl-ocr-2025-11-20",
  "messages": [
        {
            "role": "user",
            "content": [
                {
                    "type": "image_url",
                    "image_url": {"url":"https://img.alicdn.com/imgextra/i2/O1CN01ktT8451iQutqReELT_!!6000000004408-0-tps-689-487.jpg"},
                    "min_pixels": 3072,
                    "max_pixels": 8388608
                },
                {"type": "text", "text": "列車の切符の画像から、請求書番号、列車番号、出発駅、到着駅、出発日時、座席番号、座席クラス、チケット価格、ID カード番号、乗客名を抽出してください。キー情報を正確に抽出する必要があります。情報を省略したり、捏造したりしないでください。ぼやけている、または強い光で隠されている単一の文字は、英語の疑問符 (?) に置き換えてください。データを次の JSON 形式で返します: {\'invoice_number\': \'xxx\', \'departure_station\': \'xxx\', \'arrival_station\': \'xxx\', \'departure_date_and_time\':\'xxx\', \'seat_number\': \'xxx\',\'ticket_price\':\'xxx\', \'id_card_number\': \'xxx\', \'passenger_name\': \'xxx\'}"}
            ]
        }
    ],
    "stream": true,
    "stream_options": {"include_usage": true}
}'

model string (必須)

モデルの名前。サポートされているモデルのリストについては、<a baseurl="t3183345_v2_1_0.xdita" data-node="5088954" data-root="85177" data-tag="xref" href="t2751232.xdita#8442951a76clt" id="b9f5555f63h80">Qwen-OCR</a>をご参照ください。

messages array (必須)

モデルに会話の順序でコンテキストを提供するメッセージのシーケンス。

メッセージタイプ

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

モデルが処理するための命令と画像を提供するユーザーメッセージ。

プロパティ

content array (必須)

メッセージの内容。

プロパティ

type string (必須)

有効値:

  • text

    テキスト入力の場合、タイプを text に設定します。

  • image_url

    image_url を使用して入力画像を指定します。

text string (任意)

入力テキスト。

デフォルト値は 画像からテキストコンテンツのみを出力し、追加の説明やフォーマットは含めないでください です。このデフォルトの動作は、モデルに画像からすべてのテキストを抽出するように指示します。

image_url object

入力画像に関する情報。このパラメーターは、typeimage_url に設定されている場合に必須です。

プロパティ

url string (必須)

画像の URL または Base64 エンコードされたデータ URL。ローカルファイルの渡し方については、「テキスト抽出」をご参照ください。

min_pixels integer (任意)

入力画像の最小ピクセルしきい値 (ピクセル単位)。

入力画像のピクセル数が min_pixels を下回る場合、総ピクセル数が min_pixels を超えるまで拡大されます。

画像トークンとピクセルの変換

画像トークンあたりのピクセル数はモデルによって異なります:

  • qwen-vl-ocr-latestqwen-vl-ocr-2025-11-20:各トークンは 32×32 ピクセルに対応します。

  • qwen-vl-ocrqwen-vl-ocr-2025-08-28、およびそれ以前のモデル:各トークンは 28×28 ピクセルに対応します。

min_pixels の有効値の範囲

  • qwen-vl-ocr-latestqwen-vl-ocr-2025-11-20:デフォルト値と最小値は 3072 (つまり 3×32×32) です。

  • qwen-vl-ocrqwen-vl-ocr-2025-08-28、およびそれ以前のモデル:デフォルト値と最小値は 3136 (つまり 4×28×28) です。

例: {"type": "image_url","image_url": {"url":"https://xxxx.jpg"},"min_pixels": 3072}

max_pixels integer (任意)

入力画像の最大ピクセルしきい値 (ピクセル単位)。

入力画像のピクセル数が [min_pixels, max_pixels] の範囲内にある場合、モデルはリサイズせずに元の画像を処理します。入力画像のピクセル数が max_pixels を超える場合、画像のピクセル数が max_pixels を下回るまで画像は縮小されます。

画像トークンとピクセルの変換

画像トークンあたりのピクセル数はモデルによって異なります:

  • qwen-vl-ocr-latestqwen-vl-ocr-2025-11-20:各トークンは 32×32 ピクセルに対応します。

  • qwen-vl-ocrqwen-vl-ocr-2025-08-28、およびそれ以前のモデル:各トークンは 28×28 ピクセルに対応します。

max_pixels の有効値の範囲

  • qwen-vl-ocr-latest, qwen-vl-ocr-2025-11-20

    • デフォルト値:8388608 (つまり 8192×32×32)

    • 最大値:30720000 (つまり 30000×32×32)

  • qwen-vl-ocr, qwen-vl-ocr-2025-08-28、およびそれ以前のモデル

    • デフォルト値:6422528 (つまり 8192×28×28)

    • 最大値:23520000 (つまり 30000×28×28)

例: {"type": "image_url","image_url": {"url":"https://xxxx.jpg"},"max_pixels": 8388608}

role string (必須)

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

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

応答をストリーミングモードで返すかどうかを指定します。

有効値:

  • false:モデルが生成を完了した後に、完全な応答を一度に返します。

  • true:モデルが生成するにつれてデータブロックを返します。クライアントはブロックを順次読み取って完全な応答を再構築する必要があります。

stream_options object (任意)

ストリーミング出力の構成設定。このパラメーターは、stream パラメーターが true に設定されている場合にのみ適用されます。

プロパティ

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

ストリームの最後のデータブロックにトークン使用量情報を含めるかどうかを指定します。

有効値:

  • true

  • false

max_tokens integer (任意)

出力で生成するトークンの最大数。生成されたコンテンツがこの値を超えると、応答は切り捨てられます。

  • qwen-vl-ocr-latestqwen-vl-ocr-2025-11-20、および qwen-vl-ocr-2024-10-28 の場合、デフォルト値と最大値はモデルの最大出力長と同じです。詳細については、「利用可能性」をご参照ください。

  • qwen-vl-ocr, qwen-vl-ocr-2025-04-13, and qwen-vl-ocr-2025-08-28 の場合、デフォルト値と最大値は 4096 です。

    このパラメーターの値を 4097 から 8192 の間の数値に増やすには、modelstudio@service.aliyun.com にメールを送信してください。メールには、Alibaba Cloud アカウント ID、画像タイプ (ドキュメント、e コマース、契約書など)、モデル名、推定される 1 秒あたりのクエリ数 (QPS) と 1 日あたりの合計リクエスト数、およびモデル出力が 4096 トークンを超えるリクエストの割合を含める必要があります。

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

出力トークンの対数確率を返すかどうかを指定します。有効値:

  • true

  • false

top_logprobs integer (任意) デフォルト: 0

各生成ステップで返す最も可能性の高いトークンの数を指定します。

有効値の範囲: [0, 5]

このパラメーターは、logprobstrue の場合にのみ有効です。

temperature float (任意) デフォルト: 0.01

サンプリング温度は、モデルによって生成されるテキストの多様性を制御します。

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

有効値の範囲: [0, 2)

temperature と top_p はどちらも生成されるテキストの多様性を制御するため、どちらか一方のみを設定できます。

デフォルト値の使用を推奨します。

top_p float (任意) デフォルト: 0.001

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

値が高いほど多様なテキストになります。値が低いほど決定論的なテキストになります。

有効値の範囲: (0, 1.0]

temperature と top_p はどちらもテキストの多様性を制御するため、どちらか一方のみを設定する必要があります。

デフォルト値の使用を推奨します。

top_k integer (任意) デフォルト: 1

生成中のサンプリングのための候補セットのサイズを指定します。たとえば、値を 50 に設定すると、スコアが最も高い 50 個のトークンのみがランダムサンプリングの候補セットとして使用されます。値が大きいほどランダム性が増し、小さいほど決定論性が増します。値が None または 100 より大きい場合、top_k ポリシーは有効になりません。この場合、top_p ポリシーのみが有効になります。

値は 0 以上である必要があります。

このパラメーターは標準の OpenAI パラメーターではありません。Python SDK を使用する場合、このパラメーターを extra_body オブジェクトに配置します。例: extra_body={"top_k": xxx}。Node.js SDK または HTTP を使用する場合、このパラメーターをトップレベルで渡します。

デフォルト値の使用を推奨します。

repetition_penalty float (任意) デフォルト: 1.0

モデル生成中の繰り返しシーケンスに対するペナルティ。値が高いほど、生成されるテキストの繰り返しを減らすことができます。値 1.0 はペナルティが適用されないことを意味します。

デフォルト値の使用を推奨します。

presence_penalty float (任意) デフォルト: 0.0

モデルによって生成されるテキスト内のコンテンツの繰り返しを制御します。

値は -2.0 から 2.0 の範囲内である必要があります。正の値は繰り返しを減らし、負の値はそれを増やします。

クリエイティブライティングなど、多様性、創造性、またはブレインストーミングを必要とするシナリオでは、この値を増やします。技術文書や公式テキストなど、一貫性と用語の正確性を重視するシナリオでは、この値を減らします。

仕組み

このパラメーターの値が正の場合、モデルはテキスト内に既に存在するトークンにペナルティを適用します。ペナルティは、トークンが何回出現するかに関係なく適用されます。これにより、これらのトークンが再出現する可能性が低くなり、コンテンツの繰り返しが減少し、単語の多様性が増加します。

デフォルト値の使用を推奨します。

seed integer (任意)

乱数シード。シードを使用すると、再現可能な結果が保証されます。呼び出しで同じ seed 値を渡し、他のパラメーターを変更しない場合、モデルは決定論的な結果を返します。

有効値の範囲: [0,2<sup>31</sup>−1]

デフォルト値の使用を推奨します。

stop string or array (任意)

ストップワードを指定します。stop で指定された文字列または token_id が生成されたテキストに現れると、生成は直ちに停止します。

このパラメーターを使用して、禁止用語を指定し、モデルの出力を制御できます。

stop が配列の場合、token_id と文字列を要素として混在させることはできません。たとえば、["Hello",104307] を指定することはできません。

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

{
  "id": "chatcmpl-ba21fa91-dcd6-4dad-90cc-6d49c3c39094",
  "choices": [
    {
      "finish_reason": "stop",
      "index": 0,
      "logprobs": null,
      "message": {
        "content": "```json\n{\n    \"seller_name\": \"null\",\n    \"buyer_name\": \"Cai Yingshi\",\n    \"price_excluding_tax\": \"230769.23\",\n    \"organization_code\": \"null\",\n    \"invoice_code\": \"142011726001\"\n}\n```",
        "refusal": null,
        "role": "assistant",
        "annotations": null,
        "audio": null,
        "function_call": null,
        "tool_calls": null
      }
    }
  ],
  "created": 1763283287,
  "model": "qwen-vl-ocr-latest",
  "object": "chat.completion",
  "service_tier": null,
  "system_fingerprint": null,
  "usage": {
    "completion_tokens": 72,
    "prompt_tokens": 1185,
    "total_tokens": 1257,
    "completion_tokens_details": {
      "accepted_prediction_tokens": null,
      "audio_tokens": null,
      "reasoning_tokens": null,
      "rejected_prediction_tokens": null,
      "text_tokens": 72
    },
    "prompt_tokens_details": {
      "audio_tokens": null,
      "cached_tokens": null,
      "image_tokens": 1001,
      "text_tokens": 184
    }
  }
}

id string

このリクエストの一意の識別子。

choices array

モデルから生成されたコンテンツの配列。

プロパティ

finish_reason string

モデルが生成を停止した理由。

次の 2 つの状況を考慮してください:

  • 出力が完了した場合、値は stop です。

  • 出力が長すぎるために生成が終了した場合、停止理由は length です。

index integer

choices 配列内の現在のオブジェクトのインデックス。

message object

モデルによって生成されたメッセージ。

プロパティ

content string

大規模言語モデル (LLM) によって返されたコンテンツ。

refusal string

このパラメーターは常に null です。

role string

メッセージのロール。値は常に assistant です。

audio object

このパラメーターは常に null です。

function_call object

このパラメーターは常に null です。

tool_calls array

このパラメーターは常に null です。

created integer

このリクエストが作成されたときの UNIX タイムスタンプ。

model string

このリクエストに使用されたモデル。

object string

値は常に chat.completion です。

service_tier string

このパラメーターは常に null です。

system_fingerprint string

このパラメーターは常に null です。

usage object

このリクエストのトークン使用量情報。

プロパティ

completion_tokens integer

モデルの出力に含まれるトークンの数。

prompt_tokens integer

入力に含まれるトークンの数。

total_tokens integer

消費されたトークンの総数。これは prompt_tokenscompletion_tokens の合計です。

completion_tokens_details object

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

プロパティ

accepted_prediction_tokens integer

このパラメーターは常に null です。

audio_tokens integer

このパラメーターは常に null です。

reasoning_tokens integer

このパラメーターは常に null です。

text_tokens integer

モデルのテキスト出力に対応するトークンの数。

rejected_prediction_tokens integer

このパラメーターは常に null です。

prompt_tokens_details object

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

プロパティ

audio_tokens integer

このパラメーターは常に null です。

cached_tokens integer

このパラメーターは常に null です。

text_tokens integer

モデルのテキスト入力に対応するトークンの数。

image_tokens integer

モデルの画像入力に対応するトークンの数。

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

{"id":"chatcmpl-f6fbdc0d-78d6-418f-856f-f099c2e4859b","choices":[{"delta":{"content":"","function_call":null,"refusal":null,"role":"assistant","tool_calls":null},"finish_reason":null,"index":0,"logprobs":null}],"created":1764139204,"model":"qwen-vl-ocr-latest","object":"chat.completion.chunk","service_tier":null,"system_fingerprint":null,"usage":null}
{"id":"chatcmpl-f6fbdc0d-78d6-418f-856f-f099c2e4859b","choices":[{"delta":{"content":"```","function_call":null,"refusal":null,"role":null,"tool_calls":null},"finish_reason":null,"index":0,"logprobs":null}],"created":1764139204,"model":"qwen-vl-ocr-latest","object":"chat.completion.chunk","service_tier":null,"system_fingerprint":null,"usage":null}
{"id":"chatcmpl-f6fbdc0d-78d6-418f-856f-f099c2e4859b","choices":[{"delta":{"content":"json","function_call":null,"refusal":null,"role":null,"tool_calls":null},"finish_reason":null,"index":0,"logprobs":null}],"created":1764139204,"model":"qwen-vl-ocr-latest","object":"chat.completion.chunk","service_tier":null,"system_fingerprint":null,"usage":null}
{"id":"chatcmpl-f6fbdc0d-78d6-418f-856f-f099c2e4859b","choices":[{"delta":{"content":"\n","function_call":null,"refusal":null,"role":null,"tool_calls":null},"finish_reason":null,"index":0,"logprobs":null}],"created":1764139204,"model":"qwen-vl-ocr-latest","object":"chat.completion.chunk","service_tier":null,"system_fingerprint":null,"usage":null}
{"id":"chatcmpl-f6fbdc0d-78d6-418f-856f-f099c2e4859b","choices":[{"delta":{"content":"{\n","function_call":null,"refusal":null,"role":null,"tool_calls":null},"finish_reason":null,"index":0,"logprobs":null}],"created":1764139204,"model":"qwen-vl-ocr-latest","object":"chat.completion.chunk","service_tier":null,"system_fingerprint":null,"usage":null}
{"id":"chatcmpl-f6fbdc0d-78d6-418f-856f-f099c2e4859b","choices":[{"delta":{"content":"   ","function_call":null,"refusal":null,"role":null,"tool_calls":null},"finish_reason":null,"index":0,"logprobs":null}],"created":1764139204,"model":"qwen-vl-ocr-latest","object":"chat.completion.chunk","service_tier":null,"system_fingerprint":null,"usage":null}
......
{"id":"chatcmpl-f6fbdc0d-78d6-418f-856f-f099c2e4859b","choices":[{"delta":{"content":"```","function_call":null,"refusal":null,"role":null,"tool_calls":null},"finish_reason":null,"index":0,"logprobs":null}],"created":1764139204,"model":"qwen-vl-ocr-latest","object":"chat.completion.chunk","service_tier":null,"system_fingerprint":null,"usage":null}
{"id":"chatcmpl-f6fbdc0d-78d6-418f-856f-f099c2e4859b","choices":[{"delta":{"content":"","function_call":null,"refusal":null,"role":null,"tool_calls":null},"finish_reason":"stop","index":0,"logprobs":null}],"created":1764139204,"model":"qwen-vl-ocr-latest","object":"chat.completion.chunk","service_tier":null,"system_fingerprint":null,"usage":null}
{"id":"chatcmpl-f6fbdc0d-78d6-418f-856f-f099c2e4859b","choices":[],"created":1764139204,"model":"qwen-vl-ocr-latest","object":"chat.completion.chunk","service_tier":null,"system_fingerprint":null,"usage":{"completion_tokens":141,"prompt_tokens":513,"total_tokens":654,"completion_tokens_details":{"accepted_prediction_tokens":null,"audio_tokens":null,"reasoning_tokens":null,"rejected_prediction_tokens":null,"text_tokens":141},"prompt_tokens_details":{"audio_tokens":null,"cached_tokens":null,"image_tokens":332,"text_tokens":181}}}

id string

この呼び出しの一意の識別子。各チャンクオブジェクトは同じ ID を持ちます。

choices array

モデルから生成されたコンテンツの配列。include_usage パラメーターが true に設定されている場合、このフィールドは最後のチャンクで空になります。

プロパティ

delta object

ストリーミングモードで返される出力コンテンツ。

プロパティ

content string

モデルによって返されたコンテンツ。

function_call object

このパラメーターは現在 null に設定されています。

refusal object

このパラメーターは現在 null に設定されています。

role string

メッセージオブジェクトのロール。このパラメーターは最初のチャンクでのみ返されます。

finish_reason string

モデルは次の 3 つの理由のいずれかで生成を停止します:

  • 出力が完了した場合、値は stop です。

  • 生成中の値は null です。

  • length:出力が最大長に達したため、切り捨てられました。

index integer

choices 配列内の現在の応答のインデックス。

created integer

このリクエストが作成されたときの UNIX タイムスタンプ。各チャンクは同じタイムスタンプを持ちます。

model string

このリクエストに使用されたモデル。

object string

値は常に chat.completion.chunk です。

service_tier string

このパラメーターは現在 null に設定されています。

system_fingerprint string

このパラメーターは現在 null に設定されています。

usage object

リクエストのトークン使用量統計。このオブジェクトは、include_usage パラメーターが true に設定されている場合にのみ、最後のチャンクで返されます。

プロパティ

completion_tokens integer

生成された出力のトークン数。

prompt_tokens integer

入力プロンプトのトークン数。

total_tokens integer

リクエストで使用されたトークンの総数。これは prompt_tokenscompletion_tokens の合計です。

completion_tokens_details object

モデルの出力におけるトークンの詳細な内訳。

プロパティ

accepted_prediction_tokens integer

このパラメーターは現在 null に設定されています。

audio_tokens integer

このパラメーターは現在 null に設定されています。

reasoning_tokens integer

このパラメーターは現在 null に設定されています。

text_tokens integer

モデルのテキスト出力に対応するトークンの数。

rejected_prediction_tokens integer

このパラメーターは現在 null に設定されています。

prompt_tokens_details object

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

プロパティ

audio_tokens integer

このパラメーターは現在 null に設定されています。

cached_tokens integer

このパラメーターは現在 null に設定されています。

text_tokens integer

モデルのテキスト入力に対応するトークンの数。

image_tokens integer

モデルの画像入力に対応するトークンの数。

DashScope

シンガポールリージョン

HTTP 呼び出しの場合、endpointPOST https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation です。

SDK 呼び出しの場合、base_url を次のように設定します:

Python コード

dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'

Java コード

  • 方法 1:

    import com.alibaba.dashscope.protocol.Protocol;
    MultiModalConversation conv = new MultiModalConversation(Protocol.HTTP.getValue(), "https://dashscope-intl.aliyuncs.com/api/v1");
  • 方法 2:

    import com.alibaba.dashscope.utils.Constants;
    Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";

米国 (バージニア) リージョン

HTTP 呼び出しの場合、endpointPOST https://dashscope-us.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation です。

SDK 呼び出しの場合、base_url を次のように設定します:

Python コード

dashscope.base_http_api_url = 'https://dashscope-us.aliyuncs.com/api/v1'

Java コード

  • 方法 1:

    import com.alibaba.dashscope.protocol.Protocol;
    MultiModalConversation conv = new MultiModalConversation(Protocol.HTTP.getValue(), "https://dashscope-us.aliyuncs.com/api/v1");
  • 方法 2:

    import com.alibaba.dashscope.utils.Constants;
    Constants.baseHttpApiUrl="https://dashscope-us.aliyuncs.com/api/v1";

中国 (北京) リージョン

HTTP 呼び出しの場合、endpointPOST https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation です。

SDK 呼び出しの場合、base_url を設定する必要はありません。

API キーの取得環境変数としての設定が必要です。DashScope SDK を使用する場合は、DashScope SDK のインストールも必要です。

リクエストボディ

高精度認識

以下のコードは、組み込みの高精度認識タスクを呼び出す方法の例を示しています。詳細については、組み込みタスクの呼び出しをご参照ください。

import os
import dashscope

# 以下はシンガポールリージョンのベース URL です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1 に変更してください。
# 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に変更してください。
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'

messages = [{
            "role": "user",
            "content": [{
                "image": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/ctdzex/biaozhun.jpg",
                # 入力画像の最小ピクセルしきい値。画像がこの値より小さい場合、総ピクセル数が min_pixels を超えるまで拡大されます。
                "min_pixels": 32 * 32 * 3,
                # 入力画像の最大ピクセルしきい値。画像がこの値より大きい場合、総ピクセル数が max_pixels を下回るまで縮小されます。
                "max_pixels": 32 * 32 * 8192,
                # 自動画像回転を有効にするかどうかを指定します。
                "enable_rotate": False}]
            }]
            
response = dashscope.MultiModalConversation.call(
    # 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: api_key="sk-xxx",
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    model='qwen-vl-ocr-2025-11-20',
    messages=messages,
    # 組み込みタスクを高精度認識に設定します。
    ocr_options={"task": "advanced_recognition"}
)
# 高精度認識タスクは結果をプレーンテキストで返します。
print(response["output"]["choices"][0]["message"].content[0]["text"])
// dashscope SDK バージョン >= 2.21.8
import java.util.Arrays;
import java.util.Collections;
import java.util.Map;
import java.util.HashMap;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.aigc.multimodalconversation.OcrOptions;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;

public class Main {

    static {
        // 以下はシンガポールリージョンのベース URL です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1 に変更してください。
        // 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に変更してください。
        Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
    }
    
    public static void simpleMultiModalConversationCall()
            throws ApiException, NoApiKeyException, UploadFileException {
        MultiModalConversation conv = new MultiModalConversation();
        Map<String, Object> map = new HashMap<>();
        map.put("image", "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/ctdzex/biaozhun.jpg");
        // 入力画像の最大ピクセルしきい値。画像がこの値より大きい場合、総ピクセル数が max_pixels を下回るまで縮小されます。
        map.put("max_pixels", 8388608);
        // 入力画像の最小ピクセルしきい値。画像がこの値より小さい場合、総ピクセル数が min_pixels を超えるまで拡大されます。
        map.put("min_pixels", 3072);
        // 自動画像回転を有効にするかどうかを指定します。
        map.put("enable_rotate", false);
        
        // 組み込み OCR タスクを設定します。
        OcrOptions ocrOptions = OcrOptions.builder()
                .task(OcrOptions.Task.ADVANCED_RECOGNITION)
                .build();
        MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue())
                .content(Arrays.asList(
                        map
                        )).build();
        MultiModalConversationParam param = MultiModalConversationParam.builder()
                // 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: .apiKey("sk-xxx")
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .model("qwen-vl-ocr-2025-11-20")
                .message(userMessage)
                .ocrOptions(ocrOptions)
                .build();
        MultiModalConversationResult result = conv.call(param);
        System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("text"));
    }

    public static void main(String[] args) {
        try {
            simpleMultiModalConversationCall();
        } catch (ApiException | NoApiKeyException | UploadFileException e) {
            System.out.println(e.getMessage());
        }
        System.exit(0);
    }
}
# ======= 重要 =======
# API キーはリージョンによって異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
# 以下はシンガポールリージョンのベース URL です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation に変更してください。
# 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation に変更してください。
# === 実行前にこのコメントを削除してください ===

curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '
{
  "model": "qwen-vl-ocr-2025-11-20",
  "input": {
    "messages": [
      {
        "role": "user",
        "content": [
          {
            "image": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/ctdzex/biaozhun.jpg",
            "min_pixels": 3072,
            "max_pixels": 8388608,
            "enable_rotate": false
          }
        ]
      }
    ]
  },
  "parameters": {
    "ocr_options": {
      "task": "advanced_recognition"
    }
  }
}
'

情報抽出

以下のコードは、組み込みの情報抽出タスクを呼び出す方法の例を示しています。詳細については、組み込みタスクの呼び出しをご参照ください。

# [pip install -U dashscope] を使用して SDK を更新します

import os
import dashscope
# 以下はシンガポールリージョンのベース URL です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1 に変更してください。
# 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に変更してください。
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'

messages = [
      {
        "role":"user",
        "content":[
          {
              "image":"http://duguang-labelling.oss-cn-shanghai.aliyuncs.com/demo_ocr/receipt_zh_demo.jpg",
              "min_pixels": 3072,
              "max_pixels": 8388608,
              "enable_rotate": False
          }
        ]
      }
    ]

params = {
  "ocr_options":{
    "task": "key_information_extraction",
    "task_config": {
      "result_schema": {
          "Ride Date": "画像内の乗車日時に対応し、YYYY-MM-DD 形式、例: 2025-03-05",
          "Invoice Code": "画像から請求書コードを抽出します。通常は数字または文字の組み合わせです",
          "Invoice Number": "請求書から番号を抽出します。通常は数字のみで構成されます。"
      }
    }
  }
}

response = dashscope.MultiModalConversation.call(
    # API キーはリージョンによって異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    model='qwen-vl-ocr-2025-11-20',
    messages=messages,
    **params)

print(response.output.choices[0].message.content[0]["ocr_result"])
import java.util.Arrays;
import java.util.Collections;
import java.util.Map;
import java.util.HashMap;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.aigc.multimodalconversation.OcrOptions;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.google.gson.JsonObject;
import com.alibaba.dashscope.utils.Constants;

public class Main {

    static {
        // 以下はシンガポールリージョンのベース URL です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1 に変更してください。
        // 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に変更してください。
        Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
    }
    
    public static void simpleMultiModalConversationCall()
            throws ApiException, NoApiKeyException, UploadFileException {
        MultiModalConversation conv = new MultiModalConversation();
        Map<String, Object> map = new HashMap<>();
        map.put("image", "http://duguang-labelling.oss-cn-shanghai.aliyuncs.com/demo_ocr/receipt_zh_demo.jpg");
        // 入力画像の最大ピクセルしきい値。画像がこの値より大きい場合、総ピクセル数が max_pixels を下回るまで縮小されます。
        map.put("max_pixels", 8388608);
        // 入力画像の最小ピクセルしきい値。画像がこの値より小さい場合、総ピクセル数が min_pixels を超えるまで拡大されます。
        map.put("min_pixels", 3072);
         // 自動画像回転を有効にするかどうかを指定します。
        map.put("enable_rotate", false);
        
        MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue())
                .content(Arrays.asList(
                        map
                        )).build();

        // メインの JSON オブジェクトを作成します。
        JsonObject resultSchema = new JsonObject();
        resultSchema.addProperty("Ride Date", "画像内の乗車日時に対応し、YYYY-MM-DD 形式、例: 2025-03-05");
        resultSchema.addProperty("Invoice Code", "画像から請求書コードを抽出します。通常は数字または文字の組み合わせです");
        resultSchema.addProperty("Invoice Number", "請求書から番号を抽出します。通常は数字のみで構成されます。");


        // 組み込み OCR タスクを設定します。
        OcrOptions ocrOptions = OcrOptions.builder()
                .task(OcrOptions.Task.KEY_INFORMATION_EXTRACTION)
                .taskConfig(OcrOptions.TaskConfig.builder()
                        .resultSchema(resultSchema)
                        .build())
                .build();

        MultiModalConversationParam param = MultiModalConversationParam.builder()
                // API キーはリージョンによって異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
                // 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: .apiKey("sk-xxx")
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .model("qwen-vl-ocr-2025-11-20")
                .message(userMessage)
                .ocrOptions(ocrOptions)
                .build();
        MultiModalConversationResult result = conv.call(param);
        System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("ocr_result"));
    }

    public static void main(String[] args) {
        try {
            simpleMultiModalConversationCall();
        } catch (ApiException | NoApiKeyException | UploadFileException e) {
            System.out.println(e.getMessage());
        }
        System.exit(0);
    }
}
# ======= 重要 =======
# API キーはリージョンによって異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
# 以下はシンガポールリージョンのベース URL です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation に変更してください。
# 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation に変更してください。
# === 実行前にこのコメントを削除してください ===

curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '
{
  "model": "qwen-vl-ocr-2025-11-20",
  "input": {
    "messages": [
      {
        "role": "user",
        "content": [
          {
            "image": "http://duguang-labelling.oss-cn-shanghai.aliyuncs.com/demo_ocr/receipt_zh_demo.jpg",
            "min_pixels": 3072,
            "max_pixels": 8388608,
            "enable_rotate": false
          }
        ]
      }
    ]
  },
  "parameters": {
    "ocr_options": {
      "task": "key_information_extraction",
      "task_config": {
        "result_schema": {
            "Ride Date": "画像内の乗車日時に対応し、YYYY-MM-DD 形式、例: 2025-03-05",
            "Invoice Code": "画像から請求書コードを抽出します。通常は数字または文字の組み合わせです",
            "Invoice Number": "請求書から番号を抽出します。通常は数字のみで構成されます。"
        }
    }
    }
  }
}
'

テーブル解析

以下のコードは、組み込みのテーブル解析タスクを呼び出す方法の例を示しています。詳細については、組み込みタスクの呼び出しをご参照ください。

import os
import dashscope
# 以下はシンガポールリージョンのベース URL です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1 に変更してください。
# 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に変更してください。
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'

messages = [{
            "role": "user",
            "content": [{
                "image": "http://duguang-llm.oss-cn-hangzhou.aliyuncs.com/llm_data_keeper/data/doc_parsing/tables/photo/eng/17.jpg",
                # 入力画像の最小ピクセルしきい値。画像がこの値より小さい場合、総ピクセル数が min_pixels を超えるまで拡大されます。
                "min_pixels": 32 * 32 * 3,
                # 入力画像の最大ピクセルしきい値。画像がこの値より大きい場合、総ピクセル数が max_pixels を下回るまで縮小されます。
                "max_pixels": 32 * 32 * 8192,
                # 自動画像回転を有効にするかどうかを指定します。
                "enable_rotate": False}]
           }]
           
response = dashscope.MultiModalConversation.call(
    # API キーはリージョンによって異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
    # 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: api_key="sk-xxx",
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    model='qwen-vl-ocr-2025-11-20',
    messages=messages,
    # 組み込みタスクをテーブル解析に設定します。
    ocr_options= {"task": "table_parsing"}
)
# テーブル解析タスクは結果を HTML 形式で返します。
print(response["output"]["choices"][0]["message"].content[0]["text"])
import java.util.Arrays;
import java.util.Collections;
import java.util.Map;
import java.util.HashMap;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.aigc.multimodalconversation.OcrOptions;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;

public class Main {

    static {
        // 以下はシンガポールリージョンのベース URL です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1 に変更してください。
        // 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に変更してください。
        Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
    }
    
    public static void simpleMultiModalConversationCall()
            throws ApiException, NoApiKeyException, UploadFileException {
        MultiModalConversation conv = new MultiModalConversation();
        Map<String, Object> map = new HashMap<>();
        map.put("image", "https://duguang-llm.oss-cn-hangzhou.aliyuncs.com/llm_data_keeper/data/doc_parsing/tables/photo/eng/17.jpg");
        // 入力画像の最大ピクセルしきい値。画像がこの値より大きい場合、総ピクセル数が max_pixels を下回るまで縮小されます。
        map.put("max_pixels", 8388608);
        // 入力画像の最小ピクセルしきい値。画像がこの値より小さい場合、総ピクセル数が min_pixels を超えるまで拡大されます。
        map.put("min_pixels",3072);
        // 自動画像回転を有効にするかどうかを指定します。
        map.put("enable_rotate", false);
        
        // 組み込み OCR タスクを設定します。
        OcrOptions ocrOptions = OcrOptions.builder()
                .task(OcrOptions.Task.TABLE_PARSING)
                .build();
        MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue())
                .content(Arrays.asList(
                        map
                        )).build();
        MultiModalConversationParam param = MultiModalConversationParam.builder()
                // API キーはリージョンによって異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
                // 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: .apiKey("sk-xxx")
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .model("qwen-vl-ocr-2025-11-20")
                .message(userMessage)
                .ocrOptions(ocrOptions)
                .build();
        MultiModalConversationResult result = conv.call(param);
        System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("text"));
    }

    public static void main(String[] args) {
        try {
            simpleMultiModalConversationCall();
        } catch (ApiException | NoApiKeyException | UploadFileException e) {
            System.out.println(e.getMessage());
        }
        System.exit(0);
    }
}
# ======= 重要 =======
# API キーはリージョンによって異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
# 以下はシンガポールリージョンのベース URL です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation に変更してください。
# 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation に変更してください。
# === 実行前にこのコメントを削除してください ===

curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '
{
  "model": "qwen-vl-ocr-2025-11-20",
  "input": {
    "messages": [
      {
        "role": "user",
        "content": [
          {
            "image": "http://duguang-llm.oss-cn-hangzhou.aliyuncs.com/llm_data_keeper/data/doc_parsing/tables/photo/eng/17.jpg",
            "min_pixels": 3072,
            "max_pixels": 8388608,
            "enable_rotate": false
          }
        ]
      }
    ]
  },
  "parameters": {
    "ocr_options": {
      "task": "table_parsing"
    }
  }
}
'

ドキュメント解析

以下のコードは、組み込みのドキュメント解析タスクを呼び出す方法の例を示しています。詳細については、組み込みタスクの呼び出しをご参照ください。

import os
import dashscope

# 以下はシンガポールリージョンのベース URL です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1 に変更してください。
# 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に変更してください。
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'

messages = [{
            "role": "user",
            "content": [{
                "image": "https://img.alicdn.com/imgextra/i1/O1CN01ukECva1cisjyK6ZDK_!!6000000003635-0-tps-1500-1734.jpg",
                # 入力画像の最小ピクセルしきい値。画像がこの値より小さい場合、総ピクセル数が min_pixels を超えるまで拡大されます。
                "min_pixels": 32 * 32 * 3,
                # 入力画像の最大ピクセルしきい値。画像がこの値より大きい場合、総ピクセル数が max_pixels を下回るまで縮小されます。
                "max_pixels": 32 * 32 * 8192,
                # 自動画像回転を有効にするかどうかを指定します。
                "enable_rotate": False}]
            }]
            
response = dashscope.MultiModalConversation.call(
    # API キーはリージョンによって異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
    # 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: api_key="sk-xxx",
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    model='qwen-vl-ocr-2025-11-20',
    messages=messages,
    # 組み込みタスクをドキュメント解析に設定します。
    ocr_options= {"task": "document_parsing"}
)
# ドキュメント解析タスクは結果を LaTeX 形式で返します。
print(response["output"]["choices"][0]["message"].content[0]["text"])
import java.util.Arrays;
import java.util.Collections;
import java.util.Map;
import java.util.HashMap;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.aigc.multimodalconversation.OcrOptions;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;

public class Main {

    static {
        // 以下はシンガポールリージョンのベース URL です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1 に変更してください。
        // 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に変更してください。
        Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
    }
    
    public static void simpleMultiModalConversationCall()
            throws ApiException, NoApiKeyException, UploadFileException {
        MultiModalConversation conv = new MultiModalConversation();
        Map<String, Object> map = new HashMap<>();
        map.put("image", "https://img.alicdn.com/imgextra/i1/O1CN01ukECva1cisjyK6ZDK_!!6000000003635-0-tps-1500-1734.jpg");
        // 入力画像の最大ピクセルしきい値。画像がこの値より大きい場合、総ピクセル数が max_pixels を下回るまで縮小されます。
        map.put("max_pixels", 8388608);
        // 入力画像の最小ピクセルしきい値。画像がこの値より小さい場合、総ピクセル数が min_pixels を超えるまで拡大されます。
        map.put("min_pixels", 3072);
        // 自動画像回転を有効にするかどうかを指定します。
        map.put("enable_rotate", false);
        
        // 組み込み OCR タスクを設定します。
        OcrOptions ocrOptions = OcrOptions.builder()
                .task(OcrOptions.Task.DOCUMENT_PARSING)
                .build();
        MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue())
                .content(Arrays.asList(
                        map
                        )).build();
        MultiModalConversationParam param = MultiModalConversationParam.builder()
                // API キーはリージョンによって異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
                // 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: .apiKey("sk-xxx")
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .model("qwen-vl-ocr-2025-11-20")
                .message(userMessage)
                .ocrOptions(ocrOptions)
                .build();
        MultiModalConversationResult result = conv.call(param);
        System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("text"));
    }

    public static void main(String[] args) {
        try {
            simpleMultiModalConversationCall();
        } catch (ApiException | NoApiKeyException | UploadFileException e) {
            System.out.println(e.getMessage());
        }
        System.exit(0);
    }
}
# ======= 重要 =======
# API キーはリージョンによって異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
# 以下はシンガポールリージョンのベース URL です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation に変更してください。
# 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation に変更してください。
# === 実行前にこのコメントを削除してください ===

curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation'\
  --header "Authorization: Bearer $DASHSCOPE_API_KEY"\
  --header 'Content-Type: application/json'\
  --data '{
"model": "qwen-vl-ocr-2025-11-20",
"input": {
  "messages": [
    {
      "role": "user",
      "content": [{
          "image": "https://img.alicdn.com/imgextra/i1/O1CN01ukECva1cisjyK6ZDK_!!6000000003635-0-tps-1500-1734.jpg",
          "min_pixels": 3072,
          "max_pixels": 8388608,
          "enable_rotate": false
        }
      ]
    }
  ]
},
"parameters": {
  "ocr_options": {
    "task": "document_parsing"
  }
}
}
'

数式認識

以下のコードは、組み込みの数式認識タスクを呼び出す方法の例を示しています。詳細については、組み込みタスクの呼び出しをご参照ください。
import os
import dashscope

# 以下はシンガポールリージョンのベース URL です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1 に変更してください。
# 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に変更してください。
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'

messages = [{
    "role": "user",
    "content": [{
        "image": "http://duguang-llm.oss-cn-hangzhou.aliyuncs.com/llm_data_keeper/data/formula_handwriting/test/inline_5_4.jpg",
        # 入力画像の最小ピクセルしきい値。画像がこの値より小さい場合、総ピクセル数が min_pixels を超えるまで拡大されます。
        "min_pixels": 32 * 32 * 3,
        # 入力画像の最大ピクセルしきい値。画像がこの値より大きい場合、総ピクセル数が max_pixels を下回るまで縮小されます。
        "max_pixels": 32 * 32 * 8192,
        # 自動画像回転を有効にするかどうかを指定します。
        "enable_rotate": False
    }]
}]
            
response = dashscope.MultiModalConversation.call(
    # API キーはリージョンによって異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
    # 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: api_key="sk-xxx",
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    model='qwen-vl-ocr-2025-11-20',
    messages=messages,
    # 組み込みタスクを数式認識に設定します。
    ocr_options= {"task": "formula_recognition"}
)
# 数式認識タスクは結果を LaTeX 形式で返します。
print(response["output"]["choices"][0]["message"].content[0]["text"])
import java.util.Arrays;
import java.util.Collections;
import java.util.Map;
import java.util.HashMap;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.aigc.multimodalconversation.OcrOptions;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;

public class Main {

    static {
        // 以下はシンガポールリージョンのベース URL です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1 に変更してください。
        // 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に変更してください。
        Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
    }
    
    public static void simpleMultiModalConversationCall()
            throws ApiException, NoApiKeyException, UploadFileException {
        MultiModalConversation conv = new MultiModalConversation();
        Map<String, Object> map = new HashMap<>();
        map.put("image", "http://duguang-llm.oss-cn-hangzhou.aliyuncs.com/llm_data_keeper/data/formula_handwriting/test/inline_5_4.jpg");
        // 入力画像の最大ピクセルしきい値。画像がこの値より大きい場合、総ピクセル数が max_pixels を下回るまで縮小されます。
        map.put("max_pixels", 8388608);
        // 入力画像の最小ピクセルしきい値。画像がこの値より小さい場合、総ピクセル数が min_pixels を超えるまで拡大されます。
        map.put("min_pixels", 3072);
        // 自動画像回転を有効にするかどうかを指定します。
        map.put("enable_rotate", false);
        
        // 組み込み OCR タスクを設定します。
        OcrOptions ocrOptions = OcrOptions.builder()
                .task(OcrOptions.Task.FORMULA_RECOGNITION)
                .build();
        MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue())
                .content(Arrays.asList(
                        map
                        )).build();
        MultiModalConversationParam param = MultiModalConversationParam.builder()
                // API キーはリージョンによって異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
                // 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: .apiKey("sk-xxx")
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .model("qwen-vl-ocr-2025-11-20")
                .message(userMessage)
                .ocrOptions(ocrOptions)
                .build();
        MultiModalConversationResult result = conv.call(param);
        System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("text"));
    }

    public static void main(String[] args) {
        try {
            simpleMultiModalConversationCall();
        } catch (ApiException | NoApiKeyException | UploadFileException e) {
            System.out.println(e.getMessage());
        }
        System.exit(0);
    }
}
# ======= 重要 =======
# API キーはリージョンによって異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
# 以下はシンガポールリージョンのベース URL です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation に変更してください。
# 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation に変更してください。
# === 実行前にこのコメントを削除してください ===

curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '
{
  "model": "qwen-vl-ocr",
  "input": {
    "messages": [
      {
        "role": "user",
        "content": [
          {
            "image": "http://duguang-llm.oss-cn-hangzhou.aliyuncs.com/llm_data_keeper/data/formula_handwriting/test/inline_5_4.jpg",
            "min_pixels": 3072,
            "max_pixels": 8388608,
            "enable_rotate": false
          }
        ]
      }
    ]
  },
  "parameters": {
    "ocr_options": {
      "task": "formula_recognition"
    }
  }
}
'

一般テキスト認識

以下のコードは、組み込みの一般テキスト認識タスクを呼び出す方法の例を示しています。詳細については、組み込みタスクの呼び出しをご参照ください。

import os
import dashscope

# 以下はシンガポールリージョンのベース URL です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1 に変更してください。
# 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に変更してください。
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'

messages = [{
            "role": "user",
            "content": [{
                "image": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/ctdzex/biaozhun.jpg",
                # 入力画像の最小ピクセルしきい値。画像がこの値より小さい場合、総ピクセル数が min_pixels を超えるまで拡大されます。
                "min_pixels": 32 * 32 * 3,
                # 入力画像の最大ピクセルしきい値。画像がこの値より大きい場合、総ピクセル数が max_pixels を下回るまで縮小されます。
                "max_pixels": 32 * 32 * 8192,
                # 自動画像回転を有効にするかどうかを指定します。
                "enable_rotate": False}]
        }]
        
response = dashscope.MultiModalConversation.call(
    # API キーはリージョンによって異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
    # 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: api_key="sk-xxx",
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    model='qwen-vl-ocr-2025-11-20',
    messages=messages,
    # 組み込みタスクを一般テキスト認識に設定します。
    ocr_options= {"task": "text_recognition"} 
)
# 一般テキスト認識タスクは結果をプレーンテキスト形式で返します。
print(response["output"]["choices"][0]["message"].content[0]["text"])
import java.util.Arrays;
import java.util.Collections;
import java.util.Map;
import java.util.HashMap;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.aigc.multimodalconversation.OcrOptions;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;

public class Main {

    static {
      // 以下はシンガポールリージョンのベース URL です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1 に変更してください。
      // 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に変更してください。
        Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
    }

    public static void simpleMultiModalConversationCall()
            throws ApiException, NoApiKeyException, UploadFileException {
        MultiModalConversation conv = new MultiModalConversation();
        Map<String, Object> map = new HashMap<>();
        map.put("image", "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/ctdzex/biaozhun.jpg");
        // 入力画像の最大ピクセルしきい値。画像がこの値より大きい場合、総ピクセル数が max_pixels を下回るまで縮小されます。
        map.put("max_pixels", 8388608);
        // 入力画像の最小ピクセルしきい値。画像がこの値より小さい場合、総ピクセル数が min_pixels を超えるまで拡大されます。
        map.put("min_pixels", 3072);
        // 自動画像回転を有効にするかどうかを指定します。
        map.put("enable_rotate", false);
        
        // 組み込みタスクを設定します。
        OcrOptions ocrOptions = OcrOptions.builder()
                .task(OcrOptions.Task.TEXT_RECOGNITION)
                .build();
        MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue())
                .content(Arrays.asList(
                        map
                        )).build();
        MultiModalConversationParam param = MultiModalConversationParam.builder()
                // API キーはリージョンによって異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
                // 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: .apiKey("sk-xxx")
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .model("qwen-vl-ocr-2025-11-20")
                .message(userMessage)
                .ocrOptions(ocrOptions)
                .build();
        MultiModalConversationResult result = conv.call(param);
        System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("text"));
    }

    public static void main(String[] args) {
        try {
            simpleMultiModalConversationCall();
        } catch (ApiException | NoApiKeyException | UploadFileException e) {
            System.out.println(e.getMessage());
        }
        System.exit(0);
    }
}
# ======= 重要 =======
# API キーはリージョンによって異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
# 以下はシンガポールリージョンのベース URL です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation に変更してください。
# 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation に変更してください。
# === 実行前にこのコメントを削除してください ===

curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation'\
  --header "Authorization: Bearer $DASHSCOPE_API_KEY"\
  --header 'Content-Type: application/json'\
  --data '{
"model": "qwen-vl-ocr-2025-11-20",
"input": {
  "messages": [
    {
      "role": "user",
      "content": [{
          "image": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/ctdzex/biaozhun.jpg",
          "min_pixels": 3072,
          "max_pixels": 8388608,
          "enable_rotate": false
        }
      ]
    }
  ]
},
"parameters": {
  "ocr_options": {
      "task": "text_recognition"
    }
}
}'

多言語認識

以下のコードは、組み込みの一般多言語認識タスクを呼び出す方法の例を示しています。詳細については、組み込みタスクの呼び出しをご参照ください。

import os
import dashscope

# 以下はシンガポールリージョンのベース URL です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1 に変更してください。
# 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に変更してください。
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'

messages = [{
            "role": "user",
            "content": [{
                "image": "https://img.alicdn.com/imgextra/i2/O1CN01VvUMNP1yq8YvkSDFY_!!6000000006629-2-tps-6000-3000.png",
                # 入力画像の最小ピクセルしきい値。画像がこの値より小さい場合、総ピクセル数が min_pixels を超えるまで拡大されます。
                "min_pixels": 32 * 32 * 3,
                # 入力画像の最大ピクセルしきい値。画像がこの値より大きい場合、総ピクセル数が max_pixels を下回るまで縮小されます。
                "max_pixels": 32 * 32 * 8192,
                # 自動画像回転を有効にするかどうかを指定します。
                "enable_rotate": False}]
            }]
            
response = dashscope.MultiModalConversation.call(
    # API キーはリージョンによって異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
    # 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: api_key="sk-xxx",
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    model='qwen-vl-ocr-2025-11-20',
    messages=messages,
    # 組み込みタスクを多言語認識に設定します。
    ocr_options={"task": "multi_lan"}
)
# 多言語認識タスクは結果をプレーンテキストで返します。
print(response["output"]["choices"][0]["message"].content[0]["text"])
import java.util.Arrays;
import java.util.Collections;
import java.util.Map;
import java.util.HashMap;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.aigc.multimodalconversation.OcrOptions;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;

public class Main {

    static {
      // 以下はシンガポールリージョンのベース URL です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1 に変更してください。
      // 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に変更してください。
        Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
    }
    
    public static void simpleMultiModalConversationCall()
            throws ApiException, NoApiKeyException, UploadFileException {
        MultiModalConversation conv = new MultiModalConversation();
        Map<String, Object> map = new HashMap<>();
        map.put("image", "https://img.alicdn.com/imgextra/i2/O1CN01VvUMNP1yq8YvkSDFY_!!6000000006629-2-tps-6000-3000.png");
        // 入力画像の最大ピクセルしきい値。画像がこの値より大きい場合、総ピクセル数が max_pixels を下回るまで縮小されます。
        map.put("max_pixels", 8388608);
        // 入力画像の最小ピクセルしきい値。画像がこの値より小さい場合、総ピクセル数が min_pixels を超えるまで拡大されます。
        map.put("min_pixels", 3072);
        // 自動画像回転を有効にするかどうかを指定します。
        map.put("enable_rotate", false);
        
        // 組み込み OCR タスクを設定します。
        OcrOptions ocrOptions = OcrOptions.builder()
                .task(OcrOptions.Task.MULTI_LAN)
                .build();
        MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue())
                .content(Arrays.asList(
                        map
                        )).build();
        MultiModalConversationParam param = MultiModalConversationParam.builder()
                // API キーはリージョンによって異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
                // 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: .apiKey("sk-xxx")
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .model("qwen-vl-ocr-2025-11-20")
                .message(userMessage)
                .ocrOptions(ocrOptions)
                .build();
        MultiModalConversationResult result = conv.call(param);
        System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("text"));
    }

    public static void main(String[] args) {
        try {
            simpleMultiModalConversationCall();
        } catch (ApiException | NoApiKeyException | UploadFileException e) {
            System.out.println(e.getMessage());
        }
        System.exit(0);
    }
}
# ======= 重要 =======
# API キーはリージョンによって異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
# 以下はシンガポールリージョンのベース URL です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation に変更してください。
# 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation に変更してください。
# === 実行前にこのコメントを削除してください ===

curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '
{
  "model": "qwen-vl-ocr-2025-11-20",
  "input": {
    "messages": [
      {
        "role": "user",
        "content": [
          {
            "image": "https://img.alicdn.com/imgextra/i2/O1CN01VvUMNP1yq8YvkSDFY_!!6000000006629-2-tps-6000-3000.png",
            "min_pixels": 3072,
            "max_pixels": 8388608,
            "enable_rotate": false
          }
        ]
      }
    ]
  },
  "parameters": {
    "ocr_options": {
      "task": "multi_lan"
    }
  }
}
'

ストリーミング出力

Python

import os
import dashscope

PROMPT_TICKET_EXTRACTION = """
列車の切符の画像から、請求書番号、列車番号、出発駅、到着駅、出発日時、座席番号、座席クラス、チケット価格、ID カード番号、乗客名を抽出してください。
キー情報を正確に抽出する必要があります。情報を省略したり、捏造したりしないでください。ぼやけている、または強い光で隠されている単一の文字は、英語の疑問符 (?) に置き換えてください。
データを次の JSON 形式で返します: {'invoice_number': 'xxx', 'departure_station': 'xxx', 'arrival_station': 'xxx', 'departure_date_and_time':'xxx', 'seat_number': 'xxx','ticket_price':'xxx', 'id_card_number': 'xxx', 'passenger_name': 'xxx'},
"""

# 以下はシンガポールリージョンのベース URL です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1 に変更してください
# 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に変更してください
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'

messages = [
    {
        "role": "user",
        "content": [
            {
                "image": "https://img.alicdn.com/imgextra/i2/O1CN01ktT8451iQutqReELT_!!6000000004408-0-tps-689-487.jpg",
                # 入力画像の最小ピクセルしきい値。画像のピクセル数がこの値を下回る場合、総ピクセル数が min_pixels を超えるまで拡大されます。
                "min_pixels": 32 * 32 * 3,
                # 入力画像の最大ピクセルしきい値。画像のピクセル数がこの値を超える場合、総ピクセル数が max_pixels を下回るまで縮小されます。
                "max_pixels": 32 * 32 * 8192},
            # 組み込みタスクが設定されていない場合、テキストフィールドでプロンプトを渡すことができます。プロンプトが渡されない場合、デフォルトのプロンプトが使用されます: 画像からテキストコンテンツのみを出力し、追加の説明やフォーマットは含めないでください。
            {
                "type": "text",
                "text": PROMPT_TICKET_EXTRACTION,
            },
        ],
    }
]
response = dashscope.MultiModalConversation.call(
    # リージョンごとに API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
    # 環境変数が設定されていない場合は、次の行を Model Studio API キーに置き換えてください: api_key="sk-xxx",
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    model="qwen-vl-ocr-2025-11-20",
    messages=messages,
    stream=True,
    incremental_output=True,
)
full_content = ""
print("Streaming output content:")
for response in response:
    try:
        print(response["output"]["choices"][0]["message"].content[0]["text"])
        full_content += response["output"]["choices"][0]["message"].content[0]["text"]
    except:
        pass
print(f"Full content: {full_content}")

Java

import java.util.*;

import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import io.reactivex.Flowable;
import com.alibaba.dashscope.utils.Constants;

public class Main {

    // 以下はシンガポールリージョンのベース URL です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1 に変更してください
    // 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に変更してください
    static {
        Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
    }

    public static void simpleMultiModalConversationCall()
            throws ApiException, NoApiKeyException, UploadFileException {
        MultiModalConversation conv = new MultiModalConversation();
        Map<String, Object> map = new HashMap<>();
        map.put("image", "https://img.alicdn.com/imgextra/i2/O1CN01ktT8451iQutqReELT_!!6000000004408-0-tps-689-487.jpg");
        // 入力画像の最大ピクセルしきい値。画像のピクセル数がこの値を超える場合、総ピクセル数が max_pixels を下回るまで縮小されます。
        map.put("max_pixels", 8388608);
        // 入力画像の最小ピクセルしきい値。画像のピクセル数がこの値を下回る場合、総ピクセル数が min_pixels を超えるまで拡大されます。
        map.put("min_pixels", 3072);
        MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue())
                .content(Arrays.asList(
                        map,
                        // 組み込みタスクが設定されていない場合、テキストフィールドでプロンプトを渡すことができます。プロンプトが渡されない場合、デフォルトのプロンプトが使用されます: 画像からテキストコンテンツのみを出力し、追加の説明やフォーマットは含めないでください。
                        Collections.singletonMap("text", "列車の切符の画像から、請求書番号、列車番号、出発駅、到着駅、出発日時、座席番号、座席クラス、チケット価格、ID カード番号、乗客名を抽出してください。キー情報を正確に抽出する必要があります。情報を省略したり、捏造したりしないでください。ぼやけている、または強い光で隠されている単一の文字は、英語の疑問符 (?) に置き換えてください。データを次の JSON 形式で返します: {\'invoice_number\': \'xxx\', \'departure_station\': \'xxx\', \'arrival_station\': \'xxx\', \'departure_date_and_time\':\'xxx\', \'seat_number\': \'xxx\',\'ticket_price\':\'xxx\', \'id_card_number\': \'xxx\', \'passenger_name\': \'xxx\'"))).build();
        MultiModalConversationParam param = MultiModalConversationParam.builder()
                // リージョンごとに API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
                // 環境変数が設定されていない場合は、次の行を Model Studio API キーに置き換えてください: .apiKey("sk-xxx")
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .model("qwen-vl-ocr-2025-11-20")
                .message(userMessage)
                .incrementalOutput(true)
                .build();
        Flowable<MultiModalConversationResult> result = conv.streamCall(param);
        result.blockingForEach(item -> {
            try {
                List<Map<String, Object>> contentList = item.getOutput().getChoices().get(0).getMessage().getContent();
                if (!contentList.isEmpty()){
                    System.out.println(contentList.get(0).get("text"));
                }//
            } catch (Exception e){
                System.exit(0);
            }
        });
    }

    public static void main(String[] args) {
        try {
            simpleMultiModalConversationCall();
        } catch (ApiException | NoApiKeyException | UploadFileException e) {
            System.out.println(e.getMessage());
        }
        System.exit(0);
    }
}

curl

# ======= 重要 =======
# リージョンごとに API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
# 以下はシンガポールリージョンのベース URL です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation に変更してください
# 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation に変更してください
# === 実行前にこのコメントを削除してください ===

curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
-H 'X-DashScope-SSE: enable' \
--data '{
    "model": "qwen-vl-ocr-2025-11-20",
    "input":{
        "messages":[
          {
            "role": "user",
            "content": [
                {
                    "image": "https://img.alicdn.com/imgextra/i2/O1CN01ktT8451iQutqReELT_!!6000000004408-0-tps-689-487.jpg",
                    "min_pixels": 3072,
                    "max_pixels": 8388608
                },
                {"type": "text", "text": "列車の切符の画像から、請求書番号、列車番号、出発駅、到着駅、出発日時、座席番号、座席クラス、チケット価格、ID カード番号、乗客名を抽出してください。キー情報を正確に抽出する必要があります。情報を省略したり、捏造したりしないでください。ぼやけている、または強い光で隠されている単一の文字は、英語の疑問符 (?) に置き換えてください。データを次の JSON 形式で返します: {\'invoice_number\': \'xxx\', \'departure_station\': \'xxx\', \'arrival_station\': \'xxx\', \'departure_date_and_time\':\'xxx\', \'seat_number\': \'xxx\',\'ticket_price\':\'xxx\', \'id_card_number\': \'xxx\', \'passenger_name\': \'xxx\'}"}
            ]
          }
        ]
    },
    "parameters": {
        "incremental_output": true
    }
}'

model string (必須)

モデル名。サポート対象モデルのリストについては、「<a baseurl="t3183345_v2_1_0.xdita" data-node="5088954" data-root="85177" data-tag="xref" href="t2751232.xdita#8442951a76clt" id="b9f5555f63h80">Qwen-OCR</a>」をご参照ください。

messages array (必須)

モデルのコンテキスト。会話の順序でメッセージのシーケンスとして提供されます。

HTTP 経由で API を呼び出す場合、messages オブジェクトを input オブジェクト内に配置します。

メッセージタイプ

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

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

プロパティ

content string or array (必須)

メッセージの内容。テキストのみの入力には文字列を使用します。入力に画像データが含まれる場合は配列を使用します。

プロパティ

text string (任意)

入力テキスト。

デフォルト値は 画像からテキストコンテンツのみを出力し、追加の説明やフォーマットは含めないでください です。このデフォルトの動作は、モデルに画像からすべてのテキストを抽出するように指示します。

image string (任意)

画像の URL、Base64 データ URL、またはローカルパス。ローカルファイルの渡し方については、「ローカルファイルの渡し方」をご参照ください。

例: {"image":"https://xxxx.jpeg"}

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

傾いた画像を補正するかどうかを指定します。

有効値:

  • true

  • false

例: {"image":"https://xxxx.jpeg","enable_rotate": True}

min_pixels integer (任意)

入力画像の最小ピクセルしきい値。

入力画像のピクセル数が min_pixels を下回る場合、モデルは画像の総ピクセル数が min_pixels を超えるまで画像を拡大します。

画像トークンとピクセルの変換

画像トークンあたりのピクセル数はモデルによって異なります:

  • qwen-vl-ocr-latestqwen-vl-ocr-2025-11-20:各トークンは 32×32 ピクセルに対応します。

  • qwen-vl-ocrqwen-vl-ocr-2025-08-28、およびそれ以前のモデル:各トークンは 28×28 ピクセルに対応します。

min_pixels の有効値の範囲

  • qwen-vl-ocr-latestqwen-vl-ocr-2025-11-20:デフォルト値と最小値は 3072 (つまり 3×32×32) です。

  • qwen-vl-ocrqwen-vl-ocr-2025-08-28、およびそれ以前のモデル:デフォルト値と最小値は 3136 (つまり 4×28×28) です。

例: {"image":"https://xxxx.jpeg","min_pixels": 3072}

max_pixels integer (任意)

入力画像の最大ピクセルしきい値。

画像のピクセル数が [min_pixels, max_pixels] の範囲内にある場合、モデルは元のサイズで処理します。ピクセル数が max_pixels を超える場合、モデルは総ピクセル数が max_pixels 以下になるまで画像を縮小します。

画像トークンとピクセルの変換

画像トークンあたりのピクセル数はモデルによって異なります:

  • qwen-vl-ocr-latestqwen-vl-ocr-2025-11-20:各トークンは 32×32 ピクセルに対応します。

  • qwen-vl-ocrqwen-vl-ocr-2025-08-28、およびそれ以前のモデル:各トークンは 28×28 ピクセルに対応します。

max_pixels の有効値の範囲

  • qwen-vl-ocr-latest, qwen-vl-ocr-2025-11-20

    • デフォルト値:8388608 (つまり 8192×32×32)

    • 最大値:30720000 (つまり 30000×32×32)

  • qwen-vl-ocr, qwen-vl-ocr-2025-08-28、およびそれ以前のモデル

    • デフォルト値:6422528 (つまり 8192×28×28)

    • 最大値:23520000 (つまり 30000×28×28)

例: {"image":"https://xxxx.jpeg","max_pixels": 8388608}

role string (必須)

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

max_tokens integer (任意)

出力で生成するトークンの最大数。生成されたコンテンツがこの値を超えると、応答は切り捨てられます。

  • qwen-vl-ocr-latestqwen-vl-ocr-2025-11-20、および qwen-vl-ocr-2024-10-28 の場合、デフォルト値と最大値はモデルの最大出力長と同じです。詳細については、「利用可能性」をご参照ください。

  • qwen-vl-ocr, qwen-vl-ocr-2025-04-13, and qwen-vl-ocr-2025-08-28 の場合、デフォルト値と最大値は 4096 です。

    このパラメーターの値を 4097 から 8192 の間の数値に増やすには、modelstudio@service.aliyun.com にメールを送信してください。メールには、Alibaba Cloud アカウント ID、画像タイプ (ドキュメント、e コマース、契約書など)、モデル名、推定される 1 秒あたりのクエリ数 (QPS) と 1 日あたりの合計リクエスト数、およびモデル出力が 4096 トークンを超えるリクエストの割合を含める必要があります。
Java SDK では、パラメーターは maxTokens です。HTTP 呼び出しの場合、parameters オブジェクトに max_tokens を設定します。

ocr_options object (任意)

Qwen-OCR モデルで組み込みタスクを呼び出す際に設定するパラメーター。組み込みタスクを呼び出す場合、モデルはそのタスクのデフォルトの Prompt を使用するため、ユーザーメッセージ を渡す必要はありません。詳細については、組み込みタスクの呼び出しをご参照ください。

プロパティ

task string (必須)

組み込みタスクの名前。有効値は次のとおりです:

  • text_recognition:一般テキスト認識

  • key_information_extraction:情報抽出

  • document_parsingドキュメント解析

  • table_parsingテーブル解析

  • formula_recognition数式認識

  • multi_lan:多言語認識

  • advanced_recognition:高精度認識

task_config object (任意)

taskkey_information_extraction (情報抽出) に設定されている場合、このパラメーターは抽出するフィールドを指定します。task_config を指定しない場合、モデルはデフォルトで画像からすべてのフィールドを抽出します。

プロパティ

result_schema object (任意)

モデルが抽出するフィールドを指定します。値は JSON オブジェクトである必要があります。JSON オブジェクトは最大 3 階層までネストできます。

抽出するフィールドの名前を JSON オブジェクトの key に指定します。対応する value は空にすることができます。より高い抽出精度を実現するために、値にフィールドの説明やフォーマット要件を提供できます。

例:

"result_schema": {
     "invoice_number": "請求書の一意の識別番号。通常は数字と文字の組み合わせです。",
     "issue_date": "請求書が発行された日付。YYYY-MM-DD 形式で抽出します。例: 2023-10-26。",
     "seller_name": "請求書に記載されている販売者の正式な会社名。",
     "total_amount": "請求書の合計金額 (税込み)。数値を抽出し、小数点以下 2 桁を保持します。例: 123.45。" 
}
Java SDK では、このパラメーターは OcrOptions という名前です。DashScope Python SDK の最小必須バージョンは 1.22.2、Java SDK は 2.18.4 です。
HTTP 呼び出しの場合、ocr_optionsparameters オブジェクトに配置します。

seed integer (任意)

乱数シード。シードを使用すると、再現可能な結果が保証されます。呼び出しで同じ seed 値を渡し、他のパラメーターを変更しない場合、モデルは決定論的な結果を返します。

有効値の範囲: [0,2<sup>31</sup>−1]

デフォルト値の使用を推奨します。
HTTP 呼び出しを行う場合、seedparameters オブジェクトに配置します。

temperature float (任意) デフォルト: 0.01

サンプリング温度は、モデルによって生成されるテキストの多様性を制御します。

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

有効値の範囲: [0, 2)

temperature と top_p はどちらも生成されるテキストの多様性を制御するため、どちらか一方のみを設定できます。

デフォルト値の使用を推奨します。
HTTP 呼び出しを行う場合、temperatureparameters オブジェクトに配置します。

top_p float (任意) デフォルト: 0.001

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

値が高いほど多様なテキストになります。値が低いほど決定論的なテキストになります。

有効値の範囲: (0, 1.0]

temperature と top_p はどちらもテキストの多様性を制御するため、どちらか一方のみを設定する必要があります。

デフォルト値の使用を推奨します。
Java SDK では、パラメーターは topP です。HTTP 呼び出しの場合、parameters オブジェクトに top_p を配置します。

top_k integer (任意) デフォルト: 1

生成中のサンプリングのための候補セットのサイズを指定します。たとえば、値を 50 に設定すると、スコアが最も高い 50 個のトークンのみがランダムサンプリングの候補セットとして使用されます。値が大きいほどランダム性が増し、小さいほど決定論性が増します。値が None または 100 より大きい場合、top_k ポリシーは有効になりません。この場合、top_p ポリシーのみが有効になります。

値は 0 以上である必要があります。

このパラメーターは標準の OpenAI パラメーターではありません。Python SDK を使用する場合、このパラメーターを extra_body オブジェクトに配置します。例: extra_body={"top_k": xxx}。Node.js SDK または HTTP を使用する場合、このパラメーターをトップレベルで渡します。

デフォルト値の使用を推奨します。

repetition_penalty float (任意) デフォルト: 1.0

モデル生成中の繰り返しシーケンスに対するペナルティ。値が高いほど、生成されるテキストの繰り返しを減らすことができます。値 1.0 はペナルティが適用されないことを意味します。

デフォルト値の使用を推奨します。
Java SDK では、パラメーターは repetitionPenalty です。HTTP 呼び出しの場合、parameters オブジェクトに repetition_penalty を追加します。

presence_penalty float (任意) デフォルト: 0.0

モデルによって生成されるテキスト内のコンテンツの繰り返しを制御します。

値は -2.0 から 2.0 の範囲内である必要があります。正の値は繰り返しを減らし、負の値はそれを増やします。

クリエイティブライティングなど、多様性、創造性、またはブレインストーミングを必要とするシナリオでは、この値を増やします。技術文書や公式テキストなど、一貫性と用語の正確性を重視するシナリオでは、この値を減らします。

仕組み

このパラメーターの値が正の場合、モデルはテキスト内に既に存在するトークンにペナルティを適用します。ペナルティは、トークンが何回出現するかに関係なく適用されます。これにより、これらのトークンが再出現する可能性が低くなり、コンテンツの繰り返しが減少し、単語の多様性が増加します。

デフォルト値の使用を推奨します。

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

応答をストリーミングするかどうかを指定します。有効値:

  • false:モデルはすべてのコンテンツが生成された後に一度に結果を返します。

  • true:モデルは生成されるにつれてコンテンツをチャンクで出力します。

このパラメーターは Python SDK でのみサポートされています。Java SDK でストリーミング出力を使用するには、streamCall インターフェイスを呼び出すことができます。HTTP 経由でストリーミング出力を使用するには、ヘッダーで X-DashScope-SSEenable に設定します。

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

ストリーミング出力モードで増分出力を有効にするかどうかを指定します。推奨設定は true です。

有効値:

  • false:各出力には、これまでに生成されたシーケンス全体が含まれます。最終的な出力が完全な結果です。

    I
    I like
    I like apple
    I like apple.
  • true (推奨):増分出力を有効にします。後続の出力には、新しく生成されたコンテンツのみが含まれます。完全な結果を取得するには、これらのセグメントを連結する必要があります。

    I
    like
    apple
    .
Java SDK では、パラメーターは incrementalOutput です。HTTP 呼び出しの場合、parameters オブジェクトに incremental_output を追加します。

stop string or array (任意)

ストップワードを指定します。stop で指定された文字列または token_id が生成されたテキストに現れると、生成は直ちに停止します。

このパラメーターを使用して、禁止用語を指定し、モデルの出力を制御できます。

stop が配列の場合、token_id と文字列を要素として混在させることはできません。たとえば、["Hello",104307] を指定することはできません。

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

出力トークンの対数確率を返すかどうかを指定します。有効値:

  • true

  • false

サポートされているモデル:qwen-vl-ocr-2025-04-13 以降のモデル。

HTTP 呼び出しの場合、logprobsparameters オブジェクトに配置します。

top_logprobs integer (任意) デフォルト: 0

各生成ステップで返す最も可能性の高いトークンの数を指定します。このパラメーターは、logprobstrue に設定されている場合にのみ適用されます。

値は 0 から 5 までの整数である必要があります。

Java SDK では、パラメーター名は topLogprobs です。HTTP 呼び出しの場合、parameters オブジェクトに top_logprobs パラメーターを設定します。

チャット応答オブジェクト (ストリーミング出力と非ストリーミング出力で同じフォーマット)

{"status_code": 200,
  "request_id": "8f8c0f6e-6805-4056-bb65-d26d66080a41",
  "code": "",
  "message": "",
  "output": {
    "text": null,
    "finish_reason": null,
    "choices": [
      {
        "finish_reason": "stop",
        "message": {
          "role": "assistant",
          "content": [
            {
              "ocr_result": {
                "kv_result": {
                  "price_excluding_tax": "230769.23",
                  "invoice_code": "142011726001",
                  "organization_code": "null",
                  "buyer_name": "Cai Yingshi",
                  "seller_name": "null"
                }
              },
              "text": "```json\n{\n    \"price_excluding_tax\": \"230769.23\",\n    \"invoice_code\": \"142011726001\",\n    \"organization_code\": \"null\",\n    \"buyer_name\": \"Cai Yingshi\",\n    \"seller_name\": \"null\"\n}\n```"
            }
          ]
        }
      }
    ],
    "audio": null
  },
  "usage": {
    "input_tokens": 926,
    "output_tokens": 72,
    "characters": 0,
    "image_tokens": 754,
    "input_tokens_details": {
      "image_tokens": 754,
      "text_tokens": 172
    },
    "output_tokens_details": {
      "text_tokens": 72
    },
    "total_tokens": 998
  }
}

status_code string

リクエストの状態コード。値 200 はリクエストが成功したことを示します。それ以外の場合、リクエストは失敗しています。

Java SDK はこのパラメーターを返しません。呼び出しが失敗した場合、例外がスローされます。例外メッセージには `status_code` と `message` が含まれます。

request_id string

この呼び出しの一意の識別子。

Java SDK はこのパラメーターを requestId

code string

エラーコード。呼び出しが成功した場合、このパラメーターは空です。

Python SDK のみがこのパラメーターを返します。

output object

呼び出し結果に関する情報。

プロパティ

text string

このパラメーターは現在、null に固定されています。

finish_reason string

モデルが生成を停止した理由。有効値:

  • 生成中は null です。

  • stop 値は、モデルの出力が自然に終了したことを示します。

  • 出力が長すぎるために生成が停止しました。停止理由は length です。

choices array

モデルからの出力情報。

プロパティ

finish_reason string

これは次のシナリオに適用されます:

  • 生成中の値は null です。

  • モデルの出力生成が自然に完了した場合、stop で示されます。

  • length:出力が最大長に達したため、切り捨てられました。

message object

モデルによって出力されるメッセージオブジェクト。

プロパティ

role string

出力メッセージのロール。値は assistant に固定されています。

content object

出力メッセージの内容。

プロパティ

ocr_result object

Qwen-OCR モデルを使用して組み込みの情報抽出または高精度認識タスクを呼び出すと、このパラメーターにタスクの結果が含まれます。

プロパティ

kv_result array

情報抽出タスクの結果。

words_info array

高精度認識タスクの結果。

プロパティ

rotate_rect array

例: [center_x, center_y, width, height, angle]

テキストボックスの回転矩形表現:

  • center_x と center_y はテキストボックスの重心の座標です。

  • width はテキストボックスの幅、height は高さです。

  • angle は水平方向に対するテキストボックスの回転角度です。値の範囲は [-90, 90] です。

location array

例: [x1, y1, x2, y2, x3, y3, x4, y4]

テキストボックスの 4 つの頂点の座標。座標は左上の頂点から時計回りに、左上 → 右上 → 右下 → 左下の順に並んでいます。

text string

テキスト行の内容。

text string

出力メッセージの内容。

logprobs object

現在の `choices` オブジェクトの確率情報。

プロパティ

content array

対数確率情報を持つトークンの配列。

プロパティ

token string

現在のトークン。

bytes array

現在のトークンの元の UTF-8 バイトのリスト。これは、特に絵文字や漢字を扱う際に出力コンテンツを正確に再構築するのに役立ちます。

logprob float

現在のトークンの対数確率。`null` の戻り値は、確率が非常に低いことを示します。

top_logprobs array

現在のトークンの位置で最も可能性の高いトークンとその対数確率。要素の数は、top_logprobs 入力パラメーターの値と同じです。

プロパティ

token string

現在のトークン。

bytes array

現在のトークンの元の UTF-8 バイトのリスト。これは、特に絵文字や漢字を扱う際に出力コンテンツを正確に再構築するのに役立ちます。

logprob float

現在のトークンの対数確率。`null` の戻り値は、確率が非常に低いことを示します。

usage object

このリクエストで使用されるトークンに関する情報。

プロパティ

input_tokens integer

入力トークンの数。

output_tokens integer

出力トークンの数。

characters integer

このパラメーターは現在 0 に固定されています。

input_tokens_details object

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

プロパティ

image_tokens integer

モデルに入力される画像に対応するトークンの数。

text_tokens integer

モデルに入力されるテキストに対応するトークンの数。

output_tokens_details object

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

プロパティ

text_tokens integer

モデル入力のトークン数。

total_tokens integer

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

image_tokens integer

このフィールドは、入力に image が含まれる場合に返されます。これは、画像入力に対応するトークンの数を表します。

エラーコード

モデルの呼び出しでエラーが返された場合は、「エラーメッセージ」を参照して問題を解決してください。