Los modelos de incrustación multimodal convierten texto, imágenes y videos en incrustaciones dentro de un espacio semántico compartido para permitir la recuperación entre modalidades, la clasificación de contenido y la búsqueda por similitud.
Capacidades principales
- Recuperación cruzada entre modalidades: Realiza búsquedas semánticas en diferentes tipos de contenido, como de texto a imagen, de imagen a video o de imagen a imagen.
- Similitud semántica: Mide la similitud semántica entre diferentes tipos de contenido en un espacio de incrustación unificado.
- Clasificación y agrupación de contenido: Agrupe, etiquete y clasifique contenido basándose en embeddings semánticos.
Característica clave: Las incrustaciones para todas las modalidades (texto, imágenes y video) comparten el mismo espacio semántico, lo que permite la comparación y coincidencia directa entre modalidades mediante métodos como la similitud del coseno. Consulte incrustación de texto y multimodal para obtener detalles sobre la selección y el uso de modelos.
Importanteqwen3-vl-embedding y multimodal-embedding-v1 solo están disponibles en la región China (Beijing). tongyi-embedding-vision-plus y tongyi-embedding-vision-flash solo están disponibles en la región Singapore. Para invocar un modelo, debe utilizar una clave API de la región correspondiente.
Tipos de embedding
El modelo de embedding multimodal admite dos métodos para generar embeddings:
-
Incrustación independiente multimodal: Genera una incrustación separada para cada entrada, como texto, una imagen, un video o múltiples imágenes, dentro de
contents. Por ejemplo, una entrada compuesta por una cadena de texto y una imagen devuelve dos incrustaciones independientes. Esto es ideal para comparar elementos individuales, como en búsquedas de imagen a imagen o de texto a imagen. -
Incrustación fusionada multimodal: Fusiona todas las entradas en contents en una sola incrustación para lograr una representación semántica intermodal unificada. Esto es adecuado para escenarios que requieren una comprensión integral del contenido multimodal, como fusionar la imagen de un producto y su texto descriptivo en una representación unificada para su recuperación. Para
qwen3-vl-embedding, se habilita la fusión estableciendoenable_fusion=true. La incrustación fusionada admite las siguientes combinaciones:- Fusión de texto e imagen
- Fusión de texto y video
- Fusionar múltiples imágenes con texto (pasando múltiples entradas de
image) - Fusión de imágenes, video y texto
tongyi-embedding-vision-plusytongyi-embedding-vision-flashadmiten únicamente incrustaciones independientes.
Para presentaciones de modelos, orientación sobre selección e instrucciones de uso, consulte Incrustación de texto y multimodal.
Resumen de modelos
Singapore
Modelo | Dimensiones de embedding | Límite de longitud de texto | Límite de tamaño de imagen | Límite de tamaño de video | Precio (por 1M tokens) | Cuota gratuita(Nota) |
|---|---|---|---|---|---|---|
tongyi-embedding-vision-plus | 1152 | 1,024 token | Hasta 3 MB por imagen. Admite hasta 8 imágenes. | Hasta 10 MB por archivo de video | Imagen/Video: $0.09 Texto: $0.09 | 1 millón de tokens Esta cuota gratuita es válida durante 90 días a partir de la fecha de activación de Model Studio, lanzamiento del modelo o aprobación de la solicitud, lo que ocurra más tarde. |
tongyi-embedding-vision-flash | 768 | Imagen/Video: $0.03 Texto: $0.09 |
China (Beijing)
Modelo | Dimensiones de embedding | Límite de longitud de texto | Límite de tamaño de imagen | Límite de tamaño de video | Precio (por 1M tokens) |
|---|---|---|---|---|---|
qwen3-vl-embedding | 2560 (predeterminado), 2048, 1536, 1024, 768, 512, 256 | 32,000 token | Hasta 5 imágenes, con un tamaño máximo de 10 MB cada una. | Hasta 50 MB por archivo de video | Imagen/Video: $0.258 Texto: $0.1 |
multimodal-embedding-v1 | 1024 | 512 token | Hasta 1 imagen con un tamaño máximo de 3 MB | Hasta 10 MB por archivo de video | Gratis |
Formatos de entrada y límites de uso
| Modelo multimodal fusionado | ||||
|---|---|---|---|---|
| Modelo | Texto | Imagen | Video | Límite de solicitudes |
qwen3-vl-embedding | Admite 33 idiomas principales, como chino, inglés, japonés, coreano, francés y alemán. Todos los idiomas admitidos Chino, japonés, coreano, indonesio, vietnamita, tailandés, inglés, francés, alemán, ruso, portugués, español, italiano, sueco, danés, checo, noruego, neerlandés, finés, turco, polaco, suajili, rumano, serbio, griego, kazajo, uzbeko, cebuano, árabe, urdu, persa, hindi/devanagari y hebreo. | JPEG, PNG, WEBP, BMP, TIFF, ICO, DIB, ICNS y SGI (compatible con URL o Base64) | MP4, AVI y MOV (solo URL) | El número total de elementos de contenido en una sola solicitud no puede exceder 20. El número de imágenes no puede exceder 5. Las imágenes, el texto y los videos comparten este límite. |
| Modelo multimodal independiente | ||||
| Modelo | Texto | Imagen | Video | Límite de solicitudes |
tongyi-embedding-vision-plus | Chino/Inglés | JPG, PNG y BMP (compatible con URL o Base64) | MP4, MPEG, AVI, MOV, MPG, WEBM, FLV y MKV (solo URL) | No hay límite en el número de elementos de contenido. El número total de tokens de entrada no debe exceder el límite de tokens. |
tongyi-embedding-vision-flash | ||||
multimodal-embedding-v1 | El número total de elementos de contenido en una sola solicitud no puede exceder 20. Una solicitud puede contener un máximo de 1 imagen, 1 video y 20 entradas de texto. Estos elementos comparten el límite total. | |||
Todos los modelos aceptan entradas de texto, imagen y video, ya sea de forma individual o combinada. Los modelos
tongyi-embedding-vision-plusytongyi-embedding-vision-flashtambién admitenmulti_imagespara secuencias de imágenes.
Capacidades del modelo
Modelo | Dimensión predeterminada | Tipo de vector | Entradas admitidas | Descripción |
qwen3-vl-embedding | 2560 | Independiente / Fusión | texto, imagen, video, múltiples imágenes | El modo de fusión, habilitado con el parámetro |
tongyi-embedding-vision-plus | 1152 | Solo independiente | texto, imagen, video, multi_images | Admite secuencias de |
tongyi-embedding-vision-flash | 768 | |||
multimodal-embedding-v1 | 1024 | texto, imagen, video | La dimensión del vector es fija en 1,024 y no se puede configurar. |
Requisitos previos
Obtenga una clave API y exporte la clave API como variable de entorno. Si utiliza un SDK para realizar las llamadas, instale el SDK de DashScope.
Llamada HTTP
POST https://dashscope.aliyuncs.com/api/v1/services/embeddings/multimodal-embedding/multimodal-embedding
Solicitud | Incrustación independiente multimodal
Incrustación fusionada multimodal
|
Encabezados de solicitud | |
Content-Type El tipo de contenido de la solicitud. Debe ser | |
Authorization Autentica la solicitud con una clave API de Model Studio. Ejemplo: Bearer sk-xxxx. | |
Cuerpo de la solicitud | |
model El nombre del modelo. Seleccione un modelo del Resumen de modelos. | |
input El contenido de entrada. parameters Parámetros de procesamiento de incrustación. Para llamadas HTTP, debe incluir estos parámetros dentro del objeto parameters. Para llamadas mediante SDK, puede utilizar estos parámetros directamente. |
Respuesta | Respuesta exitosaNotaEl campo
Nota
Respuesta de error |
output Salida de la tarea. | |
request_id Identificador único de solicitud para rastreo y solución de problemas. | |
code Código de error. Se devuelve solo para solicitudes fallidas. Consulte Códigos de error. | |
message Mensaje de error detallado. Se devuelve solo para solicitudes fallidas. Consulte Códigos de error. | |
usage Estadísticas sobre el uso de tokens. |
Uso del SDK
El parámetro
inputdel SDK se asigna ainput.contentsen el cuerpo de la solicitud HTTP, pero sus estructuras son diferentes.
Ejemplos de código
Incrustación de imagen
URL de imagen
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))
Imagen local
Para generar un embedding a partir de una imagen local, convierta la imagen a una cadena 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))
Incrustación de video
Actualmente, el modelo solo admite entrada de video mediante URL. No se admiten archivos de video locales.
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 texto
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))
Incrustación fusionada
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))
Incrustación fusionada de múltiples imágenes
Utilice qwen3-vl-embedding para fusionar múltiples imágenes y texto en una sola incrustación. Para fusionar varias imágenes, pase múltiples elementos image. Esto es ideal para la recuperación semántica utilizando imágenes de productos desde múltiples ángulos junto con una descripción textual.
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))
CLI de dashscope
export DASHSCOPE_API_KEY="your-api-key"
# Replace {WorkspaceId} with your workspace ID. This model is available only in Singapore (ap-southeast-1)
export DASHSCOPE_HTTP_BASE_URL="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1"
dashscope multimodal-embedding create -m tongyi-embedding-vision-plus --text "Hello world"
ImportanteEl asistente interactivo SDK Expert puede realizar las mismas tareas de desarrollo y solución de problemas mediante lenguaje natural; consulte
DashScope SDK Expert.Para la tabla completa de regiones, consulte Resumen de URL base.
Ejemplo de salida
{
"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
}
}
Códigos de error
Si la llamada al modelo falla y devuelve un mensaje de error, consulte Códigos de error para su resolución.