Les modèles d'embedding multimodal convertissent le texte, les images et les vidéos en embeddings au sein d'un espace sémantique partagé. Cette fonctionnalité permet la recherche intermodale, la classification de contenu et la recherche par similarité.
Fonctionnalités principales
- Recherche intermodale : Effectuez des recherches sémantiques entre différents types de contenu, par exemple du texte vers l'image, de la vidéo vers l'image ou d'une image à une autre.
- Similarité sémantique : Mesurez la proximité sémantique entre divers types de contenus dans un espace d'embedding unifié.
- Classification et clustering de contenu : Regroupez, étiquetez et organisez le contenu en clusters selon les embeddings sémantiques.
Fonctionnalité clé : Les embeddings de toutes les modalités (texte, images et vidéo) partagent le même espace sémantique, ce qui permet la comparaison et la mise en correspondance directes entre modalités via des méthodes telles que la similarité cosinus. Consultez Embedding textuel et multimodal pour plus de détails sur la sélection et l'utilisation des modèles.
ImportantCe service de modèle est disponible uniquement dans la région Chine (Pékin). Pour appeler ce service, utilisez une clé API provenant de cette région.
Types d'embeddings
Le modèle d'embedding multimodal prend en charge deux méthodes de génération d'embeddings :
-
Embedding indépendant multimodal : Génère un embedding distinct pour chaque entrée (texte, image, vidéo ou plusieurs images) spécifiée dans
contents. Par exemple, une requête contenant une chaîne de texte et une image renvoie deux embeddings indépendants. Cette méthode convient parfaitement à la comparaison d'éléments individuels, comme lors de recherches image-image ou texte-image. -
Embedding fusionné multimodal : Fusionne toutes les entrées de
contentsen un seul embedding afin d'obtenir une représentation sémantique intermodale unifiée. Ce mode est adapté aux scénarios nécessitant une compréhension globale du contenu multimodal, par exemple la fusion d'une image produit avec sa description textuelle pour faciliter la recherche. Pourqwen3-vl-embedding, activez la fusion en définissantenable_fusion=true. L'embedding fusionné prend en charge les combinaisons suivantes :- Fusion de texte et d'image
- Fusion de texte et de vidéo
- Fusion de plusieurs images avec du texte (en passant plusieurs entrées
image) - Fusion combinant images, vidéo et texte
qwen2.5-vl-embeddingprend en charge uniquement les embeddings fusionnés, et non les embeddings indépendants.tongyi-embedding-vision-plusettongyi-embedding-vision-flashprennent en charge uniquement les embeddings indépendants.
Pour une présentation des modèles, des conseils de sélection et des instructions d'utilisation, consultez Embedding textuel et multimodal.
Aperçu des modèles
Singapore
Modèle | Dimensions de l'embedding | Limite de longueur du texte | Limite de taille d'image | Limite de taille vidéo | Prix (pour 1 M de tokens) | Quota gratuit(Remarque) |
|---|---|---|---|---|---|---|
tongyi-embedding-vision-plus | 1152 | 1 024 tokens | Jusqu'à 3 Mo par image. Prend en charge jusqu'à 8 images. | Jusqu'à 10 Mo par fichier vidéo | Image/Vidéo : 0,09 $ Texte : 0,09 $ | 1 million de tokens Ce quota gratuit est valable pendant 90 jours à compter de la date d'activation de Model Studio, de la publication du modèle ou de l'approbation de la demande, selon la date la plus tardive. |
tongyi-embedding-vision-flash | 768 | Image/Vidéo : 0,03 $ Texte : 0,09 $ |
China (Beijing)
Modèle | Dimensions de l'embedding | Limite de longueur du texte | Limite de taille d'image | Limite de taille vidéo | Prix (pour 1 M de tokens) |
|---|---|---|---|---|---|
qwen3-vl-embedding | 2560 (par défaut), 2048, 1536, 1024, 768, 512, 256 | 32 000 tokens | Jusqu'à 1 image d'une taille maximale de 5 Mo | Jusqu'à 50 Mo par fichier vidéo | Image/Vidéo : 0,258 $ Texte : 0,1 $ |
multimodal-embedding-v1 | 1024 | 512 tokens | Jusqu'à 8 images, avec une taille maximale de 3 Mo chacune. | Jusqu'à 10 Mo par fichier vidéo | Essai gratuit |
Formats d'entrée et limites d'utilisation
| Modèle multimodal fusionné | ||||
|---|---|---|---|---|
| Modèle | Texte | Image | Vidéo | Limite de requête |
qwen3-vl-embedding | Prend en charge 33 langues principales, dont le chinois, l'anglais, le japonais, le coréen, le français et l'allemand. Toutes les langues prises en charge Chinois, japonais, coréen, indonésien, vietnamien, thaï, anglais, français, allemand, russe, portugais, espagnol, italien, suédois, danois, tchèque, norvégien, néerlandais, finnois, turc, polonais, swahili, roumain, serbe, grec, kazakh, ouzbek, cebuano, arabe, ourdou, persan, hindi/devanagari et hébreu. | JPEG, PNG, WEBP, BMP, TIFF, ICO, DIB, ICNS et SGI (URL ou Base64 pris en charge) | MP4, AVI et MOV (URL uniquement) | Le nombre total d'éléments de contenu dans une requête unique ne peut pas dépasser 20. Le nombre d'images ne peut pas excéder 5. Les images, le texte et les vidéos partagent cette limite. |
| Modèle multimodal indépendant | ||||
| Modèle | Texte | Image | Vidéo | Limite de requête |
tongyi-embedding-vision-plus | Chinois/Anglais | JPG, PNG et BMP (URL ou Base64 pris en charge) | MP4, MPEG, AVI, MOV, MPG, WEBM, FLV et MKV (URL uniquement) | Aucune limite sur le nombre d'éléments de contenu. Le nombre total de tokens d'entrée ne doit pas dépasser la limite de tokens. |
tongyi-embedding-vision-flash | ||||
multimodal-embedding-v1 | Le nombre total d'éléments de contenu dans une requête unique ne peut pas dépasser 20. Une requête peut contenir au maximum une image, une vidéo et 20 entrées de texte. Ces éléments partagent la limite totale. | |||
Tous les modèles acceptent des entrées de texte, d'image et de vidéo, individuellement ou combinées. Les modèles
tongyi-embedding-vision-plus,tongyi-embedding-vision-flashprennent également en chargemulti_imagespour les séquences d'images.
Capacités des modèles
Modèle | Dimension par défaut | Type de vecteur | Entrées prises en charge | Description |
qwen3-vl-embedding | 2560 | Indépendant / Fusion | texte, image, vidéo, images multiples | Le mode fusion, activé via le paramètre |
tongyi-embedding-vision-plus | 1152 | Indépendant uniquement | Prend en charge les séquences | |
tongyi-embedding-vision-flash | 768 | |||
multimodal-embedding-v1 | 1024 | texte, image, vidéo | La dimension du vecteur est fixée à 1 024 et ne peut pas être configurée. |
Prérequis
Obtenir une clé API et exporter la clé API en tant que variable d'environnement. Si vous utilisez un SDK pour effectuer vos appels, installez le SDK DashScope.
Appel HTTP
POST https://dashscope.aliyuncs.com/api/v1/services/embeddings/multimodal-embedding/multimodal-embedding
Requête | Embedding indépendant multimodal
Embedding fusionné multimodal
|
En-têtes de requête | |
Content-Type Le type de contenu de la requête. Doit être | |
Authorization Authentifie la requête avec une clé API Model Studio. Exemple : Bearer sk-xxxx. | |
Corps de la requête | |
model Le nom du modèle. Sélectionnez un modèle dans l'Aperçu des modèles. | |
input Le contenu d'entrée. parameters Paramètres de traitement de l'embedding. Pour les appels HTTP, vous devez encapsuler ces paramètres dans l'objet parameters. Pour les appels SDK, vous pouvez utiliser ces paramètres directement. |
Réponse | Réponse réussieRemarqueLe champ
Remarque
Réponse d'erreur |
output Sortie de la tâche. | |
request_id Identifiant unique de la requête pour le suivi et le dépannage. | |
code Code d'erreur. Renvoyé uniquement pour les requêtes ayant échoué. Consultez Codes d'erreur. | |
message Message d'erreur détaillé. Renvoyé uniquement pour les requêtes ayant échoué. Consultez Codes d'erreur. | |
usage Statistiques sur l'utilisation des tokens. |
Utilisation du SDK
Le paramètre
inputdu SDK correspond àinput.contentsdans le corps de la requête HTTP, mais leurs structures sont différentes .
Exemples de code
Embedding d'image
URL d'image
import dashscope
import json
from http import HTTPStatus
# Replace with your image URL.
image = "https://dashscope.oss-cn-beijing.aliyuncs.com/images/256_1.png"
input = [{'image': image}]
# Call the model 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))
Image locale
Pour générer un embedding à partir d'une image locale, convertissez l'image en chaîne Base64 :
import dashscope
import base64
import json
from http import HTTPStatus
# Read the image and convert it to Base64. Replace xxx.png with your image file.
image_path = "xxx.png"
with open(image_path, "rb") as image_file:
# Read the file and convert it to Base64.
base64_image = base64.b64encode(image_file.read()).decode('utf-8')
# Set the image format.
image_format = "png" # Change this to your image's format (e.g., jpg, bmp).
image_data = f"data:image/{image_format};base64,{base64_image}"
# Input data
input = [{'image': image_data}]
# Call the model 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))
Embedding vidéo
Actuellement, le modèle prend en charge l'entrée vidéo uniquement via URL. Les fichiers vidéo locaux ne sont pas pris en charge.
import dashscope
import json
from http import HTTPStatus
# Replace with your video URL.
video = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250107/lbcemt/new+video.mp4"
input = [{'video': video}]
# Call the model 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))
Embedding de texte
import dashscope
import json
from http import HTTPStatus
text = "General multimodal representation model example"
input = [{'text': text}]
# Call the model 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))
Embedding fusionné
import dashscope
import json
import os
from http import HTTPStatus
# Fuses text, image, and video into a single fused embedding.
# Ideal for use cases like cross-modal retrieval and image search.
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 includes text, image, and video. Set enable_fusion=True to generate a fused embedding.
input_data = [
{"text": text},
{"image": image},
{"video": video}
]
resp = dashscope.MultiModalEmbedding.call(
# If the environment variable is not set, provide your Model Studio API key, e.g., api_key="sk-xxx".
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="qwen3-vl-embedding",
input=input_data,
enable_fusion=True,
# Optional: Specify the embedding dimension. Valid values: 2560, 2048, 1536, 1024, 768, 512, and 256. Default: 2560.
# parameters={"dimension": 1024}
)
print(json.dumps(resp, ensure_ascii=False, indent=4))
Embedding fusionné multi-images
Utilisez qwen3-vl-embedding pour fusionner plusieurs images et du texte en un seul embedding. Pour fusionner plusieurs images, passez plusieurs éléments image. Cette approche est idéale pour la recherche sémantique utilisant des images produits sous plusieurs angles accompagnées d'une description textuelle.
import dashscope
import json
import os
from http import HTTPStatus
# Fuses multiple product images and a description into a single embedding.
# Ideal for comprehensive semantic retrieval using multi-angle product images and a text description.
text = "White sports shoes, lightweight and breathable, suitable for running and daily wear."
image1 = "https://dashscope.oss-cn-beijing.aliyuncs.com/images/256_1.png"
image2 = "https://img.alicdn.com/imgextra/i3/O1CN01rdstgY1uiZWt8gqSL_!!6000000006071-0-tps-1970-356.jpg"
# Pass multiple image items and set enable_fusion=True to fuse all inputs into a single embedding.
input_data = [
{"text": text},
{"image": image1},
{"image": image2}
]
resp = dashscope.MultiModalEmbedding.call(
# If the environment variable is not set, provide your Model Studio API key, e.g., api_key="sk-xxx".
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="qwen3-vl-embedding",
input=input_data,
enable_fusion=True
)
print(json.dumps(resp, ensure_ascii=False, indent=4))
Version snapshot 2026-03-06
Cet exemple montre comment utiliser le modèle
tongyi-embedding-vision-plus-2026-03-06ainsi que ses paramètresres_level(résolution) etmax_video_frames(frames vidéo). Basé sur la fondation Qwen3, ce modèle prend en charge plus de 30 langues et génère à la fois des embeddings indépendants et fusionnés.
import dashscope
import json
import os
from http import HTTPStatus
# Demonstrates using the res_level (resolution) and max_video_frames (video frames) parameters.
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"
text = "This is a visual multimodal representation model."
input_data = [
{"text": text},
{"image": image},
{"video": video}
]
resp = dashscope.MultiModalEmbedding.call(
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="tongyi-embedding-vision-plus-2026-03-06",
input=input_data,
dimension=1152, # Valid values: 1152, 1024, 512, 256, 128, 64
res_level=1, # Resolution level: 0, 1, 2, or 3. The default is 1.
max_video_frames=64 # Maximum number of sampled video frames. Default: 8. Maximum: 64.
)
if resp.status_code == HTTPStatus.OK:
result = {
"status_code": resp.status_code,
"request_id": getattr(resp, "request_id", ""),
"output": resp.output,
"usage": resp.usage
}
print(json.dumps(result, ensure_ascii=False, indent=4))
Pour générer un embedding fusionné avec la version 2026-03-06, placez le texte, l'image et la vidéo dans le même objet de contenu. Le modèle fusionne alors toutes les entrées en un seul embedding de type fused.
import dashscope
import json
import os
from http import HTTPStatus
# To create a fused embedding, place text and image in the same content object.
# The model fuses all inputs into a single embedding of type `fused`.
text = "White sports shoes, lightweight and breathable, suitable for running and daily wear."
image = "https://dashscope.oss-cn-beijing.aliyuncs.com/images/256_1.png"
input_data = [
{"text": text, "image": image}
]
resp = dashscope.MultiModalEmbedding.call(
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="tongyi-embedding-vision-plus-2026-03-06",
input=input_data,
dimension=1152
)
if resp.status_code == HTTPStatus.OK:
result = {
"status_code": resp.status_code,
"request_id": getattr(resp, "request_id", ""),
"output": resp.output,
"usage": resp.usage
}
print(json.dumps(result, ensure_ascii=False, indent=4))
Exemple de sortie
{
"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
}
}
Codes d'erreur
Si l'appel du modèle échoue et renvoie un message d'erreur, consultez Codes d'erreur pour obtenir une solution.