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

Alibaba Cloud Model Studio:Qwen-OCR API リファレンス

最終更新日:Nov 29, 2025

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

リファレンス: テキスト抽出 (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.aliyuncs.com/compatible-mode/v1 に設定します。

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

まず、API キーを作成し、API キーを環境変数としてエクスポートする必要があります。OpenAI SDK を使用する場合は、SDK をインストールしてください。

リクエストボディ

非ストリーミング出力

Python

from openai import OpenAI
import os

PROMPT_TICKET_EXTRACTION = """
列車の乗車券イメージから、請求書番号、列車番号、出発駅、到着駅、出発日時、座席番号、座席クラス、チケット価格、ID カード番号、乗客名を抽出してください。
キー情報を正確に抽出する必要があります。情報を省略したり、捏造したりしないでください。ぼやけている、または強い光で隠されている単一の文字は、英語の疑問符 (?) に置き換えてください。
データを次の JSON 形式で返します:{'invoice_number': 'xxx', 'train_number': 'xxx', 'departure_station': 'xxx', 'arrival_station': 'xxx', 'departure_date_and_time':'xxx', 'seat_number': 'xxx', 'seat_class': '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 です。北京リージョンのモデルを使用する場合は、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', 'train_number': 'xxx', 'departure_station': 'xxx', 'arrival_station': 'xxx', 'departure_date_and_time':'xxx', 'seat_number': 'xxx', 'seat_class': '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,
  // 以下はシンガポールリージョンの URL です。北京リージョンのモデルを使用する場合は、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 をご参照ください。
# 以下はシンガポールリージョンの URL です。北京リージョンのモデルを使用する場合は、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\', \'train_number\': \'xxx\', \'departure_station\': \'xxx\', \'arrival_station\': \'xxx\', \'departure_date_and_time\':\'xxx\', \'seat_number\': \'xxx\', \'seat_class\': \'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', 'train_number': 'xxx', 'departure_station': 'xxx', 'arrival_station': 'xxx', 'departure_date_and_time':'xxx', 'seat_number': 'xxx', 'seat_class': '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"),
    # 以下はシンガポールリージョンの URL です。北京リージョンのモデルを使用する場合は、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', 'train_number': 'xxx', 'departure_station': 'xxx', 'arrival_station': 'xxx', 'departure_date_and_time':'xxx', 'seat_number': 'xxx', 'seat_class': '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,
  // 以下はシンガポールリージョンの URL です。北京リージョンのモデルを使用する場合は、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 をご参照ください。
# 以下はシンガポールリージョンの URL です。北京リージョンのモデルを使用する場合は、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\', \'train_number\': \'xxx\', \'departure_station\': \'xxx\', \'arrival_station\': \'xxx\', \'departure_date_and_time\':\'xxx\', \'seat_number\': \'xxx\', \'seat_class\': \'xxx\',\'ticket_price\':\'xxx\', \'id_card_number\': \'xxx\', \'passenger_name\': \'xxx\'}"}
            ]
        }
    ],
    "stream": true,
    "stream_options": {"include_usage": true}
}'

model string (必須)

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

messages array (必須)

モデルに渡すコンテキスト。会話形式で配置されます。

メッセージタイプ

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

命令と認識対象のイメージをモデルに渡すユーザーメッセージ。

プロパティ

content array(必須)

メッセージの内容。

プロパティ

type string (必須)

有効値:

  • text

    テキスト入力の場合は text に設定します。

  • image_url

    イメージ入力の場合は image_url に設定します。

text string (任意)

入力テキスト。

デフォルト値は Please output only the text content from the image without any additional descriptions or formatting. です。これは、モデルがデフォルトでイメージからすべてのテキストを抽出することを意味します。

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 (任意)

ストリーミング出力の設定項目。このパラメーターは streamtrue の場合にのみ有効です。

プロパティ

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 コマース、契約書など)、モデル名、推定 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

Nucleus サンプリングの確率しきい値。モデルによって生成されるテキストの多様性をコントロールします。

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

有効値:(0, 1.0]

temperature と top_p はどちらも生成されるテキストの多様性をコントロールします。いずれか一方のみを設定することを推奨します。

このパラメーターはデフォルト値に設定することを推奨します。

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

生成中のサンプリングのための候補セットのサイズ。たとえば、値が 50 の場合、1 回の生成で最もスコアの高い 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

モデル生成中の連続するシーケンスに対する繰り返しペナルティ。`repetition_penalty` を増やすと、生成されるテキストの繰り返しを減らすことができます。値 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

モデルによって返された結果。

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_tokensinteger

このパラメーターは現在 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

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

  • stop:モデルが自然に生成を停止しました。

  • null:生成はまだ完了していません。

  • length:出力長の制限に達したため、生成が終了しました。

index integer

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

created integer

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

model string

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

object string

常に chat.completion.chunk です。

service_tier string

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

system_fingerprintstring

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

usage object

このリクエストによって消費されたトークン。include_usagetrue の場合、最後のチャンクでのみ返されます。

プロパティ

completion_tokens integer

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

prompt_tokens integer

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

total_tokens integer

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

completion_tokens_details object

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

プロパティ

accepted_prediction_tokensinteger

このパラメーターは現在 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.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation です。

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

まず、API キーを作成し、API キーを環境変数としてエクスポートする必要があります。DashScope SDK を使用する場合は、DashScope SDK をインストールしてください。

リクエストボディ

高精度認識

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

import os
import dashscope

# 以下はシンガポールリージョンの URL です。北京リージョンのモデルを使用する場合は、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 です。北京リージョンのモデルを使用する場合は、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 キーは異なります。詳細については、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
# 以下はシンガポールリージョンのベース URL です。シンガポールリージョンのモデルを使用する場合は、base_url を https://dashscope-intl.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 です。北京リージョンのモデルを使用する場合は、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": {
          "乗車日": "イメージ内の乗車日時に対応し、YYYY-MM-DD 形式、例:2025-03-05",
          "請求書コード": "イメージから請求書コードを抽出します。通常は数字または文字の組み合わせです",
          "請求書番号": "請求書から番号を抽出します。通常は数字のみで構成されます。"
      }
    }
  }
}

response = dashscope.MultiModalConversation.call(
    # シンガポールリージョンと北京リージョンの 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 です。北京リージョンのモデルを使用する場合は、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("乗車日", "イメージ内の乗車日時に対応し、YYYY-MM-DD 形式、例:2025-03-05");
        resultSchema.addProperty("請求書コード", "イメージから請求書コードを抽出します。通常は数字または文字の組み合わせです");
        resultSchema.addProperty("請求書番号", "請求書から番号を抽出します。通常は数字のみで構成されます。");


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

        MultiModalConversationParam param = MultiModalConversationParam.builder()
                // シンガポールリージョンと北京リージョンの 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 キーは異なります。詳細については、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
# 以下はシンガポールリージョンの URL です。北京リージョンのモデルを使用する場合は、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": {
            "乗車日": "イメージ内の乗車日時に対応し、YYYY-MM-DD 形式、例:2025-03-05",
            "請求書コード": "イメージから請求書コードを抽出します。通常は数字または文字の組み合わせです",
            "請求書番号": "請求書から番号を抽出します。通常は数字のみで構成されます。"
        }
    }
    }
  }
}
'

テーブル解析

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

import os
import dashscope
# 以下はシンガポールリージョンの URL です。北京リージョンのモデルを使用する場合は、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 キーは異なります。詳細については、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 です。北京リージョンのモデルを使用する場合は、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 キーは異なります。詳細については、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 キーは異なります。詳細については、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
# 以下はシンガポールリージョンの URL です。北京リージョンのモデルを使用する場合は、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 です。北京リージョンのモデルを使用する場合は、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 キーは異なります。詳細については、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 です。北京リージョンのモデルを使用する場合は、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 キーは異なります。詳細については、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 キーは異なります。詳細については、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
# 以下はシンガポールリージョンの URL です。北京リージョンのモデルを使用する場合は、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 です。北京リージョンのモデルを使用する場合は、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 キーは異なります。詳細については、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 です。北京リージョンのモデルを使用する場合は、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 キーは異なります。詳細については、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 キーは異なります。詳細については、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
# 以下はシンガポールリージョンの URL です。北京リージョンのモデルを使用する場合は、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 です。北京リージョンのモデルを使用する場合は、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 キーは異なります。詳細については、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 です。北京リージョンのモデルを使用する場合は、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 キーは異なります。詳細については、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 キーは異なります。詳細については、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
# 以下はシンガポールリージョンの URL です。北京リージョンのモデルを使用する場合は、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 です。北京リージョンのモデルを使用する場合は、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 です。北京リージョンのモデルを使用する場合は、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 です。北京リージョンのモデルを使用する場合は、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', 'train_number': 'xxx', 'departure_station': 'xxx', 'arrival_station': 'xxx', 'departure_date_and_time':'xxx', 'seat_number': 'xxx', 'seat_class': 'xxx','ticket_price':'xxx', 'id_card_number': 'xxx', 'passenger_name': 'xxx'}
"""

# 以下はシンガポールリージョンの URL です。北京リージョンのモデルを使用する場合は、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 {

    static {
        // 以下はシンガポールリージョンの URL です。北京リージョンのモデルを使用する場合は、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/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\', \'train_number\': \'xxx\', \'departure_station\': \'xxx\', \'arrival_station\': \'xxx\', \'departure_date_and_time\':\'xxx\', \'seat_number\': \'xxx\', \'seat_class\': \'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 です。北京リージョンのモデルを使用する場合は、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\', \'train_number\': \'xxx\', \'departure_station\': \'xxx\', \'arrival_station\': \'xxx\', \'departure_date_and_time\':\'xxx\', \'seat_number\': \'xxx\', \'seat_class\': \'xxx\',\'ticket_price\':\'xxx\', \'id_card_number\': \'xxx\', \'passenger_name\': \'xxx\'"}
            ]
          }
        ]
    },
    "parameters": {
        "incremental_output": true
    }
}'

