リクエストボディ model string(必須)
使用するモデルの名前。
サポートされているモデルには、Qwen 大規模言語モデル (商用およびオープンソース版)、Qwen-VL、Qwen-Coder、数学モデル、DeepSeek、Kimi、GLM、および MiniMax が含まれます。
具体的なモデル名と請求明細については、「モデルの選択 」をご参照ください 。
messages array(必須)
大規模言語モデル (LLM) に渡すコンテキストを、対話の順序で配置します。
HTTP 経由で呼び出す場合は、messages を input オブジェクト内に配置します。
メッセージタイプ
システムメッセージobject (任意)
LLM のロール、トーン、タスクの目的、または制約を設定するためのシステムメッセージです。通常、messages 配列の最初に配置されます。
QwQ モデルにシステムメッセージを設定することは推奨しません。システムメッセージは QVQ モデルには効果がありません。
プロパティ
content string(必須)
メッセージのコンテンツ。
role string(必須)
システムメッセージのロール。値は system に固定されています。
ユーザーメッセージobject(必須)
モデルに質問、命令、またはコンテキストを渡すために使用されるユーザーメッセージ。
プロパティ
content string または array(必須)
メッセージのコンテンツ。入力がテキストのみの場合、このパラメーターは文字列です。入力に画像などのマルチモーダルデータが含まれる場合、または明示的なキャッシュが有効になっている場合、このパラメーターは配列です。
プロパティ
text string(必須)
入力テキスト。
image string (任意)
画像理解のための画像ファイル。画像は次の 3 つの方法のいずれかで渡すことができます:
公開 URL:公開アクセス可能な画像リンク。
イメージの Base64 エンコーディング (data:image/<format>;base64,<data> フォーマット)。
ローカルファイル:ローカルファイルの絶対パス。
適用モデル:Qwen-VL 、QVQ
例: {"image":"https://xxxx.jpeg"}
video array または string (任意)
Qwen-VL モデル または QVQ モデル を使用する際に渡すビデオ。
イメージリストを渡した場合、タイプは 配列 です。
動画ファイルを渡した場合、型は文字列。
ローカルファイルを渡すには、「ローカルファイル (Qwen-VL) 」または「ローカルファイル (QVQ) 」をご参照ください。
例:
画像リスト:{"video":["https://xx1.jpg",...,"https://xxn.jpg"]}
動画ファイル: {"video":"https://xxx.mp4"}
fps float(任意)
1 秒あたりに抽出するフレーム数。値は [0.1, 10] の範囲でなければなりません。デフォルト値は 2.0 です。
説明
fps パラメーターには 2 つの機能があります:
ビデオファイルが入力の場合、このパラメーターはフレーム抽出の周波数を制御します。f p s 1 秒ごとに 1 フレームが抽出されます。
これは Qwen-VL モデル および QVQ モデル に適用されます。
モデルに隣接するフレーム間の時間間隔を通知し、モデルがビデオの時間的ダイナミクスをよりよく理解するのに役立ちます。これは、ビデオファイルと画像リストの両方の入力に適用されます。この機能は、イベント時間のローカライズやセグメントごとのコンテンツ要約などのシナリオに適しています。
これは Qwen3.7、Qwen3.6、Qwen3.5、Qwen3-VL、Qwen2.5-VL、および QVQ モデルでサポートされています。
大きい fps 値は、スポーツイベントやアクション映画など、動きの速いシナリオに適しています。小さい fps 値は、長時間の動画や比較的静的なコンテンツのシナリオに適しています。
例
イメージリストを渡す場合: {"video":["https://xx1.jpg",...,"https://xxn.jpg"],"fps":2}
動画ファイルを渡す場合: {"video": "https://xx1.mp4","fps":2}
max_frames integer(任意)
動画から抽出できるフレームの最大数です。fps に基づいて計算されたフレーム数が max_frames を超える場合、システムは max_frames の制限内でフレームを均等に抽出するように自動的に調整します。これにより、フレームの総数が制限を超えないようになります。
有効値
qwen3.7 シリーズ、qwen3.6 シリーズ、qwen3.5 シリーズ:最大値およびデフォルト値は 8000 です。
qwen3-vl-plus シリーズ、qwen3-vl-flash シリーズ、qwen3-vl-235b-a22b-thinking、qwen3-vl-235b-a22b-instruct: 最大値およびデフォルト値は 2000 です。
qwen-vl-max、qwen-vl-max-0813、qwen-vl-plus、qwen-vl-plus-0815 の最大値およびデフォルト値は 512 です。
サンプル値
{"type": "video_url","video_url": {"url":"https://xxxx.mp4"},"max_frame": 2000}
OpenAI 互換 API で呼び出す場合、max_frames パラメーターはカスタマイズできません。API は各モデルのデフォルト値を自動的に使用します。
min_pixels integer(任意)
入力イメージまたはビデオフレームの最小ピクセルしきい値を設定します。 入力イメージまたはビデオフレームの総ピクセル数が min_pixels 未満の場合、その総ピクセル数が min_pixels を超えるまで、イメージまたはフレームは拡大されます。
値の範囲
画像入力:
Qwen3.7, Qwen3.6, Qwen3.5、Qwen3-VL のデフォルト値および最小値は 65536 です。
qwen-vl-max、qwen-vl-max-0813、qwen-vl-plus、qwen-vl-plus-0815: デフォルト値および最小値は 4096 です。
その他の qwen-vl-plus モデル、その他の qwen-vl-max モデル、Qwen2.5-VL オープンソースシリーズ、および QVQ シリーズモデルでは、デフォルト値および最小値は 3136 です。
ビデオファイルまたは画像リスト入力:
Qwen3.7, Qwen3.6, Qwen3.5、Qwen3-VL (商用およびオープンソースエディション)、qwen-vl-max、qwen-vl-max-0813、qwen-vl-plus、qwen-vl-plus-0815 の場合、デフォルト値は 65536、最小値は 4096 です。
その他の qwen-vl-plus モデル、その他の qwen-vl-max モデル、Qwen2.5-VL オープンソースシリーズ、および QVQ シリーズモデルの場合、デフォルト値は 50176、最小値は 3136 です。
例
イメージ入力: {"type": "image_url","image_url": {"url":"https://xxxx.jpg"},"min_pixels": 65536}
動画ファイル入力:{"type": "video_url","video_url": {"url":"https://xxxx.mp4"},"min_pixels": 65536}
画像リスト入力:{"type": "video","video": ["https://xx1.jpg",...,"https://xxn.jpg"],"min_pixels": 65536}
max_pixels integer(任意)
入力イメージまたはビデオフレームの最大ピクセルしきい値を設定します。入力イメージまたはビデオの総ピクセル数が [min_pixels, max_pixels] の範囲内である場合、モデルは元のイメージを認識します。入力イメージの総ピクセル数が max_pixels より大きい場合、イメージは総ピクセル数が max_pixels 未満になるまで縮小されます。
例
イメージ入力:{"type": "image_url","image_url": {"url":"https://xxxx.jpg"},"max_pixels": 8388608}
動画ファイル入力:{"type": "video_url","video_url": {"url":"https://xxxx.mp4"},"max_pixels": 655360}
画像リスト入力: {"type": "video","video": ["https://xx1.jpg",...,"https://xxn.jpg"],"max_pixels": 655360}
total_pixels integer(任意)
ビデオから抽出されるすべてのフレームの総ピクセル数 (1 フレームあたりのピクセル数 × 総フレーム数) を制限します。ビデオの総ピクセル数がこの制限を超えた場合、システムは 1 フレームの画素値が [min_pixels, max_pixels] の範囲内に収まるようにビデオフレームをスケールダウンします。これは Qwen-VL モデルおよび QVQ モデルに適用されます。
抽出されたフレームが多い長いビデオの場合、この値を適切に下げることでトークン消費量と処理時間を削減できますが、画像の詳細が失われる可能性があります。
値の範囲
qwen3.7 シリーズ、qwen3.6 シリーズ、qwen3.5 シリーズ: デフォルト値および最大値は 819200000 です。この値は 800000 イメージトークン (32×32 ピクセルあたり 1 イメージトークン) に相当します。
qwen3-vl-plus シリーズ、qwen3-vl-flash シリーズ、qwen3-vl-235b-a22b-thinking、qwen3-vl-235b-a22b-instruct では、デフォルトおよび最大値は 134217728 です。この値は 131072 イメージトークン(32×32 ピクセルあたり 1 イメージトークン)に相当します。
その他の Qwen3-VL オープンソースモデル、qwen-vl-max、qwen-vl-max-0813、qwen-vl-plus、qwen-vl-plus-0815 では、デフォルト値および最小値は 67108864 です。この値は 65536 イメージトークン (32×32 ピクセルあたり 1 イメージトークン) に相当します。
その他の qwen-vl-plus モデル、その他の qwen-vl-max モデル、Qwen2.5-VL オープンソースシリーズ、および QVQ シリーズモデルでは、デフォルト値および最小値は 51380224 です。この値は 65536 イメージトークン (28×28 ピクセルあたり 1 イメージトークン) に相当します。
例
動画ファイルの入力:{"type": "video_url","video_url": {"url":"https://xxxx.mp4"},"total_pixels": 134217728}
画像リスト入力:{"type": "video","video": ["https://xx1.jpg",...,"https://xxn.jpg"],"total_pixels": 134217728}
cache_control object(任意)
これは明示的なキャッシュ をサポートするモデルでのみサポートされています。明示的なキャッシュを有効にするために使用されます。
プロパティ
type string(必須)
値は ephemeral でなければなりません。
role string(必須)
ユーザーメッセージのロール。値は user である必要があります。
アシスタントメッセージ object(任意)
ユーザーメッセージに対するモデルの返信。
プロパティ
content string(任意)
メッセージの内容です。アシスタントメッセージに tool_calls パラメーターが指定されている場合にのみ、任意です。
role string(必須)
値は assistant である必要があります。
partial boolean(任意)
部分補完モードを有効にするかどうかを指定します。詳細およびサポートされているモデルのリストについては、「部分補完モード 」をご参照ください。
tool_calls array(任意)
関数呼び出しを開始した後に返される、ツールと入力パラメーターの情報です。1 つ以上のオブジェクトを含みます。この情報は、前のモデル応答の tool_calls フィールドから取得されます。
プロパティ
id string
ツール応答の ID。
type string
ツールのタイプ。現在、function のみサポートされています。
function object
ツールと入力パラメーター情報。
プロパティ
name string
ツール名。
arguments string
入力パラメーター情報、JSON 文字列形式。
index integer
現在のツール情報の、tool_calls 配列におけるインデックス。
ツールメッセージobject (任意)
ツールの出力情報。
プロパティ
content string(必須)
ツール関数の出力コンテンツ。文字列形式である必要があります。
role string(必須)
値は tool である必要があります。
tool_call_id string(任意)
関数呼び出しを開始した後に返される ID です。response.output.choices[0].message.tool_calls[$index]["id"] を使用して取得できます。これは、ツールメッセージに対応するツールを識別するために使用されます。
temperature float(任意)
サンプリング温度。モデルが生成するテキストの多様性をコントロールします。
温度が高いほどテキストは多様になり、低いほど決定論的になります。
有効値:[0, 2)
HTTP 経由で呼び出す場合は、temperature を parameters オブジェクト内に配置します。
QVQ モデルのデフォルトの温度値を変更することは推奨しません。
top_p float(任意)
核サンプリングの確率しきい値。モデルが生成するテキストの多様性をコントロールします。
top_p 値が高いほどテキストは多様になり、低いほど決定論的になります。
有効値:(0, 1.0]。
Java SDK では、このパラメーターは topP *です。*HTTP 経由で呼び出す場合は、top_p を parameters オブジェクト内に配置します。
QVQ モデルのデフォルトの top_p 値を変更することは推奨しません。
top_k integer(任意)
生成時のサンプリングにおけるサンプル候補セットのサイズ。たとえば、このパラメーターを 50 に設定すると、1 回の生成で最もスコアの高い 50 個のトークンのみがランダムサンプリングのサンプル候補セットを形成するために使用されます。値が大きいほどランダム性が増し、小さいほど決定論的になります。None または 100 より大きい値は、top_k 戦略が有効になっておらず、top_p 戦略のみが有効であることを示します。
値は 0 以上である必要があります。
デフォルトの top_k 値
QVQ シリーズ:10
QwQ シリーズ:40
残りの qwen-vl-plus シリーズ以前のモデル、:1
その他すべてのモデル:20
GLM シリーズ (Alibaba Cloud 提供):20
DeepSeek、Kimi、および MiniMax シリーズは top_k パラメーターをサポートしていません。
Java SDK では、このパラメーターは topK *です。*HTTP 経由で呼び出す場合は、top_k を parameters オブジェクト内に配置します。
QVQ モデルのデフォルトの top_k 値を変更することは推奨しません。
enable_thinking boolean (任意)
ハイブリッド思考モデルの思考モードを有効にするかどうかを指定します。これは、Qwen3.7、Qwen3.6、Qwen3.5、Qwen3、および Qwen3-VL モデル、ならびに DeepSeek-V4-Pro/V4-Flash シリーズ、DeepSeek-V3.2/V3.2-exp/V3.1 シリーズ、Kimi-K2.6/K2.5 シリーズ、および GLM シリーズに適用されます。DeepSeek-V4 シリーズでは、思考モードがデフォルトで有効になっています。reasoning_effort パラメーターを使用して、推論エフォートを調整できます。
有効な値:
true: 機能が有効になります。
有効にした場合、思考内容は reasoning_content フィールドに返されます。
false: 無効
各モデルのデフォルト値については、「サポートされているモデル 」をご参照ください。
Java SDK では、このパラメーターは enableThinking です。HTTP 経由で呼び出す場合は、enable_thinking を parameters オブジェクト内に配置します。
preserve_thinking boolean (任意) デフォルト値は false です。(qwen3.8-max、qwen3.8-flash のデフォルト値: true)
会話履歴内のアシスタントメッセージから reasoning_content をモデルの入力に追加するかどうかを指定します。これは、モデルが過去の思考プロセスを参照する必要があるシナリオに適しています。
現在、qwen3.7-max、qwen3.7-max-2026-05-20 およびそれ以降のスナップショット、qwen3.6-max-preview、qwen3.7-plus、qwen3.7-plus-2026-05-26、qwen3.6-plus、qwen3.6-plus-2026-04-02、qwen3.7-flash、qwen3.7-flash-2026-07-15、qwen3.6-flash、qwen3.6-flash-2026-04-16、qwen3.8-max (デフォルトで有効)、qwen3.8-flash (デフォルトで有効)、kimi-k2.6 (Alibaba Cloud Model Studio にデプロイ)、kimi-k2.7-code (Alibaba Cloud Model Studio にデプロイ、デフォルトで有効)、kimi/kimi-k2.7-code-highspeed (Moonshot AI 提供、デフォルトで有効)、および kimi/kimi-k2.7-code (Moonshot AI 提供、デフォルトで有効) でサポートされています。
重要 (qwen3.8-max、qwen3.8-flash): qwen3.8-max または qwen3.8-flash を使用する場合、preserve_thinking はデフォルトで true になります。reasoning_content フィールドには、すべての過去の reasoning_content を含めて送信する必要があります。reasoning_content を content フィールドに連結しないでください。 モデルのパフォーマンスが低下する可能性があります。
過去のメッセージに reasoning_content が含まれていない場合でも、このパラメーターを有効にしてもエラーは発生しません。
有効にすると、過去の会話の reasoning_content が入力トークン数に含まれ、課金対象となります。
HTTP 経由で呼び出す場合は、preserve_thinking を parameters オブジェクト内に配置してください。Java SDK はサポートされていません。
thinking_budget integer (任意)
思考プロセスの最大長。これは Qwen3.8、Qwen3.7、Qwen3.6、Qwen3.5、Qwen3-VL、Qwen3、GLM および Kimi モデルに適用されます。詳細については、「思考長の制限 」をご参照ください。
デフォルト値は、モデルの最大 Chain-of-Thought 長です。詳細については、「モデルの選択 」をご参照ください。
Java SDK では、このパラメーターは thinkingBudget です。HTTP 経由で呼び出す場合は、thinking_budget を parameters オブジェクト内に配置します。
デフォルト値は、モデルの最大 Chain-of-Thought 長です。
reasoning_effort string (任意)
モデルの推論強度を制御します。有効な値とデフォルト値はモデルによって異なります。
DeepSeek-V4 および GLM シリーズ (デフォルト値: high)
有効な値は、high (高強度の推論) と max (最大強度の推論) です。low と medium は high に、xhigh は max にマップされます。
これは glm-5.2、glm-5.1、glm-5、deepseek-v4-pro、および deepseek-v4-flash に適用されます。
qwen3.8-max、qwen3.8-flash:デフォルト値: xhigh
有効な値:
xhigh (デフォルト): 最大強度の推論
medium: 標準の推論
low: 低強度の推論
OpenAI 標準値のマッピング: max は xhigh に、high は xhigh に、minimal は low に、none は enable_thinking=False にマッピングされます。
上記の有効な値およびマッピングされた値以外の値を設定すると、エラーが発生します。
qwen3.8 シリーズの場合、reasoning_effort と thinking_budget は同時に設定できません。両方を設定するとエラーが発生します。ただし、相互変換をサポートしています:
thinking_budget が設定されていない場合、reasoning_effort のレベルは thinking_budget に自動的にマッピングされます:low は 4096、medium は 16384、xhigh は 262144 に対応します。
reasoning_effort が設定されていない場合、thinking_budget は自動的に reasoning_effort にマッピングされます:0–4096 は low に、4097–16384 は medium に、16385–262144 は xhigh に対応します。
どちらも設定されていない場合、デフォルトの thinking_budget (131072) とデフォルトの reasoning_effort (xhigh) が使用されます。
HTTP 経由で呼び出す場合は、reasoning_effort を parameters オブジェクト内に配置します。
tool_stream boolean (任意) デフォルト値は false です。
このパラメーターは、複雑なツールパラメーターのストリーミング出力の動作にのみ影響し、ストリーミング呼び出しでのみ有効です。すべてのパラメータータイプが文字列であるシンプルなツールパラメーターは、ストリーミング呼び出しが有効になっている限りストリーミングできます。tool_stream はそれらには影響しません。複雑なツールとは、ツール定義において一部のパラメータータイプが配列またはオブジェクトであるツールです。現在、Qwen および GLM シリーズのみがこれをサポートしています。
Qwen シリーズのサポートリスト:
qwen-max シリーズ:qwen3.8-max および qwen3.7-max シリーズのテキストモダリティ
qwen-plus シリーズ:qwen3.7-plus および qwen3.6-plus シリーズのテキストモダリティ、および qwen3.5-plus シリーズのすべてのモダリティ
qwen-flash シリーズ:qwen3.8-flash、qwen3.7-flash、qwen3.6-flash および qwen3.5-flash シリーズのすべてのモダリティ
Qwen シリーズの使用法リファレンス:
tool_stream=false の場合、複雑なツールパラメーターがまとめて出力されます。これはデフォルトの動作であり、複雑なフォーマットの方がより正確です。
tool_stream=true: 複雑なツールパラメーターがストリーム出力されます。これにより、複雑なフォーマットでのタイムアウトのリスクを回避できます。
複雑なツールとは、ツール定義の一部のパラメータータイプが配列またはオブジェクトであるツールです。
GLM シリーズのサポートリスト: glm-4.6、glm-4.7、glm-5、および glm-5.1。
GLM シリーズの使用法リファレンス:
tool_stream=false: ツールパラメーターが一括で出力されます。これはデフォルトの動作であり、複雑なフォーマットはより正確です。
tool_stream=true: ツールパラメーターがストリームで出力されます。これにより、複雑なフォーマットの場合にタイムアウトするリスクを回避できます。
HTTP 経由で呼び出す場合は、tool_stream を parameters オブジェクト内に配置します。
enable_code_interpreter ブール値 (任意) デフォルト値は false です。
コードインタープリター機能を有効にするかどうかを指定します。詳細については、「コードインタープリター 」をご参照ください。
有効な値:
true: 機能を有効にします。
false: 機能を無効にします。
Java SDK はサポートされていません。HTTP 経由で呼び出す場合は、enable_code_interpreter を parameters オブジェクト内に配置します。
clear_thinking boolean(任意) デフォルト値は false です。
マルチターン対話において、前のターンからの reasoning_content (思考プロセス) をモデルのコンテキスト入力として使用するかどうかを制御します。これは、GLM シリーズモデルの glm-5.2、glm-5.1、glm-5、および glm-4.7 でのみサポートされています。
true: 機能を有効にします。この設定を有効にすると、以前のターンの reasoning_content は無視され、表示テキスト、ツール呼び出し、および結果のみがコンテキスト入力として使用されます。これにより、コンテキスト長とコストを削減できます。
false (デフォルト): この機能を無効にします。これにより、以前のターンのreasoning_contentが保持され、コンテキストとともにモデルに提供されます。思考の保持を有効にする場合は、履歴のreasoning_contentを、メッセージ内で完全かつ未変更の状態で、元の順序で渡す必要があります。欠落、トリミング、書き換え、または順序の変更を行うと、パフォーマンスが低下したり、機能が有効にならなくなったりします。
repetition_penalty float(任意)
モデル生成中に連続するシーケンスを繰り返すことに対するペナルティ。repetition_penalty 値が高いほど、モデルの出力における繰り返しを減らすことができます。1.0 の値はペナルティなしを示します。値は 0 より大きい必要があります。
Java SDK では、このパラメーターは repetitionPenalty *です。*HTTP 経由で呼び出す場合は、repetition_penalty を parameters オブジェクト内に配置します。
qwen-vl-plus_2025-01-25 モデルを使用してテキストを抽出する場合、repetition_penalty を 1.0 に設定することを推奨します。
QVQ モデルのデフォルトの repetition_penalty 値を変更することは推奨しません。
presence_penalty float(任意)
モデルがテキストを生成する際のコンテンツの繰り返しを制御します。
有効値:[-2.0, 2.0]。正の値は繰り返しを減らし、負の値は繰り返しを増やします。
クリエイティブな執筆やブレインストーミングなど、多様性、楽しさ、創造性が求められるシナリオでは、この値を増やすことができます。技術文書やフォーマルなテキストなど、一貫性と用語の正確性が重視されるシナリオでは、この値を減らすことができます。
デフォルトの presence_penalty 値
Qwen3.8 (ノンシンキングモード)、Qwen3.7 (ノンシンキングモード)、Qwen3.6 (ノンシンキングモード)、Qwen3.5-Omni、Qwen3.5 (ノンシンキングモード)、qwen3-max-preview (思考モード)、Qwen3 (ノンシンキングモード)、Qwen3-Instruct シリーズ/1.7b/4b (思考モード)、QVQ シリーズ、qwen-max、qwen2.5-vl シリーズ、qwen-vl-max シリーズ、qwen-vl-plus、Qwen3-VL (ノンシンキング):1.5
qwen3-8b/14b/32b/30b-a3b/235b-a22b (思考モード)、qwen-plus/qwen-plus-latest/2025-04-28 (思考モード)、qwen-turbo/qwen-turbo/2025-04-28 (思考モード):0.5
その他すべては 0.0 です。
DeepSeek シリーズ (Alibaba Cloud 提供):deepseek-r1、deepseek-r1-0528、deepseek-r1-distill-qwen 蒸留版:1
Kimi シリーズ (Alibaba Cloud 提供):kimi-k2.7-code、kimi-k2.6、kimi-k2.5:0.0
Kimi シリーズ (Moonshot AI 提供):0.0
MiniMax シリーズ (Alibaba Cloud 提供):MiniMax-M2.5、MiniMax-M2.1:0.0
その他の DeepSeek、Kimi、GLM、および MiniMax モデルにはデフォルト値がありません。
仕組み
パラメーター値が正の場合、モデルはテキスト内に既に存在するトークンにペナルティを適用します。ペナルティはトークンの出現回数とは関係ありません。これにより、これらのトークンが再出現する可能性が減り、コンテンツの繰り返しが減少し、単語の多様性が増します。
例
プロンプト: この文を中国語に翻訳してください: "This movie is good. The plot is good, the acting is good, the music is good, and overall, the whole movie is just good. It is really good, in fact. The plot is so good, and the acting is so good, and the music is so good."
パラメーター値 2.0:この映画は素晴らしいです。プロットは素晴らしく、演技は最高で、音楽も非常に美しいです。全体として、映画全体がただただ信じられないほどです。実際、本当に傑出しています。ストーリーラインは非常にエキサイティングで、パフォーマンスは素晴らしく、サウンドトラックはとても感動的です。
パラメーター値 0.0:この映画は良いです。プロットは良く、演技は良く、音楽も良いです。全体として、映画全体が非常に良いです。実際、本当に素晴らしいです。プロットは非常に良く、演技も非常に優れており、音楽も同様に傑出しています。
パラメーター値 -2.0:この映画は良いです。プロットは良く、演技は良く、音楽も良いです。全体として、映画全体が良いです。実際、本当に良いです。プロットは非常に良く、演技は非常に良く、音楽も非常に良いです。
qwen-vl-plus モデルを使用してテキストを抽出する場合、presence_penalty を 1.5 に設定します。
QVQ モデルのデフォルトの presence_penalty 値を変更しないでください。
Java SDK はこのパラメーターの設定をサポートしていません*。*HTTP 経由で呼び出す場合は、presence_penalty を parameters オブジェクト内に配置します。
vl_high_resolution_images boolean(任意) デフォルト値: false
入力画像のピクセル制限を、16384 トークンに対応するピクセル数に増やすかどうかを指定します。詳細については、「高解像度画像の処理 」をご参照ください。
vl_high_resolution_images: true は、固定解像度方式を使用し、max_pixels 設定を無視します。解像度を超過した場合、この制限内に収まるようにイメージの総ピクセル数が縮小されます。
各モデルのピクセル制限を表示するにはクリック
vl_high_resolution_images が True の場合、ピクセル制限はモデルによって異なります:
Qwen3.8 シリーズ、Qwen3.7 シリーズ、Qwen3.6 シリーズ、Qwen3.5 シリーズ、Qwen3-VL series、qwen-vl-max、qwen-vl-max-0813、qwen-vl-plus、qwen-vl-plus-0815、および モデルの場合、値は 16777216 です。(各 Token は 32*32 ピクセルに対応します。合計値は 16384*32*32 として計算されます。)
QVQ シリーズ、その他の Qwen2.5-VL シリーズのモデル: 12845056 (1 トークンは 28*28 ピクセルに相当し、これは 16384*28*28 です)
vl_high_resolution_images が false の場合、ピクセル制限は max_pixels によって決定されます。入力イメージのピクセル数が max_pixels を超えた場合、イメージは max_pixels の制限内に収まるように縮小されます。各モデルのデフォルトのピクセル制限は、max_pixels のデフォルト値です。
Java SDK では、このパラメーターは vlHighResolutionImages (V2.20.8 以降が必要)*です。*HTTP 経由で呼び出す場合は、vl_high_resolution_images を parameters オブジェクト内に配置します。
vl_enable_image_hw_output ブール値(オプション) デフォルト値は false です。
スケーリングされた画像のディメンションを返すかどうかを指定します。モデルは入力画像をスケーリングします。このパラメーターを True に設定すると、スケーリングされた画像の高さと幅が返されます。ストリーミング出力が有効になっている場合、この情報は最後のチャンクで返されます。これは Qwen-VL モデル でサポートされています。
Java SDK では、このパラメーターは vlEnableImageHwOutput です。必要な最小 Java SDK バージョンは 2.20.8*です。*HTTP 経由で呼び出す場合は、vl_enable_image_hw_output を parameters オブジェクト内に配置します。
max_tokens integer(任意、非推奨予定 )
このパラメーターは非推奨になります。新しい統合では、max_completion_tokens を使用してください。
このパラメーターの意味はモデルによって異なります:
deepseek-v4-pro, deepseek-v4-pro-0813, deepseek-v4-flash, deepseek-v4-flash-0731: モデルの回答と Chain-of-Thought コンテンツの合計トークン数の最大値です。モデルの出力がこの値を超えた場合、生成は早期に停止し、返される finish_reason は length になります。
glm-5.2: thinking_budget パラメーターが渡されない場合、max_tokens は、モデルの回答と Chain-of-Thought コンテンツの合計におけるトークンの最大数です。モデルの出力がこの値を超えると、生成は早期に停止し、返される finish_reason は length になります。 thinking_budget パラメーターが渡された場合、max_tokens はモデルの回答のみのトークンの最大数となり、Chain-of-Thought 部分のトークン数は thinking_budget によって別途コントロールされます。
その他のモデル:モデルの回答におけるトークンの最大値です。生成されたコンテンツがこの値を超えると、生成は途中で停止し、返される finish_reason は length になります。
デフォルト値と最大値は両方ともモデルの最大出力長です。
Java SDK では、このパラメーターは maxTokens です。Qwen-VL モデルの場合、Java SDK では maxLength ですが、2.18.4 以降のバージョンでは maxTokens として設定することもサポートしています*。*HTTP 経由で呼び出す場合は、max_tokens を parameters オブジェクト内に配置します。
max_completion_tokens integer(任意)
Chain-of-Thought とモデルの回答を含む、モデルの出力の最大長です。モデルの出力がこの値を超えた場合、生成は早期に停止し、返される finish_reason は length になります。
デフォルト値と最大値は両方ともモデルの最大出力長です。
max_tokens との違い: max_completion_tokens は完全なモデル出力 (Chain-of-Thought + 回答) を制限するのに対し、max_tokens は回答部分のみを制限します。思考モデルでは、max_completion_tokens の使用を推奨します。
以下のモデルがサポートされています:
Qwen Max:Qwen3.7-Max およびそれ以降のモデル
Qwen Plus:Qwen3.5-Plus およびそれ以降のモデル
Qwen Flash:Qwen3.5-Flash およびそれ以降のモデル
Kimi:kimi-k2.5 およびそれ以降のモデル
GLM:glm-5 およびそれ以降のモデル
MiniMax:MiniMax-M2.5 およびそれ以降のモデル
DeepSeek:deepseek-v3、deepseek-r1、deepseek-r1-0528、deepseek-v3.1、deepseek-v3.2、deepseek-v3.2-exp、deepseek-v4-pro、deepseek-v4-flash、およびそれ以降のモデル
上記のモデルには、第三者が直接提供するモデルは含まれていません。
実際の出力トークン数と指定された max_completion_tokens の値の間には、最大 10 トークンの差異が生じる場合があります。
Java SDK は現在このパラメーターをサポートしていません。HTTP 経由で呼び出す場合は、max_completion_tokens を parameters オブジェクト内に配置します。
seed integer(任意)
乱数シード。このパラメーターは、同じ入力とパラメーターで再現性のある結果を確保するために使用されます。呼び出しで同じ seed 値を渡し、他のパラメーターが変更されない場合、モデルは可能な限り同じ結果を返します。
値の範囲: [0,2<sup>31</sup>−1]。
HTTP 経由で呼び出す場合は、seed を parameters オブジェクト内に配置します。
ストリーム boolean(オプション)デフォルト値は false です。
返信をストリーミングするかどうかを指定します。有効な値は次のとおりです:
false:モデルはすべてのコンテンツを生成してから、一度に結果を返します。
true:モデルはコンテンツを生成しながら出力します。つまり、モデルは生成されるとすぐにコンテンツのチャンクを即座に出力します。
このパラメーターは Python SDK でのみサポートされています。Java SDK でストリーミング出力を実装するには、streamCall インターフェイスを呼び出します。HTTP 経由でストリーミング出力を実装するには、ヘッダーで X-DashScope-SSE を enable として指定します。
Qwen3 商用版 (思考モード)、Qwen3 オープンソース版、QwQ、および QVQ はストリーミング出力のみをサポートしています。
incremental_output boolean(オプション)デフォルトは false です。Qwen3-Max、Qwen3-VL、Qwen3 オープンソース版 、QwQ 、および QVQ モデルの場合、デフォルトは true です。
ストリーミング出力モードで増分出力を有効にするかどうかを指定します。このパラメーターを true に設定することをお勧めします。
値:
false:各出力には、これまでに生成されたシーケンス全体が含まれます。最後の出力が完全な生成結果です。
I
I like
I like apple
I like apple.
true (推奨):出力は増分です。後続の出力には、以前に出力されたコンテンツは含まれません。完全な結果を得るには、これらのチャンクをリアルタイムで 1 つずつ読み取る必要があります。
I
like
apple
.
Java SDK では、このパラメーターは incrementalOutput *です。*HTTP 経由で呼び出す場合は、incremental_output を parameters オブジェクト内に配置します。
思考モードの QwQ モデルおよび Qwen3 モデルでは、このパラメーターを true にのみ設定できます。Qwen3 商用版モデルのデフォルト値は false であるため、思考モードでは手動で true に設定する必要があります。
Qwen3 オープンソースエディションのモデルでは、このパラメーターを false に設定できません。
response_format は オブジェクト (任意) で、デフォルト値は {"type": "text"} です。
返されるコンテンツのフォーマット。有効な値は次のとおりです:
{"type": "text"}: テキスト応答を出力します。
{"type": "json_object"}: 標準フォーマットで JSON 文字列を出力します。
詳細については、「構造化出力 」をご参照ください。
サポートされているモデルのリストについては、「サポートされているモデル 」をご参照ください。
{"type": "json_object"} を指定する場合は、「JSON 形式で出力してください」のように、プロンプトでモデルに JSON を出力するよう明示的に指示する必要があります。そうしないと、エラーが発生します。
Java SDK では、このパラメーターは responseFormat*です。*HTTP 経由で呼び出す場合は、response_format を parameters オブジェクト内に配置します。
プロパティ
type string(必須)
返されるコンテンツのフォーマット。有効な値は次のとおりです:
text: テキスト応答を出力します。
json_object: 標準フォーマットで JSON 文字列を出力します。
result_format 文字列(オプション)デフォルトは text です。Qwen3-Max、Qwen3-VL、QwQ モデル、Qwen3 オープンソースモデル (qwen3-next-80b-a3b-instruct を除く)の場合、デフォルトは message です。
返されるデータのフォーマットです。マルチターン対話 を容易にするために、このパラメーターを message に設定することをお勧めします。
プラットフォームは、今後デフォルト値を message に統一します。
Java SDK では、このパラメーターは resultFormat *です。*HTTP 経由で呼び出す場合は、result_format を parameters オブジェクト内に配置します。
モデルが Qwen-VL、QVQ の場合、値を text に設定しても効果はありません。
思考モードの Qwen3-Max、Qwen3-VL、および Qwen3 モデルは message にのみ設定できます。Qwen3 商用版モデルのデフォルト値は text であるため、message に設定する必要があります。
Java SDK を使用して Qwen3 オープンソースモデルを呼び出し、text を渡した場合、応答は引き続き message フォーマットで返されます。
logprobs boolean (任意) デフォルト値は false です。
出力トークンの対数確率を返すかどうかを指定します。有効な値は次のとおりです:
以下のモデルがサポートされています:
qwen-plus シリーズのスナップショットモデル (安定版モデルを除く)
qwen-turbo シリーズのスナップショットモデル (安定版モデルを除く)
qwen3-vl-plus シリーズ (安定版モデルを含む)
qwen3-vl-flash シリーズ (安定版モデルを含む)
Qwen3 オープンソースモデル
HTTP 経由で呼び出す場合は、logprobs を parameters オブジェクト内に配置します。
top_logprobs integer (任意) デフォルト値は 0 です。
各生成ステップで返す最も可能性の高い候補トークンの数を指定します。
有効値:[0, 5]
このパラメーターは、logprobs が true の場合にのみ有効になります。
Java SDK では、このパラメーターは topLogprobs *です。*HTTP 経由で呼び出す場合は、top_logprobs を parameters オブジェクト内に配置します。
n integer(任意) デフォルト値は 1 です。
生成する応答の数です。値の範囲は 1-4 です。クリエイティブライティングや広告コピーなど、複数の応答を生成する必要があるシナリオでは、より大きい n の値を設定できます。
現在、Qwen3 (ノンシンキングモード) モデルのみがサポートされています。tools パラメーターが渡された場合、値は 1 に固定されます。
より大きな n 値を設定しても入力トークンの消費量は増加しませんが、出力トークンの消費量は増加します。
HTTP 経由で呼び出す場合は、n を parameters オブジェクト内に配置します。
stop string または array(任意)
ストップワードを指定します。stop で指定された文字列または token_id が生成されたテキストに出現すると、生成はただちに停止します。
禁止用語を渡すことで、モデルの出力をコントロールできます。
stop が配列の場合、要素として token_id と文字列を混在させることはできません。たとえば、["Hello",104307] は指定できません。
HTTP 経由で呼び出す場合は、stop を parameters オブジェクト内に配置します。
tools array(任意)
関数呼び出し中にモデルが呼び出すための 1 つ以上のツールオブジェクトを含む配列。詳細については、「関数呼び出し 」をご参照ください。
tools を使用する場合、result_format を メッセージ に設定する必要があります。
関数呼び出しを開始するか、ツール実行結果を送信する際には、tools パラメーターを設定する必要があります。
プロパティ
type string(必須)
ツールタイプ。現在サポートされているのは function のみです。
function object(必須)
プロパティ
name string(必須)
ツール関数の名前。文字と数字で構成され、アンダースコアとハイフンを含めることができます。最大長は 64 文字です。
description string(必須)
ツール関数の説明。モデルがいつ、どのようにツール関数を呼び出すかを選択するのに役立ちます。
パラメーター オブジェクト(オプション) デフォルト値は {} です。
ツールのパラメーターの説明であり、有効な JSON Schema である必要があります。JSON Schema の説明については、このリンク をご参照ください。parameters パラメーターが空の場合、そのツールには時間クエリツールなどの入力パラメーターがないことを意味します。
ツール呼び出しの精度を向上させるには、パラメーターを渡すことをお勧めします。
HTTP 経由で呼び出す場合は、tools を parameters オブジェクト内に配置します。これは、qwen-vl シリーズモデルでは一時的にサポートされていません。
tool_choice 文字列またはオブジェクト (任意) デフォルト値は auto です。
ツール選択戦略。このパラメーターを設定して、特定の種類の問題に対してツール呼び出しメソッドを強制することができます。たとえば、常に特定のツールを使用したり、すべてのツールを無効にしたりします。
auto
LLM はツール戦略を自律的に選択します。
none
特定のリクエストでツール呼び出しを一時的に無効にしたい場合は、tool_choice パラメーターを none に設定できます。
{"type": "function", "function": {"name": "the_function_to_call"}}
特定のツールへの呼び出しを強制する場合、 tool_choice パラメーターを {"type": "function", "function": {"name": "the_function_to_call"}} に設定できます。ここで、 the_function_to_call は指定されたツール関数の名前です。
思考モードのモデルは、特定のツールへの呼び出しを強制することをサポートしていません。
Java SDK では、このパラメーターは toolChoice *です。*HTTP 経由で呼び出す場合は、tool_choice を parameters オブジェクト内に配置します。
parallel_tool_calls boolean (任意) デフォルト値は false です。
並列ツール呼び出しを有効にするかどうかを指定します。
有効な値:
並列ツール呼び出しの詳細については、「並列ツール呼び出し 」をご参照ください。
Java SDK では、このパラメーターは parallelToolCalls *です。*HTTP 経由で呼び出す場合は、parallel_tool_calls を parameters オブジェクト内に配置します。
テキスト入力 Python import os
from dashscope import MultiModalConversation
import dashscope
# 以下はシンガポールリージョンのベース URL です。呼び出し時に {WorkspaceId} を実際のワークスペース ID に置き換えてください。リージョンによって URL は異なります。
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
messages = [
{'role': 'system', 'content': [{'text': 'あなたは役立つアシスタントです。'}]},
{'role': 'user', 'content': [{'text': 'あなたは誰ですか?'}]}
]
response = MultiModalConversation.call(
# 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: api_key="sk-xxx"
# シンガポール/米国 (バージニア) と中国 (北京) リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
api_key=os.getenv('DASHSCOPE_API_KEY'),
model="qwen3.8-max", # この例では qwen3.8-max を使用しています。必要に応じて、他のモデル名に置き換えることができます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
messages=messages,
)
print(response)
Java // DashScope SDK V2.12.0 以降の使用を推奨します。
import java.util.Arrays;
import java.util.Collections;
import java.lang.System;
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.JsonUtils;
import com.alibaba.dashscope.protocol.Protocol;
public class Main {
public static MultiModalConversationResult callWithMessage() throws ApiException, NoApiKeyException, UploadFileException {
// 以下はシンガポールリージョンのベース URL です。呼び出し時に {WorkspaceId} を実際のワークスペース ID に置き換えてください。リージョンによって URL は異なります。
MultiModalConversation conv = new MultiModalConversation(Protocol.HTTP.getValue(), "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1");
MultiModalMessage systemMsg = MultiModalMessage.builder()
.role(Role.SYSTEM.getValue())
.content(Arrays.asList(Collections.singletonMap("text", "あなたは役立つアシスタントです。")))
.build();
MultiModalMessage userMsg = MultiModalMessage.builder()
.role(Role.USER.getValue())
.content(Arrays.asList(Collections.singletonMap("text", "あなたは誰ですか?")))
.build();
MultiModalConversationParam param = MultiModalConversationParam.builder()
// 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: .apiKey("sk-xxx")
// シンガポール/米国 (バージニア) と中国 (北京) リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
// この例では qwen3.8-max を使用しています。必要に応じて、他のモデル名に置き換えることができます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
.model("qwen3.8-max")
.messages(Arrays.asList(systemMsg, userMsg))
.build();
return conv.call(param);
}
public static void main(String[] args) {
try {
MultiModalConversationResult result = callWithMessage();
System.out.println(JsonUtils.toJson(result));
} catch (ApiException | NoApiKeyException | UploadFileException e) {
// ロギングフレームワークを使用して例外情報を記録します。
System.err.println("An error occurred while calling the generation service: " + e.getMessage());
}
System.exit(0);
}
}
PHP (HTTP) <?php
$url = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation";
// シンガポール/米国 (バージニア) と中国 (北京) リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
$apiKey = getenv('DASHSCOPE_API_KEY');
$data = [
// この例では qwen3.8-max を使用しています。必要に応じて、他のモデル名に置き換えることができます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
"model" => "qwen3.8-max",
"input" => [
"messages" => [
[
"role" => "system",
"content" => [["text" => "あなたは役立つアシスタントです。"]]
],
[
"role" => "user",
"content" => [["text" => "あなたは誰ですか?"]]
]
]
],
"parameters" => [
"result_format" => "message"
]
];
$jsonData = json_encode($data);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer $apiKey",
"Content-Type: application/json"
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($httpCode == 200) {
echo "Response: " . $response;
} else {
echo "Error: " . $httpCode . " - " . $response;
}
curl_close($ch);
?>
Node.js (HTTP) DashScope は Node.js 環境用の SDK を提供していません。OpenAI Node.js SDK を使用して呼び出しを行うには、このトピックの「OpenAI」 セクションをご参照ください。
import fetch from 'node-fetch';
// シンガポール/米国 (バージニア) と中国 (北京) リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
const apiKey = process.env.DASHSCOPE_API_KEY;
const data = {
model: "qwen3.8-max", // この例では qwen3.8-max を使用しています。必要に応じて、他のモデル名に置き換えることができます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
input: {
messages: [
{
role: "system",
content: [{"text": "あなたは役立つアシスタントです。"}]
},
{
role: "user",
content: [{"text": "あなたは誰ですか?"}]
}
]
},
parameters: {
result_format: "message"
}
};
fetch('https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation', {
method: 'POST',
headers: {
'Authorization': `Bearer ${apiKey}`,
'Content-Type': 'application/json'
},
body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => {
console.log(JSON.stringify(data));
})
.catch(error => {
console.error('Error:', error);
});
C# (HTTP) using System.Net.Http.Headers;
using System.Text;
class Program
{
private static readonly HttpClient httpClient = new HttpClient();
static async Task Main(string[] args)
{
// 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: string? apiKey = "sk-xxx";
// シンガポール/米国 (バージニア) と中国 (北京) リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
string? apiKey = Environment.GetEnvironmentVariable("DASHSCOPE_API_KEY");
if (string.IsNullOrEmpty(apiKey))
{
Console.WriteLine("The API key is not set. Make sure that the 'DASHSCOPE_API_KEY' environment variable is set.");
return;
}
// リクエスト URL とコンテンツを設定します。
string url = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation";
// この例では qwen3.8-max を使用しています。必要に応じて、他のモデル名に置き換えることができます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
string jsonContent = @"{
""model"": ""qwen3.8-max"",
""input"": {
""messages"": [
{
""role"": ""system"",
""content"": [{""text"": ""あなたは役立つアシスタントです。""}]
},
{
""role"": ""user"",
""content"": [{""text"": ""あなたは誰ですか?""}]
}
]
},
""parameters"": {
""result_format"": ""message""
}
}";
// リクエストを送信し、応答を取得します。
string result = await SendPostRequestAsync(url, jsonContent, apiKey);
// 結果を出力します。
Console.WriteLine(result);
}
private static async Task<string> SendPostRequestAsync(string url, string jsonContent, string apiKey)
{
using (var content = new StringContent(jsonContent, Encoding.UTF8, "application/json"))
{
// リクエストヘッダーを設定します。
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
// リクエストを送信し、応答を取得します。
HttpResponseMessage response = await httpClient.PostAsync(url, content);
// 応答を処理します。
if (response.IsSuccessStatusCode)
{
return await response.Content.ReadAsStringAsync();
}
else
{
return $"Request failed: {response.StatusCode}";
}
}
}
}
Go (HTTP) DashScope は Go 用の SDK を提供していません。OpenAI Go SDK を使用して呼び出しを行うには、このトピックの「OpenAI-Go」 セクションをご参照ください。
package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"log"
"net/http"
"os"
)
type ContentItem struct {
Text string `json:"text"`
}
type Message struct {
Role string `json:"role"`
Content []ContentItem `json:"content"`
}
type Input struct {
Messages []Message `json:"messages"`
}
type Parameters struct {
ResultFormat string `json:"result_format"`
}
type RequestBody struct {
Model string `json:"model"`
Input Input `json:"input"`
Parameters Parameters `json:"parameters"`
}
func main() {
// HTTP クライアントを作成します。
client := &http.Client{}
// リクエストボディを構築します。
requestBody := RequestBody{
// この例では qwen3.8-max を使用しています。必要に応じて、他のモデル名に置き換えることができます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
Model: "qwen3.8-max",
Input: Input{
Messages: []Message{
{
Role: "system",
Content: []ContentItem{{Text: "あなたは役立つアシスタントです。"}},
},
{
Role: "user",
Content: []ContentItem{{Text: "あなたは誰ですか?"}},
},
},
},
Parameters: Parameters{
ResultFormat: "message",
},
}
jsonData, err := json.Marshal(requestBody)
if err != nil {
log.Fatal(err)
}
// POST リクエストを作成します。
req, err := http.NewRequest("POST", "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation", bytes.NewBuffer(jsonData))
if err != nil {
log.Fatal(err)
}
// リクエストヘッダーを設定します。
// 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: apiKey := "sk-xxx"
// シンガポール/米国 (バージニア) と中国 (北京) リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
apiKey := os.Getenv("DASHSCOPE_API_KEY")
req.Header.Set("Authorization", "Bearer "+apiKey)
req.Header.Set("Content-Type", "application/json")
// リクエストを送信します。
resp, err := client.Do(req)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
// レスポンスボディを読み取ります。
bodyText, err := io.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
// 応答内容を出力します。
fmt.Printf("%s\n", bodyText)
}
curl {WorkspaceId} を実際のワークスペース ID に置き換えます。
シンガポール、米国 (バージニア)、中国 (北京) リージョンでは API キーが異なります。詳細については、「API キーの取得
curl --location "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation" \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"model": "qwen3.8-max",
"input":{
"messages":[
{
"role": "system",
"content": [{"text": "あなたは役立つアシスタントです。"}]
},
{
"role": "user",
"content": [{"text": "あなたは誰ですか?"}]
}
]
},
"parameters": {
"result_format": "message"
}
}'
ストリーミング出力
詳細については、「ストリーミング出力 」をご参照ください。
テキスト生成モデル
Python import os
import dashscope
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
messages = [
{'role':'system','content':'あなたは役立つアシスタントです'},
{'role': 'user','content': 'あなたは誰ですか?'}
]
responses = dashscope.Generation.call(
# 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: api_key="sk-xxx"
# シンガポール/米国 (バージニア) と中国 (北京) リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
api_key=os.getenv('DASHSCOPE_API_KEY'),
# この例では qwen-plus を使用しています。必要に応じて、他のテキスト生成モデルに置き換えてください。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
model="qwen-plus",
messages=messages,
result_format='message',
stream=True,
incremental_output=True
)
for response in responses:
print(response)
Java import java.util.Arrays;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.JsonUtils;
import io.reactivex.Flowable;
import java.lang.System;
import com.alibaba.dashscope.protocol.Protocol;
public class Main {
private static final Logger logger = LoggerFactory.getLogger(Main.class);
private static void handleGenerationResult(GenerationResult message) {
System.out.println(JsonUtils.toJson(message));
}
public static void streamCallWithMessage(Generation gen, Message userMsg)
throws NoApiKeyException, ApiException, InputRequiredException {
GenerationParam param = buildGenerationParam(userMsg);
Flowable<GenerationResult> result = gen.streamCall(param);
result.blockingForEach(message -> handleGenerationResult(message));
}
private static GenerationParam buildGenerationParam(Message userMsg) {
return GenerationParam.builder()
// 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: .apiKey("sk-xxx")
// シンガポール/米国 (バージニア) と中国 (北京) リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
// この例では qwen-plus を使用しています。必要に応じて、他のテキスト生成モデルに置き換えてください。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
.model("qwen-plus")
.messages(Arrays.asList(userMsg))
.resultFormat(GenerationParam.ResultFormat.MESSAGE)
.incrementalOutput(true)
.build();
}
public static void main(String[] args) {
try {
Generation gen = new Generation(Protocol.HTTP.getValue(), "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1");
Message userMsg = Message.builder().role(Role.USER.getValue()).content("あなたは誰ですか?").build();
streamCallWithMessage(gen, userMsg);
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
logger.error("An exception occurred: {}", e.getMessage());
}
System.exit(0);
}
}
curl curl --location "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation" \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "Content-Type: application/json" \
--header "X-DashScope-SSE: enable" \
--data '{
"model": "qwen-plus",
"input":{
"messages":[
{
"role": "system",
"content": "あなたは役立つアシスタントです。"
},
{
"role": "user",
"content": "あなたは誰ですか?"
}
]
},
"parameters": {
"result_format": "message",
"incremental_output":true
}
}'
マルチモーダルモデル
Python import os
from dashscope import MultiModalConversation
import dashscope
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
messages = [
{
"role": "user",
"content": [
{"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"},
{"text": "画像には何が描かれていますか?"}
]
}
]
responses = 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='qwen3-vl-plus', # これを別のマルチモーダルモデルに置き換え、それに応じてメッセージを修正できます。
messages=messages,
stream=True,
incremental_output=True)
full_content = ""
print("Streaming output content:")
for response in responses:
if response["output"]["choices"][0]["message"].content:
print(response.output.choices[0].message.content[0]['text'])
full_content += response.output.choices[0].message.content[0]['text']
print(f"Full content: {full_content}")
Java import java.util.Arrays;
import java.util.Collections;
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 {
Constants.baseHttpApiUrl="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
}
public static void streamCall()
throws ApiException, NoApiKeyException, UploadFileException {
MultiModalConversation conv = new MultiModalConversation();
// 可変マップを作成する必要があります。
MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue())
.content(Arrays.asList(Collections.singletonMap("image", "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"),
Collections.singletonMap("text", "画像には何が描かれていますか?"))).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("qwen3-vl-plus") // これを別のマルチモーダルモデルに置き換え、それに応じてメッセージを修正できます。
.messages(Arrays.asList(userMessage))
.incrementalOutput(true)
.build();
Flowable<MultiModalConversationResult> result = conv.streamCall(param);
result.blockingForEach(item -> {
try {
var content = item.getOutput().getChoices().get(0).getMessage().getContent();
// コンテンツが存在し、空でないことを確認します。
if (content != null && !content.isEmpty()) {
System.out.println(content.get(0).get("text"));
}
} catch (Exception e){
System.exit(0);
}
});
}
public static void main(String[] args) {
try {
streamCall();
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}
curl curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-H 'X-DashScope-SSE: enable' \
-d '{
"model": "qwen3-vl-plus",
"input":{
"messages":[
{
"role": "user",
"content": [
{"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"},
{"text": "画像には何が描かれていますか?"}
]
}
]
},
"parameters": {
"incremental_output": true
}
}'
画像入力
大規模言語モデル (LLM) を使用して画像を分析する方法の詳細については、「画像と動画の理解 」をご参照ください。
Python import os
import dashscope
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
messages = [
{
"role": "user",
"content": [
{"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"},
{"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/tiger.png"},
{"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/rabbit.png"},
{"text": "これらは何ですか?"}
]
}
]
response = dashscope.MultiModalConversation.call(
# シンガポール、バージニア、北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
api_key=os.getenv('DASHSCOPE_API_KEY'),
# この例では qwen-vl-max を使用しています。必要に応じて、他のモデル名に置き換えることができます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
model='qwen-vl-max',
messages=messages
)
print(response)
Java // Copyright (c) Alibaba, Inc. and its affiliates.
import java.util.Arrays;
import java.util.Collections;
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.JsonUtils;
import com.alibaba.dashscope.utils.Constants;
public class Main {
static {
Constants.baseHttpApiUrl="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
}
public static void simpleMultiModalConversationCall()
throws ApiException, NoApiKeyException, UploadFileException {
MultiModalConversation conv = new MultiModalConversation();
MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue())
.content(Arrays.asList(
Collections.singletonMap("image", "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"),
Collections.singletonMap("image", "https://dashscope.oss-cn-beijing.aliyuncs.com/images/tiger.png"),
Collections.singletonMap("image", "https://dashscope.oss-cn-beijing.aliyuncs.com/images/rabbit.png"),
Collections.singletonMap("text", "これらは何ですか?"))).build();
MultiModalConversationParam param = MultiModalConversationParam.builder()
// 環境変数を設定していない場合は、次の行を .apiKey("sk-xxx") に置き換え、Model Studio API キーを使用してください。
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
// この例では qwen-vl-plus を使用しています。必要に応じて、他のモデル名に置き換えることができます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
.model("qwen-vl-plus")
.message(userMessage)
.build();
MultiModalConversationResult result = conv.call(param);
System.out.println(JsonUtils.toJson(result));
}
public static void main(String[] args) {
try {
simpleMultiModalConversationCall();
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}
curl {WorkspaceId} を実際のワークスペース ID に置き換えます。
シンガポール、米国 (バージニア)、中国 (北京) リージョンでは API キーが異なります。API キーを取得するには、「API キーの取得
curl --location 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "qwen-vl-plus",
"input":{
"messages":[
{
"role": "user",
"content": [
{"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"},
{"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/tiger.png"},
{"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/rabbit.png"},
{"text": "これらは何ですか?"}
]
}
]
}
}'
動画入力
以下の例は、ビデオフレームの入力方法を示しています。ビデオファイルの入力など、他の方法の詳細については、「視覚理解 」をご参照ください。
Python import os
# DashScope SDK のバージョンは 1.20.10 以降である必要があります。
import dashscope
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
messages = [{"role": "user",
"content": [
# Qwen2.5-VL シリーズのモデルを使用し、画像のリストを入力する場合、fps パラメーターを設定できます。このパラメーターは、元のビデオから 1/fps 秒ごとに画像が抽出されることを指定します。
{"video":["https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/xzsgiz/football1.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/tdescd/football2.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/zefdja/football3.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/aedbqh/football4.jpg"],
"fps":2},
{"text": "このビデオのイベントを説明してください"}]}]
response = dashscope.MultiModalConversation.call(
# 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: api_key="sk-xxx"
# シンガポール/バージニアと北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
api_key=os.getenv("DASHSCOPE_API_KEY"),
model='qwen-vl-max', # この例では qwen-vl-max を使用しています。必要に応じて、他のモデル名に置き換えてください。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/models をご参照ください
messages=messages
)
print(response["output"]["choices"][0]["message"].content[0]["text"])
Java // DashScope SDK のバージョンは 2.18.3 以降である必要があります。
import java.util.Arrays;
import java.util.Collections;
import java.util.Map;
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 {
Constants.baseHttpApiUrl="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
}
private static final String MODEL_NAME = "qwen-vl-max"; // この例では qwen-vl-max を使用しています。必要に応じて、他のモデル名に置き換えてください。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/models をご参照ください
public static void videoImageListSample() throws ApiException, NoApiKeyException, UploadFileException {
MultiModalConversation conv = new MultiModalConversation();
MultiModalMessage systemMessage = MultiModalMessage.builder()
.role(Role.SYSTEM.getValue())
.content(Arrays.asList(Collections.singletonMap("text", "あなたは役立つアシスタントです。")))
.build();
// Qwen2.5-VL シリーズのモデルを使用し、画像のリストを入力する場合、fps パラメーターを設定できます。このパラメーターは、元のビデオから 1/fps 秒ごとに画像が抽出されることを指定します。
Map<String, Object> params = Map.of(
"video", Arrays.asList("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/xzsgiz/football1.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/tdescd/football2.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/zefdja/football3.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/aedbqh/football4.jpg"),
"fps",2);
MultiModalMessage userMessage = MultiModalMessage.builder()
.role(Role.USER.getValue())
.content(Arrays.asList(
params,
Collections.singletonMap("text", "このビデオのイベントを説明してください")))
.build();
MultiModalConversationParam param = MultiModalConversationParam.builder()
// 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: .apiKey("sk-xxx")
// シンガポール/バージニアと北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model(MODEL_NAME)
.messages(Arrays.asList(systemMessage, userMessage)).build();
MultiModalConversationResult result = conv.call(param);
System.out.print(result.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("text"));
}
public static void main(String[] args) {
try {
videoImageListSample();
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}
curl {WorkspaceId} を実際のワークスペース ID に置き換えます。
シンガポール、米国 (バージニア)、中国 (北京) リージョンでは API キーが異なります。詳細については、「API キーの取得
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "qwen-vl-max",
"input": {
"messages": [
{
"role": "user",
"content": [
{
"video": [
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/xzsgiz/football1.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/tdescd/football2.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/zefdja/football3.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/aedbqh/football4.jpg"
],
"fps":2
},
{
"text": "このビデオのイベントを説明してください"
}
]
}
]
}
}'
ツール呼び出し
関数呼び出しフローの完全なコードについては、「概要 」をご参照ください。
Python import os
import dashscope
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
tools = [
{
"type": "function",
"function": {
"name": "get_current_time",
"description": "現在時刻を取得するのに便利です。",
"parameters": {}
}
},
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "特定の都市の天気を取得するのに便利です。",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "北京、杭州、余杭区などの都市または地区。"
}
}
},
"required": [
"location"
]
}
}
]
messages = [{"role": "user", "content": [{"text": "杭州の天気はどうですか?"}]}]
response = dashscope.MultiModalConversation.call(
# 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: api_key="sk-xxx"
# シンガポール、バージニア、北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
api_key=os.getenv('DASHSCOPE_API_KEY'),
# この例では qwen3.8-max を使用しています。必要に応じて、他のモデルに置き換えることができます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
model='qwen3.8-max',
messages=messages,
tools=tools,
)
print(response)
Java import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import com.alibaba.dashscope.aigc.conversation.ConversationParam.ResultFormat;
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 java.util.Collections;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.tools.FunctionDefinition;
import com.alibaba.dashscope.tools.ToolFunction;
import com.alibaba.dashscope.utils.JsonUtils;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.github.victools.jsonschema.generator.Option;
import com.github.victools.jsonschema.generator.OptionPreset;
import com.github.victools.jsonschema.generator.SchemaGenerator;
import com.github.victools.jsonschema.generator.SchemaGeneratorConfig;
import com.github.victools.jsonschema.generator.SchemaGeneratorConfigBuilder;
import com.github.victools.jsonschema.generator.SchemaVersion;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import com.alibaba.dashscope.utils.Constants;
public class Main {
// 以下はシンガポールリージョンのベース URL です。呼び出し時に {WorkspaceId} を実際のワークスペース ID に置き換えてください。リージョンによって URL は異なります。
static {Constants.baseHttpApiUrl="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";}
public class GetWeatherTool {
private String location;
public GetWeatherTool(String location) {
this.location = location;
}
public String call() {
return location + " is sunny today.";
}
}
public class GetTimeTool {
public GetTimeTool() {
}
public String call() {
LocalDateTime now = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String currentTime = "Current time: " + now.format(formatter) + ".";
return currentTime;
}
}
public static void SelectTool()
throws NoApiKeyException, ApiException, InputRequiredException {
SchemaGeneratorConfigBuilder configBuilder =
new SchemaGeneratorConfigBuilder(SchemaVersion.DRAFT_2020_12, OptionPreset.PLAIN_JSON);
SchemaGeneratorConfig config = configBuilder.with(Option.EXTRA_OPEN_API_FORMAT_VALUES)
.without(Option.FLATTENED_ENUMS_FROM_TOSTRING).build();
SchemaGenerator generator = new SchemaGenerator(config);
ObjectNode jsonSchema_weather = generator.generateSchema(GetWeatherTool.class);
ObjectNode jsonSchema_time = generator.generateSchema(GetTimeTool.class);
FunctionDefinition fdWeather = FunctionDefinition.builder().name("get_current_weather").description("指定されたエリアの天気を取得します")
.parameters(JsonUtils.parseString(jsonSchema_weather.toString()).getAsJsonObject()).build();
FunctionDefinition fdTime = FunctionDefinition.builder().name("get_current_time").description("現在時刻を取得します")
.parameters(JsonUtils.parseString(jsonSchema_time.toString()).getAsJsonObject()).build();
MultiModalMessage systemMsg = MultiModalMessage.builder().role(Role.SYSTEM.getValue())
.content(Arrays.asList(Collections.singletonMap("text", "あなたは役立つアシスタントです。質問されたときは、可能な限りツールを使用してください。")))
.build();
MultiModalMessage userMsg = MultiModalMessage.builder().role(Role.USER.getValue()).content(Arrays.asList(Collections.singletonMap("text", "杭州の天気"))).build();
List<MultiModalMessage> messages = new ArrayList<>();
messages.addAll(Arrays.asList(systemMsg, userMsg));
MultiModalConversationParam param = MultiModalConversationParam.builder()
// シンガポール、バージニア、北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
// この例では qwen3.8-max を使用しています。必要に応じて、他のモデルに置き換えることができます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
.model("qwen3.8-max")
.messages(messages)
.tools(Arrays.asList(
ToolFunction.builder().function(fdWeather).build(),
ToolFunction.builder().function(fdTime).build()))
.build();
MultiModalConversation conv = new MultiModalConversation();
MultiModalConversationResult result = conv.call(param);
System.out.println(JsonUtils.toJson(result));
}
public static void main(String[] args) {
try {
SelectTool();
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
System.out.println(String.format("Exception %s", e.getMessage()));
}
System.exit(0);
}
}
curl {WorkspaceId} を実際のワークスペース ID に置き換えます。
シンガポール、米国 (バージニア)、中国 (北京) リージョンでは API キーが異なります。詳細については、「API キーの取得
以下の URL はシンガポールリージョン用です。
curl --location "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation" \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"model": "qwen3.8-max",
"input": {
"messages": [{
"role": "user",
"content": [{"text": "杭州の天気はどうですか?"}]
}]
},
"parameters": {
"result_format": "message",
"tools": [{
"type": "function",
"function": {
"name": "get_current_time",
"description": "現在時刻を取得するのに便利です。",
"parameters": {}
}
},{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "特定の都市の天気を取得するのに便利です。",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "北京、杭州、余杭区などの都市または地区。"
}
}
},
"required": ["location"]
}
}]
}
}'
非同期呼び出し # Dashscope Python SDK はバージョン 1.19.0 以降である必要があります。
import asyncio
import platform
import os
import dashscope
from dashscope.aigc.multimodal_conversation import AioMultiModalConversation
# 以下のベース URL はシンガポールリージョン用です。{WorkspaceId} を実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
async def main():
response = await AioMultiModalConversation.call(
# 環境変数を設定していない場合は、次の行を api_key="sk-xxx" に置き換えてください。sk-xxx は Model Studio API キーです。
# シンガポール、バージニア、北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
api_key=os.getenv('DASHSCOPE_API_KEY'),
# この例では qwen3.8-max モデルを使用しています。必要に応じてモデル名を変更できます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
model="qwen3.8-max",
messages=[{"role": "user", "content": [{"text": "あなたは誰ですか?"}]}],
)
print(response)
if platform.system() == "Windows":
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
asyncio.run(main())
ドキュメント理解 Python import os
import dashscope
# 現在、qwen-long-latest モデルは中国 (北京) リージョンでのみ呼び出すことができます。
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
messages = [
{'role': 'system', 'content': 'あなたは役立つアシスタントです'},
# '{FILE_ID}' を実際の会話シナリオで使用されるファイル ID に置き換えてください。
{'role':'system','content':f'fileid://{FILE_ID}'},
{'role': 'user', 'content': 'この記事は何についてですか?'}]
response = dashscope.Generation.call(
# 環境変数が設定されていない場合は、次の行を Model Studio API キーに置き換えてください: api_key="sk-xxx"
api_key=os.getenv('DASHSCOPE_API_KEY'),
model="qwen-long-latest",
messages=messages,
result_format='message'
)
print(response)
Java import os
import dashscope
# 現在、qwen-long-latest モデルは中国 (北京) リージョンでのみ呼び出すことができます。
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
messages = [
{'role': 'system', 'content': 'あなたは役立つアシスタントです'},
# '{FILE_ID}' を実際の会話シナリオで使用されるファイル ID に置き換えてください。
{'role':'system','content':f'fileid://{FILE_ID}'},
{'role': 'user', 'content': 'この記事は何についてですか?'}]
response = dashscope.Generation.call(
# 環境変数が設定されていない場合は、次の行を Model Studio API キーに置き換えてください: api_key="sk-xxx"
api_key=os.getenv('DASHSCOPE_API_KEY'),
model="qwen-long-latest",
messages=messages,
result_format='message'
)
print(response)
curl
現在、ドキュメント理解モデルを呼び出せるのは中国 (北京) リージョンのみです。
{FILE_ID} を実際の会話シナリオで使用されるファイル ID に置き換えてください。
curl --location "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation" \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"model": "qwen-long-latest",
"input":{
"messages":[
{
"role": "system",
"content": "あなたは役立つアシスタントです。"
},
{
"role": "system",
"content": "fileid://{FILE_ID}"
},
{
"role": "user",
"content": "この記事は何についてですか?"
}
]
},
"parameters": {
"result_format": "message"
}
}'