マルチモーダル埋め込みモデルは、テキスト、画像、または動画を統一された1,024次元浮動小数点ベクトルに変換します。これらのモデルは、動画分類、画像分類、テキストから画像検索などのタスクに適しています。
主要機能
クロスモーダル検索: テキストから画像検索、画像から動画検索、画像検索などのクロスモーダルな意味検索を実行します。
意味的類似度計算: 統一されたベクトル空間で、異なるモダリティのコンテンツ間の意味的類似度を測定します。
コンテンツ分類とクラスタリング: コンテンツの意味的埋め込みに基づいて、インテリジェントなグループ化、タグ付け、クラスタリング分析を実行します。
主要属性: すべてのモダリティ (テキスト、画像、動画) から生成された埋め込みは、同じ意味空間に存在します。これにより、コサイン類似度などのメソッドを使用して、クロスモーダルなマッチングと比較を直接行うことができます。モデル選択と適用方法の詳細については、「テキストおよびマルチモーダル埋め込み」をご参照ください。
このモデルサービスは、中国 (北京) リージョンでのみ利用可能です。サービスを呼び出すには、このリージョンのAPI キーを使用する必要があります。
モデルの概要、選択の推奨事項、使用方法については、「テキストおよびマルチモーダル埋め込み」をご参照ください。
モデル概要
シンガポール
モデル | 埋め込みディメンション | テキスト長制限 | 画像サイズ制限 | 動画サイズ制限 | 料金 (入力トークン100万個あたり) | 無料クォータ(注) |
tongyi-embedding-vision-plus | 1152, 1024, 512, 256, 128, 64 | 1,024 tokens | 単一ファイルは3 MBを超えてはなりません。 | 動画ファイルサイズは最大10 MB | 画像/動画: $0.09 テキスト: $0.09 | 100万トークン 有効期間: Model Studio アクティベーション後90日間 |
tongyi-embedding-vision-flash | 768, 512, 256, 128, 64 | 画像/動画: $0.03 テキスト: $0.09 |
北京
モデル | 埋め込みディメンション | テキスト長制限 | 画像サイズ制限 | 動画サイズ制限 | 料金 (入力トークン100万個あたり) |
qwen3-vl-embedding | 2560, 2048, 1536, 1024, 768, 512, 256 | 32,000 tokens | 最大1画像、最大5 MB | 動画ファイルサイズは最大50 MB | 画像/動画: $0.258 テキスト: $0.1 |
multimodal-embedding-v1 | 1024 | 512 tokens | 最大8画像、各3 MBまで | 動画ファイルサイズは最大10 MB | 無料トライアル |
入力形式と言語制限
融合マルチモーダル埋め込みモデル | ||||
モデル | テキスト | 画像 | 動画 | リクエストあたりの最大要素数 |
qwen3-vl-embedding | 中国語、英語、日本語、韓国語、フランス語、ドイツ語を含む主要33言語をサポート | JPEG、PNG、WEBP、BMP、TIFF、ICO、DIB、ICNS、SGI (URLまたはBase64をサポート) | MP4、AVI、MOV (URLのみ) | リクエストあたりのコンテンツ要素の合計は20を超えてはなりません。画像、テキスト、動画はこの制限を共有します。 |
独立マルチモーダル埋め込みモデル | ||||
モデル | テキスト | 画像 | 動画 | リクエストあたりの最大要素数 |
tongyi-embedding-vision-plus | 中国語/英語 | JPG、PNG、BMP (URLまたはBase64をサポート) | MP4、MPEG、AVI、MOV、MPG、WEBM、FLV、MKV (URLのみ) | コンテンツ要素の数に制限はありません。合計トークン数はトークン制限を超えてはなりません。 |
tongyi-embedding-vision-flash | ||||
multimodal-embedding-v1 | リクエストあたりのコンテンツ要素の合計は20を超えてはなりません。最大1つの画像、1つの動画、20のテキストエントリが合計制限を共有します。 | |||
APIは、単一のテキストセグメント、単一の画像、または単一の動画ファイルのアップロードをサポートしています。また、テキストと画像など、異なるタイプの組み合わせも可能です。一部のモデルは、複数の画像など、同じコンテンツタイプの複数の入力をサポートしています。詳細については、特定のモデルの制限をご参照ください。
前提条件
API キーを取得し、API キーを環境変数として設定する必要があります。SDK を使用して呼び出しを行う場合は、DashScope SDK もインストールする必要があります。
HTTP 呼び出し
POST https://dashscope.aliyuncs.com/api/v1/services/embeddings/multimodal-embedding/multimodal-embedding
リクエスト | マルチモーダル独立埋め込みマルチモーダル融合埋め込み |
リクエストヘッダー | |
Content-Type リクエストのコンテンツタイプ。これを application/json または text/event-stream (Server-Sent Events (SSE) レスポンスを有効にするため) に設定します。 Content-Type リクエストのコンテンツタイプ。 | |
Authorization Model Studio API キーを使用した認証情報。 例: | |
リクエストボディ | |
model モデル名。これを「モデル概要」のモデル名に設定します。 | |
input 入力コンテンツ。 parameters ベクトル処理のパラメーター。HTTP 呼び出しの場合、これらのパラメーターは `parameters` オブジェクトでラップする必要があります。SDK 呼び出しの場合、これらのパラメーターを直接使用できます。 |
レスポンス | 成功レスポンスエラーレスポンス |
output タスク出力情報。 | |
request_id リクエストの一意の識別子。問題の追跡とトラブルシューティングに使用します。 | |
code エラーコード。リクエストが失敗した場合にのみ返されます。詳細については、「エラーコード」をご参照ください。 | |
message 詳細なエラーメッセージ。リクエストが失敗した場合にのみ返されます。詳細については、「エラーコード」をご参照ください。 | |
usage 出力に関する統計。 |
SDK の使用方法
現在の SDK バージョンのリクエストボディ構造は、ネイティブ HTTP 呼び出しのそれとは異なります。SDK の `input` パラメーターは、HTTP 呼び出しの `input.contents` に対応します。
コード例
画像埋め込みの生成
画像URLの使用
import dashscope
import json
from http import HTTPStatus
# URLをご利用の画像のURLに置き換えてください。
image = "https://dashscope.oss-cn-beijing.aliyuncs.com/images/256_1.png"
input = [{'image': image}]
# モデルAPIを呼び出します。
resp = dashscope.MultiModalEmbedding.call(
model="tongyi-embedding-vision-plus",
input=input
)
if resp.status_code == HTTPStatus.OK:
result = {
"status_code": resp.status_code,
"request_id": getattr(resp, "request_id", ""),
"code": getattr(resp, "code", ""),
"message": getattr(resp, "message", ""),
"output": resp.output,
"usage": resp.usage
}
print(json.dumps(result, ensure_ascii=False, indent=4))ローカル画像の使用
次のサンプルコードを使用して、ローカル画像をBase64形式に変換し、multimodal-embedding-v1 モデルを呼び出して埋め込みを生成できます。
import dashscope
import base64
import json
from http import HTTPStatus
# 画像を読み込み、Base64に変換します。xxx.png をご利用の画像ファイル名またはパスに置き換えてください。
image_path = "xxx.png"
with open(image_path, "rb") as image_file:
# ファイルを読み込み、Base64に変換します。
base64_image = base64.b64encode(image_file.read()).decode('utf-8')
# 画像形式を設定します。
image_format = "png" # jpgやbmpなど、実際の形式に基づいてこれを変更してください。
image_data = f"data:image/{image_format};base64,{base64_image}"
# 入力データ。
input = [{'image': image_data}]
# モデルAPIを呼び出します。
resp = dashscope.MultiModalEmbedding.call(
model="tongyi-embedding-vision-plus",
input=input
)
if resp.status_code == HTTPStatus.OK:
result = {
"status_code": resp.status_code,
"request_id": getattr(resp, "request_id", ""),
"code": getattr(resp, "code", ""),
"message": getattr(resp, "message", ""),
"output": resp.output,
"usage": resp.usage
}
print(json.dumps(result, ensure_ascii=False, indent=4))動画埋め込みの生成
マルチモーダル埋め込みモデルは現在、動画ファイルの入力をURLとしてのみサポートしています。ローカル動画の直接渡すことはサポートされていません。
import dashscope
import json
from http import HTTPStatus
# URLをご利用の動画のURLに置き換えてください。
video = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250107/lbcemt/new+video.mp4"
input = [{'video': video}]
# モデルAPIを呼び出します。
resp = dashscope.MultiModalEmbedding.call(
model="tongyi-embedding-vision-plus",
input=input
)
if resp.status_code == HTTPStatus.OK:
result = {
"status_code": resp.status_code,
"request_id": getattr(resp, "request_id", ""),
"code": getattr(resp, "code", ""),
"message": getattr(resp, "message", ""),
"output": resp.output,
"usage": resp.usage
}
print(json.dumps(result, ensure_ascii=False, indent=4))
テキスト埋め込みの生成
import dashscope
import json
from http import HTTPStatus
text = "General multimodal representation model example"
input = [{'text': text}]
# モデルAPIを呼び出します。
resp = dashscope.MultiModalEmbedding.call(
model="tongyi-embedding-vision-plus",
input=input
)
if resp.status_code == HTTPStatus.OK:
result = {
"status_code": resp.status_code,
"request_id": getattr(resp, "request_id", ""),
"code": getattr(resp, "code", ""),
"message": getattr(resp, "message", ""),
"output": resp.output,
"usage": resp.usage
}
print(json.dumps(result, ensure_ascii=False, indent=4))融合埋め込みの生成
import dashscope
import json
import os
from http import HTTPStatus
# マルチモーダル融合埋め込み: テキスト、画像、動画を単一の融合埋め込みに融合します。
# クロスモーダル検索や画像検索などのシナリオに適しています。
text = "This is a test text for generating a multimodal fused embedding."
image = "https://dashscope.oss-cn-beijing.aliyuncs.com/images/256_1.png"
video = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250107/lbcemt/new+video.mp4"
# 入力にはテキスト、画像、動画が含まれます。モデルはそれらを単一の融合埋め込みに融合します。
input_data = [
{
"text": text,
"image": image,
"video": video
}
]
# qwen3-vl-embedding を使用して融合埋め込みを生成します。
resp = dashscope.MultiModalEmbedding.call(
# 環境変数を設定していない場合は、次の行をModel Studio APIキー (api_key="sk-xxx") に置き換えてください。
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="qwen3-vl-embedding",
input=input_data,
# オプションパラメーター: ベクトルディメンションを指定します (サポートされる値: 2560, 2048, 1536, 1024, 768, 512, 256; デフォルト: 2560)
# parameters={"dimension": 1024}
)
print(json.dumps(resp, ensure_ascii=False, indent=4))
出力例
{
"status_code": 200,
"request_id": "40532987-ba72-42aa-a178-bb58b52fb7f3",
"code": "",
"message": "",
"output": {
"embeddings": [
{
"index": 0,
"embedding": [
-0.009490966796875,
-0.024871826171875,
-0.031280517578125,
...
],
"type": "text"
}
]
},
"usage": {
"input_tokens": 10,
"input_tokens_details": {
"image_tokens": 0,
"text_tokens": 10
},
"output_tokens": 1,
"total_tokens": 11
}
}エラーコード
呼び出しが失敗した場合は、トラブルシューティングについては「エラーメッセージ」をご参照ください。