model string (必須)

モデルの名前。サポートされているモデルのリストについては、<a baseurl="t3183345_v1_0_0.xdita" data-node="5088954" data-root="85177" data-tag="xref" href="t2751232.xdita#8442951a76clt" id="fe8c08810e91u">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 コマース、契約書など)、モデル名、推定 QPS (クエリ/秒) と 1 日あたりの合計リクエスト数、およびモデル出力が 4096 トークンを超えるリクエストの割合を記載したメールを送信してください。
Java SDK では、このパラメーターは parameters オブジェクト内の maxTokensmax_tokens です。

ocr_options object (任意)

Qwen-OCR モデルで組み込みタスクを呼び出す際に設定するパラメーター。組み込みタスクを呼び出す際、ユーザーメッセージを渡さないでください。モデルは対応するタスクの Prompt を使用します。詳細については、「組み込みタスクの呼び出し」をご参照ください。

プロパティ

task string (必須)

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

  • text_recognition:一般 OCR

  • 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 呼び出しを行う場合、temperature パラメーターを parameters オブジェクトに配置します。

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

Nucleus サンプリングの確率しきい値。モデルによって生成されるテキストの多様性をコントロールします。

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

有効値:(0, 1.0]

temperature と top_p はどちらも生成されるテキストの多様性をコントロールします。いずれか一方のみを設定することを推奨します。

