Tous les produits
Search
Centre de documentation

Alibaba Cloud Model Studio:API d'embedding multimodal

Dernière mise à jour :Sep 07, 2026

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 contents en 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. Pour qwen3-vl-embedding, activez la fusion en définissant enable_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-embedding prend en charge uniquement les embeddings fusionnés, et non les embeddings indépendants. tongyi-embedding-vision-plus et tongyi-embedding-vision-flash prennent 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èleTexteImageVidéoLimite 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èleTexteImageVidéoLimite 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-flash prennent également en charge multi_images pour 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 enable_fusion, combine les entrées multimodales en un seul vecteur.

tongyi-embedding-vision-plus

1152

Indépendant uniquement

Prend en charge les séquences multi_images (jusqu'à 8 images).

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

L'exemple suivant utilise le modèle tongyi-embedding-vision-plus pour générer un embedding indépendant pour chaque entrée. Vous pouvez remplacer le nom du modèle par un autre modèle pris en charge. Le type multi_images est pris en charge uniquement par tongyi-embedding-vision-plus et tongyi-embedding-vision-flash. Le modèle qwen3-vl-embedding prend également en charge un mode d'embedding fusionné, que vous pouvez activer en définissant enable_fusion=true. Pour plus de détails, consultez l'onglet « Embedding fusionné multimodal ».

curl --silent --location --request POST 'https://dashscope.aliyuncs.com/api/v1/services/embeddings/multimodal-embedding/multimodal-embedding' \
        --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
        --header 'Content-Type: application/json' \
        --data '{
            "model": "tongyi-embedding-vision-plus",
            "input": {
                "contents": [
                    {"text": "Multimodal embedding model"},
                    {"image": "https://img.alicdn.com/imgextra/i3/O1CN01rdstgY1uiZWt8gqSL_!!6000000006071-0-tps-1970-356.jpg"},
                    {"video": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250107/lbcemt/new+video.mp4"},
                    {"multi_images": [
                        "https://img.alicdn.com/imgextra/i2/O1CN019eO00F1HDdlU4Syj5_!!6000000000724-2-tps-2476-1158.png",
                        "https://img.alicdn.com/imgextra/i2/O1CN01dSYhpw1nSoamp31CD_!!6000000005089-2-tps-1765-1639.png"
                        ]
                      }
                ]
            }
        }'

Embedding fusionné multimodal

Le modèle qwen3-vl-embedding prend en charge la génération d'embeddings fusionnés. Définissez enable_fusion=true pour combiner toutes les entrées en un seul embedding. Cela permet diverses combinaisons, telles que texte et image, texte et vidéo, images multiples et texte, ou un mélange d'images, de vidéos et de texte. L'exemple suivant illustre la fusion de plusieurs images, d'une vidéo et de texte.

curl --location 'https://dashscope.aliyuncs.com/api/v1/services/embeddings/multimodal-embedding/multimodal-embedding' \
        --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
        --header 'Content-Type: application/json' \
        --data '{
            "model": "qwen3-vl-embedding",
            "input": {
                "contents": [
                    {"text": "Product description text"},
                    {"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/256_1.png"},
                    {"image": "https://img.alicdn.com/imgextra/i3/O1CN01rdstgY1uiZWt8gqSL_!!6000000006071-0-tps-1970-356.jpg"},
                    {"video": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250107/lbcemt/new+video.mp4"}
                ]
            },
            "parameters": {
                "enable_fusion": true
            }
        }'

En-têtes de requête

Content-Type string (Obligatoire)

Le type de contenu de la requête. Doit être application/json.

Authorization string (Obligatoire)

Authentifie la requête avec une clé API Model Studio. Exemple : Bearer sk-xxxx.

Corps de la requête

model string(obligatoire)

Le nom du modèle. Sélectionnez un modèle dans l'Aperçu des modèles.

input object(obligatoire)

Le contenu d'entrée.

Propriétés

contentsarray(obligatoire)

Les éléments de contenu à traiter. Chaque élément est un dictionnaire ou une chaîne spécifiant le type de contenu et la valeur au format {"modality_type": "input_string_or_image/video_url"}. Les types de modalité pris en charge sont text, image, video et multi_images.

Le modèle qwen3-vl-embedding prend en charge la génération d'embeddings fusionnés et indépendants. Pour générer un embedding fusionné, ajoutez le champ booléen enable_fusion et définissez-le sur true. Le modèle qwen2.5-vl-embedding prend en charge uniquement les embeddings fusionnés.

  • Texte : La clé est text et la valeur est une chaîne. Vous pouvez également passer directement la chaîne sans dictionnaire.
  • Image : Utilisez la clé image. La valeur peut être une URL publique ou un Data URI encodé en Base64. Le format Base64 est data:image/{format};base64,{data}, où {format} est le format de l'image, tel que jpeg ou png, et {data} est la chaîne encodée en Base64.
  • Images multiples : Ce type est pris en charge uniquement par les modèles tongyi-embedding-vision-plus, tongyi-embedding-vision-flash. La clé est multi_images et la valeur est une liste d'images. Chaque élément de la liste est une image qui doit respecter le format décrit ci-dessus.
  • Vidéo : La clé est video. La valeur doit être une URL accessible publiquement.

parameters object (facultatif)

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.

Propriétés

output_type string (facultatif)

Le format de représentation de l'embedding en sortie. Actuellement, seul le format dense est pris en charge.

dimension integer (facultatif)

La dimension de l'embedding en sortie. Les valeurs prises en charge varient selon le modèle :

  • qwen3-vl-embedding : Prend en charge 2560, 2048, 1536, 1024, 768, 512 et 256. La valeur par défaut est 2560.
  • tongyi-embedding-vision-plus : Ne prend pas en charge ce paramètre. Renvoie un embedding fixe de 1152 dimensions.
  • tongyi-embedding-vision-flash : Ne prend pas en charge ce paramètre. Renvoie un embedding fixe de 768 dimensions.
  • multimodal-embedding-v1 : Ne prend pas en charge ce paramètre. Renvoie un embedding fixe de 1024 dimensions.

fps float (facultatif)

Le taux d'échantillonnage des frames vidéo. Une valeur plus faible extrait moins de frames. La plage valide est [0, 1] et la valeur par défaut est 1,0.

instruct string (facultatif)

Une description personnalisée de la tâche pour aider le modèle à comprendre l'intention de la requête. Des instructions en anglais sont recommandées et peuvent améliorer les performances de 1 % à 5 %.

enable_fusion bool (facultatif)

Spécifie s'il faut générer un embedding fusionné. Ce paramètre est pris en charge uniquement par le modèle qwen3-vl-embedding. Lorsqu'il est défini sur true, tout le contenu multimodal du tableau contents est fusionné en un seul embedding. La valeur par défaut est false, ce qui génère un embedding indépendant pour chaque modalité. Les embeddings fusionnés prennent en charge des combinaisons telles que texte et image, texte et vidéo, images multiples et texte (en passant plusieurs éléments d'image), ainsi qu'un mélange d'images, de vidéos et de texte. Cela convient aux scénarios de recherche nécessitant une compréhension complète du contenu multimodal.

Réponse

Réponse réussie

{
    "output": {
        "embeddings": [
            {
                "index": 0,
                "embedding": [
                    -0.026611328125,
                    -0.016571044921875,
                    -0.02227783203125,
                    ...
                ],
                "type": "text"
            },
            {
                "index": 1,
                "embedding": [
                    0.051544189453125,
                    0.007717132568359375,
                    0.026611328125,
                    ...
                ],
                "type": "image"
            },
            {
                "index": 2,
                "embedding": [
                    -0.0217437744140625,
                    -0.016448974609375,
                    0.040679931640625,
                    ...
                ],
                "type": "video"
            }
        ]
    },
    "usage": {
        "input_tokens": 10,
        "input_tokens_details": {
            "image_tokens": 896,
            "text_tokens": 7
        },
        "output_tokens": 3,
        "total_tokens": 906
    },
    "request_id": "1fff9502-a6c5-9472-9ee1-73930fdd04c5"
}

RemarqueLe champ usage varie selon le modèle. Consultez les descriptions suivantes :

  • Modèles de la série tongyi-embedding-vision-* : Renvoient input_tokens (somme des tokens de texte et d'image), input_tokens_details (incluant image_tokens et text_tokens), output_tokens et total_tokens. L'exemple de réponse ci-dessus correspond à ce type de modèle.
  • qwen3-vl-embedding : Renvoie uniquement input_tokens (tokens de texte uniquement, y compris les tokens de modèle système), image_tokens et total_tokens (= input_tokens + image_tokens). Ne renvoie pas input_tokens_details ni output_tokens. Exemple :
{
    "usage": {
        "input_tokens": 43,
        "image_tokens": 1247,
        "total_tokens": 1290
    }
}

Remarque

  • qwen2.5-vl-embedding : Renvoie uniquement input_tokens et image_tokens. Ne renvoie pas total_tokens, input_tokens_details ni output_tokens.
  • multimodal-embedding-v1 : Renvoie input_tokens, image_tokens, image_count et duration. Ne renvoie pas total_tokens, input_tokens_details ni output_tokens.

Réponse d'erreur

{
    "code":"InvalidApiKey",
    "message":"Invalid API-key provided.",
    "request_id":"fb53c4ec-1c12-4fc4-a580-cdb7c3261fc1"
}

output object

Sortie de la tâche.

Propriétés

embeddings array

Une liste des embeddings résultants, où chaque objet correspond à un élément d'entrée.

Propriétés

index int

L'index du résultat dans la liste d'entrée.

embedding array

La dimension du tableau d'embeddings généré dépend du modèle et du paramètre dimension.

type string

Le type d'entrée pour ce résultat. text, image, video et multi_images correspondent respectivement aux entrées de texte, d'image, de vidéo et d'images multiples. Les types spéciaux incluent : fusion est le type renvoyé par le modèle qwen3-vl-embedding en mode d'embedding fusionné ; vl est le type renvoyé par le modèle qwen3-vl-embedding en mode d'embedding indépendant.

request_id string

Identifiant unique de la requête pour le suivi et le dépannage.

code string

Code d'erreur. Renvoyé uniquement pour les requêtes ayant échoué. Consultez Codes d'erreur.

message string

Message d'erreur détaillé. Renvoyé uniquement pour les requêtes ayant échoué. Consultez Codes d'erreur.

usage object

Statistiques sur l'utilisation des tokens.

Propriétés

input_tokens int

Le nombre de tokens dans le contenu d'entrée pour la requête actuelle. Pour les modèles qwen3-vl-embedding et qwen2.5-vl-embedding, cette valeur inclut uniquement les tokens de texte (y compris les tokens de modèle système) et n'inclut pas les tokens d'image ou de vidéo. Pour les modèles de la série tongyi-embedding-vision-*, cette valeur inclut le nombre total de tokens de texte, d'image et de vidéo.

input_tokens_details object

Une ventilation détaillée des tokens d'entrée. Ce champ est renvoyé uniquement par les modèles de la série tongyi-embedding-vision-*. Il n'est pas renvoyé par les modèles qwen3-vl-embedding, qwen2.5-vl-embedding ou multimodal-embedding-v1.

Propriétés

image_tokens int

Le nombre de tokens pour les images ou vidéos d'entrée.

text_tokens int

Le nombre de tokens pour le texte d'entrée.

output_tokens int

Le nombre de tokens dans la sortie pour la requête actuelle. Ce champ est renvoyé uniquement par les modèles de la série tongyi-embedding-vision-*.

total_tokens int

Le nombre total de tokens d'entrée et de sortie. Ce champ est renvoyé par les modèles qwen3-vl-embedding et tongyi-embedding-vision-*, mais pas par les modèles qwen2.5-vl-embedding ou multimodal-embedding-v1. Pour le modèle qwen3-vl-embedding, total_tokens = input_tokens + image_tokens.

image_tokens int

Le nombre de tokens pour les images ou vidéos d'entrée dans la requête actuelle. Le système échantillonne des frames à partir des vidéos d'entrée, le nombre maximal de frames étant contrôlé par la configuration système, puis calcule les tokens en fonction du résultat traité. Ce champ est renvoyé en tant que champ de premier niveau uniquement par les modèles qwen3-vl-embedding, qwen2.5-vl-embedding et multimodal-embedding-v1. Pour les modèles de la série tongyi-embedding-vision-*, le nombre de tokens d'image est inclus dans input_tokens_details.image_tokens.

image_count int

Le nombre d'images dans l'entrée pour la requête actuelle. Ce champ est renvoyé uniquement par le modèle multimodal-embedding-v1.

duration int

La durée de la vidéo d'entrée en secondes. Ce champ est renvoyé uniquement par le modèle multimodal-embedding-v1.

Utilisation du SDK

Le paramètre input du SDK correspond à input.contents dans 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-06 ainsi que ses paramètres res_level (résolution) et max_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.