Qwen-OCR は、スキャンされたドキュメント、テーブル、レシートなどのさまざまな画像からテキストを抽出し、構造化データを解析する視覚理解モデルです。多言語をサポートし、特定のタスクの指示に基づいて、情報抽出、テーブル解析、数式認識などの高度な関数を実行できます。
オンラインで試す:Model Studio (シンガポール)、Model Studio (バージニア)、または Model Studio (北京)
例
入力画像 | 認識結果 |
多言語の認識
|
|
傾いた画像の認識
| 製品紹介 この製品は韓国から輸入された繊維フィラメントで作られています。収縮、変形、カビ、細菌の増殖がなく、物品の表面を傷つけません。本当にくっつかず、吸水性が高く、耐水性があり、洗浄が簡単で、無毒で、残留物がなく、速乾性があります。 販売者の経験:ステンレス鋼、セラミック製品、バスタブ、ユニットバスは、ほとんどが白く滑らかな表面を持っています。これらの表面の汚れは他の布では取り除くのが難しく、鋭利なものでは傷がつきやすいです。この模造ヘチマスポンジを少量の中性洗剤で泡立てて使用すると、これらの表面の汚れを簡単に拭き取ることができます。 6941990612023 商品番号:2023 |
テキストの位置の特定
高精度認識タスクはテキストのローカライズをサポートしています。 | ローカライズの可視化
各テキスト行のバウンディングボックスを元の画像に描画する方法については、「よくある質問」をご参照ください。 |
適用範囲
サポート対象リージョン
サポート対象モデル
国際
国際デプロイモードでは、エンドポイントとデータストレージは両方ともシンガポールリージョンにあります。モデル推論の計算リソースは、世界中 (中国本土を除く) で動的にスケジュールされます。
モデル | バージョン | コンテキストウィンドウ | 最大入力 | 最大出力 | 入力価格 | 出力価格 | 無料クォータ |
(トークン) | (100 万トークンあたり) | ||||||
qwen-vl-ocr | 安定版 | 34,096 | 30,000 画像あたり最大:30,000 | 4,096 | $0.72 | $0.72 | 100 万入力トークンと 100 万出力トークン Model Studio をアクティベートしてから 90 日間有効 |
qwen-vl-ocr-2025-11-20 qwen-vl-ocr-1120 とも呼ばれます Qwen3-VL アーキテクチャに基づいて、このモデルはドキュメント解析とテキストのローカライズを大幅に改善します。 | スナップショット | 38,192 | 8,192 | $0.07 | $0.16 | ||
グローバル
グローバルデプロイモードでは、エンドポイントとデータストレージは両方とも米国 (バージニア) リージョンにあります。モデル推論の計算リソースは世界中で動的にスケジュールされます。
モデル | バージョン | コンテキストウィンドウ | 最大入力 | 最大出力 | 入力価格 | 出力価格 |
(トークン) | (100 万トークンあたり) | |||||
qwen-vl-ocr qwen-vl-ocr-2025-11-20 の機能と一致します。 | 安定版 | 34,096 | 30,000 画像あたり最大 30,000。 | 4,096 | $0.07 | $0.16 |
qwen-vl-ocr-2025-11-20 qwen-vl-ocr-1120 とも呼ばれます。 Qwen3-VL アーキテクチャに基づいて、このモデルはドキュメント解析とテキストのローカライズ機能を大幅に改善します。 | スナップショット | 38,192 | 8,192 | |||
中国本土
中国本土デプロイモードでは、エンドポイントとデータストレージは両方とも北京リージョンにあります。モデル推論の計算リソースは中国本土に限定されます。
モデル | バージョン | コンテキストウィンドウ | 最大入力 | 最大出力 | 入力価格 | 出力価格 | 無料クォータ |
(トークン) | (100 万トークンあたり) | ||||||
qwen-vl-ocr qwen-vl-ocr-2025-08-28 の機能と一致します。 バッチコールは半額で利用できます。 | 安定版 | 34,096 | 30,000 画像あたり最大:30,000 | 4,096 | $0.717 | $0.717 | 無料クォータなし |
qwen-vl-ocr-latest 常に最新バージョンの機能と一致します。 | 最新版 | 38,192 | 8,192 | $0.043 | $0.072 | ||
qwen-vl-ocr-2025-11-20 qwen-vl-ocr-1120 とも呼ばれます。 Qwen3-VL アーキテクチャに基づいて、このモデルはドキュメント解析とテキストのローカライズ機能を大幅に改善します。 | スナップショット | ||||||
qwen-vl-ocr-2025-08-28 qwen-vl-ocr-0828 とも呼ばれます。 | 34,096 | 4,096 | $0.717 | $0.717 | |||
qwen-vl-ocr-2025-04-13 qwen-vl-ocr-0413 とも呼ばれます。 | |||||||
qwen-vl-ocr-2024-10-28 qwen-vl-ocr-1028 とも呼ばれます。 | |||||||
qwen-vl-ocr, qwen-vl-ocr-2025-04-13, and qwen-vl-ocr-2025-08-28モデルでは、max_tokensパラメーター (最大出力長) のデフォルトは 4096 です。この値を 4097 から 8192 の範囲に増やすには、modelstudio@service.aliyun.com にメールを送信し、次の情報を提供してください:Alibaba Cloud アカウント ID、画像タイプ (ドキュメント画像、e コマース画像、契約書など)、モデル名、推定 QPS (1 秒あたりのクエリ数) と 1 日あたりの合計リクエスト数、およびモデルの出力長が 4096 を超えるリクエストの割合。
事前準備
API キーを作成し、API キーを環境変数として設定していること。
OpenAI SDK または DashScope SDK を使用してモデルを呼び出す場合は、SDK の最新バージョンをインストールする必要があります。DashScope Python SDK の最小バージョンは 1.22.2、Java SDK の最小バージョンは 2.21.8 です。
DashScope SDK
利点:画像の回転補正や組み込み OCR タスクなど、すべての高度な機能をサポートします。完全な機能セットと簡単な呼び出しメソッドを提供します。
シナリオ:全機能が必要なプロジェクト。
OpenAI 互換 SDK
利点:すでに OpenAI SDK またはそのエコシステムツールを使用しているユーザーの移行を容易にします。
制限事項:画像の回転補正や組み込み OCR タスクなどの高度な機能をパラメーターで直接呼び出すことはサポートされていません。複雑なプロンプトを作成してから出力を解析することで、これらの機能を手動でシミュレートする必要があります。
シナリオ:すでに OpenAI との統合があり、DashScope 独自の高度な機能に依存しないプロジェクト。
クイックスタート
次の例では、列車乗車券の画像 (URL) から主要な情報を抽出し、その情報を JSON 形式で返します。詳細については、「ローカルファイルの渡し方」および「画像の制限事項」をご参照ください。
OpenAI 互換
Python
from openai import OpenAI
import os
PROMPT_TICKET_EXTRACTION = """
列車乗車券の画像から、請求書番号、列車番号、出発駅、到着駅、出発日時、座席番号、座席種別、運賃、ID カード番号、乗客名を抽出してください。
主要な情報を正確に抽出してください。情報の省略や虚偽の情報の捏造は行わないでください。ぼやけている、または光の反射で見えにくい一文字は、クエスチョンマーク (?) に置き換えてください。
データを JSON 形式で返してください:{'Invoice Number': 'xxx', 'Train Number': 'xxx', 'Departure Station': 'xxx', 'Destination Station': 'xxx', 'Departure Date and Time': 'xxx', 'Seat Number': 'xxx', 'Seat Type': '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"エラーメッセージ:{e}")Node.js
import OpenAI from 'openai';
// 列車乗車券の情報を抽出するためのプロンプトを定義します。
const PROMPT_TICKET_EXTRACTION = `
列車乗車券の画像から、請求書番号、列車番号、出発駅、到着駅、出発日時、座席番号、座席種別、運賃、ID カード番号、乗客名を抽出してください。
主要な情報を正確に抽出してください。情報の省略や虚偽の情報の捏造は行わないでください。ぼやけている、または光の反射で見えにくい一文字は、クエスチョンマーク (?) に置き換えてください。
データを JSON 形式で返してください:{'Invoice Number': 'xxx', 'Train Number': 'xxx', 'Departure Station': 'xxx', 'Destination Station': 'xxx', 'Departure Date and Time': 'xxx', 'Seat Number': 'xxx', 'Seat Type': '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 です。米国 (バージニア) リージョンのモデルを使用する場合は、baseURL を https://dashscope-us.aliyuncs.com/compatible-mode/v1 に置き換えてください
// 中国 (北京) リージョンのモデルを使用する場合は、baseURL を 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
}
]
}
],
});
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-us.aliyuncs.com/compatible-mode/v1/chat/completions に置き換えてください
# 中国 (北京) リージョンのモデルを使用する場合は、ベース 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\', \'Destination Station\': \'xxx\', \'Departure Date and Time\': \'xxx\', \'Seat Number\': \'xxx\', \'Seat Type\': \'xxx\', \'Ticket Price\': \'xxx\', \'ID Card Number\': \'xxx\', \'Passenger Name\': \'xxx\'}"}
]
}
]
}'応答の例
DashScope
Python
import os
import dashscope
PROMPT_TICKET_EXTRACTION = """
列車乗車券の画像から、請求書番号、列車番号、出発駅、到着駅、出発日時、座席番号、座席種別、運賃、ID カード番号、乗客名を抽出してください。
主要な情報を正確に抽出してください。情報の省略や虚偽の情報の捏造は行わないでください。ぼやけている、または光の反射で見えにくい一文字は、クエスチョンマーク (?) に置き換えてください。
データを JSON 形式で返してください:{'Invoice Number': 'xxx', 'Train Number': 'xxx', 'Departure Station': 'xxx', 'Destination Station': 'xxx', 'Departure Date and Time': 'xxx', 'Seat Number': 'xxx', 'Seat Type': '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,
# 画像の自動回転を有効にするかどうかを指定します。
"enable_rotate": False
},
# 組み込みタスクが設定されていない場合、テキストフィールドでプロンプトを渡すことができます。プロンプトが渡されない場合、デフォルトのプロンプトが使用されます:画像からテキストコンテンツのみを出力し、追加の説明やフォーマットは含めないでください。
{"type": "text", "text": PROMPT_TICKET_EXTRACTION}]
}]
try:
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
)
print(response["output"]["choices"][0]["message"].content[0]["text"])
except Exception as e:
print(f"エラーが発生しました:{e}")Java
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.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/O1CN01ktT8451iQutqReELT_!!6000000004408-0-tps-689-487.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,
// 組み込みタスクが設定されていない場合、テキストフィールドでプロンプトを渡すことができます。プロンプトが渡されない場合、デフォルトのプロンプトが使用されます:画像からテキストコンテンツのみを出力し、追加の説明やフォーマットは含めないでください。
Collections.singletonMap("text", "列車乗車券の画像から、請求書番号、列車番号、出発駅、到着駅、出発日時、座席番号、座席種別、運賃、ID カード番号、乗客名を抽出してください。主要な情報を正確に抽出してください。情報の省略や虚偽の情報の捏造は行わないでください。ぼやけている、または光の反射で見えにくい一文字は、クエスチョンマーク (?) に置き換えてください。データを JSON 形式で返してください:{\'Invoice Number\': \'xxx\', \'Train Number\': \'xxx\', \'Departure Station\': \'xxx\', \'Destination Station\': \'xxx\', \'Departure Date and Time\': \'xxx\', \'Seat Number\': \'xxx\', \'Seat Type\': \'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)
.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);
}
}curl
# ======= 重要 =======
# API キーはリージョン固有です。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
# 以下はシンガポールリージョンのベース URL です。米国 (バージニア) リージョンのモデルを使用する場合は、ベース URL を https://dashscope-us.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation に置き換えてください
# 中国 (北京) リージョンのモデルを使用する場合は、ベース 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/O1CN01ktT8451iQutqReELT_!!6000000004408-0-tps-689-487.jpg",
"min_pixels": 3072,
"max_pixels": 8388608,
"enable_rotate": false
},
{
"text": "列車乗車券の画像から、請求書番号、列車番号、出発駅、到着駅、出発日時、座席番号、座席種別、運賃、ID カード番号、乗客名を抽出してください。主要な情報を正確に抽出してください。情報の省略や虚偽の情報の捏造は行わないでください。ぼやけている、または光の反射で見えにくい一文字は、クエスチョンマーク (?) に置き換えてください。データを JSON 形式で返してください:{\'Invoice Number\': \'xxx\', \'Train Number\': \'xxx\', \'Departure Station\': \'xxx\', \'Destination Station\': \'xxx\', \'Departure Date and Time\': \'xxx\', \'Seat Number\': \'xxx\', \'Seat Type\': \'xxx\', \'Ticket Price\': \'xxx\', \'ID Card Number\': \'xxx\', \'Passenger Name\': \'xxx\'}"
}
]
}
]
}
}'組み込みタスクの呼び出し
特定のシナリオでの呼び出しを簡素化するために、モデル (qwen-vl-ocr-2024-10-28 を除く) にはいくつかの組み込みタスクが含まれています。
使用方法:
DashScope SDK:
Promptを設計して渡す必要はありません。モデルは内部で固定のPromptを使用します。ocr_optionsパラメーターを設定して、組み込みタスクを呼び出します。OpenAI 互換 SDK:タスクに指定された
Promptを手動で入力する必要があります。
次の表に、各組み込みタスクの task の値、指定された Prompt、出力形式、および例を示します:
高精度認識
qwen-vl-ocr-2025-08-28 以降のモデルバージョンまたは最新バージョンを使用して、高精度認識タスクを呼び出すことを推奨します。このタスクには次の特徴があります:
テキストコンテンツを認識して抽出します。
テキスト行を特定し、その座標を出力することでテキストの位置を検出します。
テキストのバウンディングボックスの座標を取得した後、元の画像にバウンディングボックスを描画する方法の詳細については、「よくある質問」をご参照ください。
task の値 | 指定されたプロンプト | 出力形式と例 |
| すべてのテキスト行を特定し、回転した長方形の座標 |
|
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"
}
}
}
'情報抽出
このモデルは、レシート、証明書、フォームなどのドキュメントから構造化情報を抽出し、結果を JSON 形式で返すことをサポートしています。2 つのモードから選択できます:
カスタムフィールド抽出:抽出するフィールドを指定できます。抽出する特定のフィールド名 (
key) を定義するために、ocr_options.task_configパラメーターでカスタム JSON テンプレート (result_schema) を指定する必要があります。モデルは対応する値 (value) を自動的に入力します。テンプレートは最大 3 つのネストされたレイヤーをサポートします。全フィールド抽出:
result_schemaパラメーターを指定しない場合、モデルは画像からすべてのフィールドを抽出します。
2 つのモードのプロンプトは異なります:
task の値 | 指定されたプロンプト | 出力形式と例 |
| カスタムフィールド抽出: |
|
全フィールド抽出: |
|
次のコード例は、DashScope SDK と HTTP を使用してモデルを呼び出す方法を示しています:
# [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": "請求書から番号を抽出します。通常は数字のみで構成されます。"
}
}
}
}
}
'OpenAI SDK または HTTP メソッドを使用する場合、次のコード例に示すように、カスタム JSON スキーマをプロンプト文字列の末尾に追加する必要があります:
テーブル解析
モデルは画像内のテーブル要素を解析し、認識結果を HTML 形式のテキストとして返します。
task の値 | 指定されたプロンプト | 出力形式と例 |
|
|
|
次のコード例は、DashScope SDK と HTTP を使用してモデルを呼び出す方法を示しています:
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"
}
}
}
'ドキュメント解析
モデルは、画像として保存されているスキャンされたドキュメントや PDF ドキュメントの解析をサポートしています。ファイル内のタイトル、要約、ラベルなどの要素を認識し、認識結果を LaTeX 形式のテキストとして返します。
タスクの価値 | 指定されたプロンプト | 出力形式と例 |
|
|
|
次のコード例は、DashScope SDK と HTTP を使用してモデルを呼び出す方法を示しています:
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"
}
}
}
'数式認識
モデルは画像内の数式を解析し、認識結果を LaTeX 形式のテキストとして返すことをサポートしています。
task の値 | 指定されたプロンプト | 出力形式と例 |
|
|
|
次のコード例は、DashScope SDK と HTTP を使用してモデルを呼び出す方法を示しています:
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"
}
}
}
'一般テキスト認識
一般テキスト認識は、主に中国語と英語のシナリオで使用され、認識結果をプレーンテキスト形式で返します。
タスクの価値 | 指定されたプロンプト | 出力形式と例 |
|
|
|
次のコード例は、DashScope SDK および HTTP を使用してモデルを呼び出す方法を示しています。
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"
}
}
}'多言語認識
多言語認識は、中国語と英語以外の言語を含むシナリオに適しています。サポートされている言語は、アラビア語、フランス語、ドイツ語、イタリア語、日本語、韓国語、ポルトガル語、ロシア語、スペイン語、ベトナム語です。認識結果はプレーンテキスト形式で返されます。
task の値 | 指定されたプロンプト | 出力形式と例 |
|
|
|
次のコード例は、DashScope SDK と HTTP を使用してモデルを呼び出す方法を示しています:
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"
}
}
}
'ローカルファイルの渡し方 (Base64 エンコーディングまたはファイルパス)
Qwen-VL は、ローカルファイルをアップロードするための 2 つのメソッドを提供します:Base64 エンコーディングと直接ファイルパス。ファイルサイズと SDK の種類に基づいてアップロードメソッドを選択できます。具体的な推奨事項については、「ファイルアップロードメソッドの選択方法」をご参照ください。どちらのメソッドも、「画像の制限事項」のファイル要件を満たす必要があります。
Base64 エンコーディングの使用
ファイルを Base64 エンコードされた文字列に変換し、それをモデルに渡します。このメソッドは、OpenAI および DashScope SDK、および HTTP リクエストに適しています。
ファイルパスのアップロード
ローカルファイルのパスを直接モデルに渡します。このメソッドは、DashScope Python および Java SDK でのみサポートされています。DashScope HTTP または OpenAI 互換メソッドではサポートされていません。
プログラミング言語とオペレーティングシステムに基づいてファイルパスを指定するには、次の表をご参照ください。
ファイルパスの渡し方
ファイルパスの渡し方は、DashScope Python および Java SDK での呼び出しでのみサポートされています。このメソッドは、DashScope HTTP または OpenAI 互換メソッドではサポートされていません。
Python
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'
# xxx/test.jpg をローカル画像の絶対パスに置き換えます。
local_path = "xxx/test.jpg"
image_path = f"file://{local_path}"
messages = [
{
"role": "user",
"content": [
{
"image": image_path,
# 入力画像の最小ピクセルしきい値。画像のピクセル数がこの値より少ない場合、総ピクセル数が min_pixels を超えるまで画像はスケールアップされます。
"min_pixels": 32 * 32 * 3,
# 入力画像の最大ピクセルしきい値。画像のピクセル数がこの値より多い場合、総ピクセル数が max_pixels を下回るまで画像はスケールダウンされます。
"max_pixels": 32 * 32 * 8192,
},
# モデルに組み込みタスクが設定されていない場合、テキストフィールドでプロンプトを渡すことができます。プロンプトを渡さない場合、デフォルトのプロンプトが使用されます:画像からテキストコンテンツのみを出力し、追加の説明やフォーマットは含めないでください。
{
"text": "列車乗車券の画像から、請求書番号、列車番号、出発駅、到着駅、出発日時、座席番号、座席種別、運賃、ID カード番号、乗客名を抽出してください。主要な情報を正確に抽出してください。情報の省略や捏造は行わないでください。ぼやけている、または光の反射で見えにくい一文字は、クエスチョンマーク (?) に置き換えてください。データを JSON 形式で返してください:{'invoice_number': 'xxx', 'train_number': 'xxx', 'departure_station': 'xxx', 'destination_station': 'xxx', 'departure_date_and_time': 'xxx', 'seat_number': 'xxx', 'seat_type': 'xxx', 'ticket_price': 'xxx', 'id_card_number': 'xxx', 'passenger_name': 'xxx'}"
},
],
}
]
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,
)
print(response["output"]["choices"][0]["message"].content[0]["text"])
Java
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.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 です。米国 (バージニア) リージョンのモデルを使用する場合は、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(String localPath)
throws ApiException, NoApiKeyException, UploadFileException {
String filePath = "file://"+localPath;
MultiModalConversation conv = new MultiModalConversation();
Map<String, Object> map = new HashMap<>();
map.put("image", filePath);
// 入力画像の最大ピクセルしきい値。画像のピクセル数がこの値より多い場合、総ピクセル数が 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', 'destination_station': 'xxx', 'departure_date_and_time': 'xxx', 'seat_number': 'xxx', 'seat_type': '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)
.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 {
// xxx/test.jpg をローカル画像の絶対パスに置き換えます。
simpleMultiModalConversationCall("xxx/test.jpg");
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}Base64 エンコードされた文字列の渡し方
OpenAI 互換
Python
from openai import OpenAI
import os
import base64
# ローカルファイルを読み取り、Base64 形式でエンコードします。
def encode_image(image_path):
with open(image_path, "rb") as image_file:
return base64.b64encode(image_file.read()).decode("utf-8")
# xxx/test.png をローカル画像の絶対パスに置き換えます。
base64_image = encode_image("xxx/test.png")
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",
# 注:Base64 エンコードされた文字列を渡す場合、画像形式 (image/{format}) はサポートされている画像のリストの Content-Type と一致する必要があります。「f」は文字列フォーマットメソッドです。
# PNG 画像:f"data:image/png;base64,{base64_image}"
# JPEG 画像:f"data:image/jpeg;base64,{base64_image}"
# WEBP 画像:f"data:image/webp;base64,{base64_image}"
"image_url": {"url": f"data:image/png;base64,{base64_image}"},
# 入力画像の最小ピクセルしきい値。画像のピクセル数がこの値より少ない場合、総ピクセル数が min_pixels を超えるまで画像はスケールアップされます。
"min_pixels": 32 * 32 * 3,
# 入力画像の最大ピクセルしきい値。画像のピクセル数がこの値より多い場合、総ピクセル数が max_pixels を下回るまで画像はスケールダウンされます。
"max_pixels": 32 * 32 * 8192
},
# モデルは、次のテキストフィールドでプロンプトを渡すことをサポートしています。プロンプトを渡さない場合、デフォルトのプロンプトが使用されます:画像からテキストコンテンツのみを出力し、追加の説明やフォーマットは含めないでください。
{"type": "text", "text": "列車乗車券の画像から、請求書番号、列車番号、出発駅、到着駅、出発日時、座席番号、座席種別、運賃、ID カード番号、乗客名を抽出してください。主要な情報を正確に抽出してください。情報の省略や捏造は行わないでください。ぼやけている、または光の反射で見えにくい一文字は、クエスチョンマーク (?) に置き換えてください。データを JSON 形式で返してください:{'invoice_number': 'xxx', 'train_number': 'xxx', 'departure_station': 'xxx', 'destination_station': 'xxx', 'departure_date_and_time': 'xxx', 'seat_number': 'xxx', 'seat_type': 'xxx', 'ticket_price': 'xxx', 'id_card_number': 'xxx', 'passenger_name': 'xxx'}"},
],
}
],
)
print(completion.choices[0].message.content)Node.js
import OpenAI from "openai";
import {
readFileSync
} from 'fs';
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 です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/compatible-mode/v1 に変更してください。
// 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/compatible-mode/v1 に変更してください。
baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
});
// ローカルファイルを読み取り、Base64 形式でエンコードします。
const encodeImage = (imagePath) => {
const imageFile = readFileSync(imagePath);
return imageFile.toString('base64');
};
// xxx/test.png をローカル画像の絶対パスに置き換えます。
const base64Image = encodeImage("xxx/test.jpg")
async function main() {
const completion = await client.chat.completions.create({
model: "qwen-vl-ocr-2025-11-20",
messages: [{
"role": "user",
"content": [{
"type": "image_url",
"image_url": {
// 注:Base64 エンコードされた文字列を渡す場合、画像形式 (image/{format}) はサポートされている画像のリストの Content-Type と一致する必要があります。
// PNG 画像:data:image/png;base64,${base64Image}
// JPEG 画像:data:image/jpeg;base64,${base64Image}
// WEBP 画像:data:image/webp;base64,${base64Image}
"url": `data:image/jpeg;base64,${base64Image}`
},
// 入力画像の最小ピクセルしきい値。画像のピクセル数がこの値より少ない場合、総ピクセル数が min_pixels を超えるまで画像はスケールアップされます。
"min_pixels": 32 * 32 * 3,
// 入力画像の最大ピクセルしきい値。画像のピクセル数がこの値より多い場合、総ピクセル数が max_pixels を下回るまで画像はスケールダウンされます。
"max_pixels": 32 * 32 * 8192
},
// モデルは、次のテキストフィールドでプロンプトを渡すことをサポートしています。プロンプトを渡さない場合、デフォルトのプロンプトが使用されます:画像からテキストコンテンツのみを出力し、追加の説明やフォーマットは含めないでください。
{
"type": "text",
"text": "列車乗車券の画像から、請求書番号、列車番号、出発駅、到着駅、出発日時、座席番号、座席種別、運賃、ID カード番号、乗客名を抽出してください。主要な情報を正確に抽出してください。情報の省略や捏造は行わないでください。ぼやけている、または光の反射で見えにくい一文字は、クエスチョンマーク (?) に置き換えてください。データを JSON 形式で返してください:{'invoice_number': 'xxx', 'train_number': 'xxx', 'departure_station': 'xxx', 'destination_station': 'xxx', 'departure_date_and_time': 'xxx', 'seat_number': 'xxx', 'seat_type': 'xxx', 'ticket_price': 'xxx', 'id_card_number': 'xxx', 'passenger_name': 'xxx'}"
}
]
}]
});
console.log(completion.choices[0].message.content);
}
main();curl
ファイルを Base64 エンコードされた文字列に変換する方法については、「サンプルコード」をご参照ください。
デモンストレーションのため、コード内の Base64 エンコードされた文字列
"data:image/png;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA..."は切り捨てられています。実際には、完全なエンコードされた文字列を渡す必要があります。
# ======= 重要 =======
# API キーはリージョンによって異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
# 以下はシンガポールリージョンのベース URL です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/compatible-mode/v1/chat/completions に変更してください。
# 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions に変更してください。
# === 実行前にこのコメントを削除してください ===
curl --location 'https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "qwen-vl-ocr-2025-11-20",
"messages": [
{
"role": "user",
"content": [
{"type": "image_url", "image_url": {"url": "data:image/png;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA..."}},
{"type": "text", "text": "列車乗車券の画像から、請求書番号、列車番号、出発駅、到着駅、出発日時、座席番号、座席種別、運賃、ID カード番号、乗客名を抽出してください。主要な情報を正確に抽出してください。情報の省略や捏造は行わないでください。ぼやけている、または光の反射で見えにくい一文字は、クエスチョンマーク (?) に置き換えてください。データを JSON 形式で返してください:{'invoice_number': 'xxx', 'train_number': 'xxx', 'departure_station': 'xxx', 'destination_station': 'xxx', 'departure_date_and_time': 'xxx', 'seat_number': 'xxx', 'seat_type': 'xxx', 'ticket_price': 'xxx', 'id_card_number': 'xxx', 'passenger_name': 'xxx'}"}
]
}]
}'DashScope
Python
import os
import base64
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'
# Base64 エンコーディング形式。
def encode_image(image_path):
with open(image_path, "rb") as image_file:
return base64.b64encode(image_file.read()).decode("utf-8")
# xxx/test.jpg をローカル画像の絶対パスに置き換えます。
base64_image = encode_image("xxx/test.jpg")
messages = [
{
"role": "user",
"content": [
{
# 注:Base64 エンコードされた文字列を渡す場合、画像形式 (image/{format}) はサポートされている画像のリストの Content-Type と一致する必要があります。「f」は文字列フォーマットメソッドです。
# PNG 画像:f"data:image/png;base64,{base64_image}"
# JPEG 画像:f"data:image/jpeg;base64,{base64_image}"
# WEBP 画像:f"data:image/webp;base64,{base64_image}"
"image": f"data:image/jpeg;base64,{base64_image}",
# 入力画像の最小ピクセルしきい値。画像のピクセル数がこの値より少ない場合、総ピクセル数が min_pixels を超えるまで画像はスケールアップされます。
"min_pixels": 32 * 32 * 3,
# 入力画像の最大ピクセルしきい値。画像のピクセル数がこの値より多い場合、総ピクセル数が max_pixels を下回るまで画像はスケールダウンされます、"max_pixels": 32 * 32 * 8192,
},
# モデルに組み込みタスクが設定されていない場合、テキストフィールドでプロンプトを渡すことができます。プロンプトを渡さない場合、デフォルトのプロンプトが使用されます:画像からテキストコンテンツのみを出力し、追加の説明やフォーマットは含めないでください。
{
"text": "列車乗車券の画像から、請求書番号、列車番号、出発駅、到着駅、出発日時、座席番号、座席種別、運賃、ID カード番号、乗客名を抽出してください。主要な情報を正確に抽出してください。情報の省略や捏造は行わないでください。ぼやけている、または光の反射で見えにくい一文字は、クエスチョンマーク (?) に置き換えてください。データを JSON 形式で返してください:{'invoice_number': 'xxx', 'train_number': 'xxx', 'departure_station': 'xxx', 'destination_station': 'xxx', 'departure_date_and_time': 'xxx', 'seat_number': 'xxx', 'seat_type': 'xxx', 'ticket_price': 'xxx', 'id_card_number': 'xxx', 'passenger_name': 'xxx'}"
},
],
}
]
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,
)
print(response["output"]["choices"][0]["message"].content[0]["text"])Java
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.*;
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.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 です。米国 (バージニア) リージョンのモデルを使用する場合は、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";
}
// Base64 エンコーディング形式。
private static String encodeImageToBase64(String imagePath) throws IOException {
Path path = Paths.get(imagePath);
byte[] imageBytes = Files.readAllBytes(path);
return Base64.getEncoder().encodeToString(imageBytes);
}
public static void simpleMultiModalConversationCall(String localPath)
throws ApiException, NoApiKeyException, UploadFileException, IOException {
String base64Image = encodeImageToBase64(localPath); // Base64 エンコーディング。
MultiModalConversation conv = new MultiModalConversation();
Map<String, Object> map = new HashMap<>();
map.put("image", "data:image/jpeg;base64," + base64Image);
// 入力画像の最大ピクセルしきい値。画像のピクセル数がこの値より多い場合、総ピクセル数が 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', 'destination_station': 'xxx', 'departure_date_and_time': 'xxx', 'seat_number': 'xxx', 'seat_type': '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)
.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 {
// xxx/test.jpg をローカル画像の絶対パスに置き換えます。
simpleMultiModalConversationCall("xxx/test.jpg");
} catch (ApiException | NoApiKeyException | UploadFileException | IOException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}curl
ファイルを Base64 エンコードされた文字列に変換する方法については、「サンプルコード」をご参照ください。
デモンストレーションのため、コード内の Base64 エンコードされた文字列
"data:image/png;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA..."は切り捨てられています。実際には、完全なエンコードされた文字列を渡す必要があります。
# ======= 重要 =======
# 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 -X POST https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "qwen-vl-ocr-2025-11-20",
"input":{
"messages":[
{
"role": "user",
"content": [
{"image": "data:image/png;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA..."},
{"text": "列車乗車券の画像から、請求書番号、列車番号、出発駅、到着駅、出発日時、座席番号、座席種別、運賃、ID カード番号、乗客名を抽出してください。主要な情報を正確に抽出してください。情報の省略や捏造は行わないでください。ぼやけている、または光の反射で見えにくい一文字は、クエスチョンマーク (?) に置き換えてください。データを JSON 形式で返してください:{'invoice_number': 'xxx', 'train_number': 'xxx', 'departure_station': 'xxx', 'destination_station': 'xxx', 'departure_date_and_time': 'xxx', 'seat_number': 'xxx', 'seat_type': 'xxx', 'ticket_price': 'xxx', 'id_card_number': 'xxx', 'passenger_name': 'xxx'}"}
]
}
]
}
}'その他の使用方法
制限事項
画像の制限事項
ディメンションと縦横比:画像の幅と高さの両方が 10 ピクセルより大きい必要があります。縦横比は 200:1 を超えたり、1:200 を下回ったりしてはなりません。
総ピクセル数:モデルは画像を自動的にスケーリングするため、総ピクセル数に厳密な制限はありません。ただし、画像は 1568 万ピクセルを超えることはできません。
サポートされている画像形式
解像度が 4K
(3840x2160)未満の画像の場合、次の形式がサポートされています:画像形式
一般的な拡張子
MIME タイプ
BMP
.bmp
image/bmp
JPEG
.jpe, .jpeg, .jpg
image/jpeg
PNG
.png
image/png
TIFF
.tif, .tiff
image/tiff
WEBP
.webp
image/webp
HEIC
.heic
image/heic
解像度が
4K (3840x2160)から8K (7680x4320)の画像の場合、JPEG、JPG、PNG 形式のみがサポートされています。
画像サイズ:
公開 URL またはローカルパスを使用して画像を提供する場合、画像は
10 MBを超えることはできません。データを Base64 エンコーディングで提供する場合、エンコードされた文字列は
10 MBを超えることはできません。
詳細については、「画像または動画を必要なサイズに圧縮する方法」をご参照ください。
モデルの制限事項
システムメッセージ:Qwen-OCR モデルはカスタムの
System Messageをサポートしておらず、固定の内部System Messageを使用します。すべての指示はUser Messageを通じて渡す必要があります。マルチターン対話なし:モデルはマルチターン対話をサポートしておらず、最新の質問にのみ回答します。
幻覚のリスク:画像内のテキストが小さすぎるか、解像度が低い場合、モデルは幻覚を起こす可能性があります。さらに、テキスト抽出に関連しない質問への回答の正確性は保証されません。
テキストファイルを処理できない:
課金とレート制限
課金:Qwen-OCR はマルチモーダルモデルです。合計コストは次のように計算されます:(入力トークン数 × 入力の単価) + (出力トークン数 × 出力の単価)。画像トークンの計算方法の詳細については、「画像トークン変換メソッド」をご参照ください。 費用とコスト ページで請求書を表示したり、アカウントにチャージしたりできます。
レート制限:Qwen-OCR のレート制限については、「レート制限」をご参照ください。
無料クォータ (シンガポールリージョンのみ):Qwen-OCR は 100 万トークンの無料クォータを提供します。このクォータは、Model Studio をアクティベートした日、またはモデルの使用リクエストが承認された日から 90 日間有効です。
本番環境への適用
PDF などの複数ページのドキュメントの処理:
分割:
Pythonのpdf2imageなどの画像編集ライブラリを使用して、PDF ファイルの各ページを高品質の画像に変換できます。リクエストの送信:複数画像の入力メソッドを使用して認識できます。
画像の前処理:
入力画像が鮮明で、均一に照明され、過度に圧縮されていないことを確認してください:
情報損失を防ぐために、PNG などのロスレス形式を画像の保存と転送に使用できます。
画像の鮮明度を向上させるために、平均または中央値フィルタリングなどのノイズ除去アルゴリズムを使用して、ノイズの多い画像を滑らかにすることができます。
不均一な照明を補正するために、適応的ヒストグラム均等化などのアルゴリズムを使用して、輝度とコントラストを調整できます。
傾いた画像の場合:DashScope SDK の
enable_rotate: trueパラメーターを使用すると、認識性能が大幅に向上します。非常に小さいまたは非常に大きい画像の場合:
min_pixelsおよびmax_pixelsパラメーターを使用して、処理前に画像がどのようにスケーリングされるかを制御できます。min_pixels:小さい画像を拡大して詳細検出を向上させます。デフォルト値を維持してください。max_pixels:大きすぎる画像が過剰なリソースを消費するのを防ぎます。ほとんどのシナリオでは、デフォルト値で十分です。小さいテキストがはっきりと認識されない場合は、max_pixelsの値を増やすことができます。これによりトークン消費量が増加することに注意してください。
結果の検証:モデルの認識結果にはエラーが含まれる可能性があります。重要なビジネス運用では、手動レビュープロセスを実装するか、検証ルールを追加してモデルの出力の正確性を検証できます。たとえば、ID カード番号や銀行カード番号の形式検証を使用できます。
バッチコール:大規模で非リアルタイムのシナリオでは、バッチ API を使用してバッチジョブを非同期で処理することで、コストを削減できます。
よくある質問
ファイルアップロードメソッドの選択方法
モデルがテキストのローカライズ結果を出力した後、元の画像に検出フレームを描画するにはどうすればよいですか?
API リファレンス
Qwen-OCR の入出力パラメーターについては、「Qwen-OCR API リファレンス」をご参照ください。
エラーコード
呼び出しが失敗した場合は、「エラーメッセージ」でトラブルシューティングを行ってください。