このパラメーターはデフォルト値に設定することを推奨します。
Java SDK では、パラメーターは topP です。HTTP の場合、top_pparameters オブジェクトに配置します。

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

生成中のサンプリングのための候補セットのサイズ。たとえば、値が 50 の場合、1 回の生成で最もスコアの高い 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

モデル生成中の連続するシーケンスに対する繰り返しペナルティ。`repetition_penalty` を増やすと、生成されるテキストの繰り返しを減らすことができます。値 1.0 はペナルティなしを意味します。このパラメーターはモデルのパフォーマンスに大きく影響します。デフォルト値を維持することを推奨します。

このパラメーターはデフォルト値に設定することを推奨します。
Java SDK では、このパラメーターは repetitionPenalty です。HTTP 呼び出しを行う場合、repetition_penalty parameters オブジェクトに配置します。

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 (推奨):インクリメンタル出力。後続の出力には、以前に出力されたコンテンツは含まれません。これらのセグメントをリアルタイムで 1 つずつ読み取って、完全な結果を取得します。

    I
    like
    apple
    .
Java SDK では、このパラメーターは incrementalOutput です。HTTP 呼び出しを行う場合は、incremental_outputparameters オブジェクトに配置します。

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 では、このパラメーターは parameters オブジェクト内の topLogprobstop_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_exclusive_of_tax": "230769.23",
                  "invoice_code": "142011726001",
                  "organization_code": "null",
                  "buyer_name": "Cai Yingshi",
                  "seller_name": "null"
                }
              },
              "text": "```json\n{\n    \"price_exclusive_of_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_codemessage の内容が含まれます。

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 が含まれる場合に返されます。これは、ユーザーの入力イメージコンテンツがトークンに変換された後の長さを表します。

エラーコード

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