Os modelos de embedding multimodal convertem texto, imagens e vídeos em embeddings em um espaço semântico compartilhado para permitir recuperação entre modalidades, classificação de conteúdo e busca por similaridade.
Capacidades principais
- Recuperação entre modalidades: Execute buscas semânticas em diferentes tipos de conteúdo, como texto para imagem, imagem para vídeo ou imagem para imagem.
- Similaridade semântica: Meça a similaridade semântica entre diferentes tipos de conteúdo em um espaço de embedding unificado.
- Classificação e agrupamento de conteúdo: Agrupe, rotule e organize conteúdos com base em embeddings semânticos.
Recurso principal : Os embeddings de todas as modalidades (texto, imagens e vídeo) compartilham o mesmo espaço semântico, permitindo correspondência e comparação direta entre modalidades por métodos como similaridade de cosseno. Consulte embedding de texto e multimodal para obter detalhes sobre seleção e uso de modelos.
Importanteqwen3-vl-embedding e multimodal-embedding-v1 estão disponíveis apenas na região China (Beijing). tongyi-embedding-vision-plus e tongyi-embedding-vision-flash estão disponíveis apenas na região Singapore. Para chamar um modelo, você deve usar uma chave de API da região correspondente.
Tipos de embedding
O modelo de embedding multimodal oferece dois métodos para gerar embeddings:
-
Embedding multimodal independente: Gera um embedding separado para cada entrada, como texto, imagem, vídeo ou múltiplas imagens, dentro de
contents. Por exemplo, uma entrada com uma string de texto e uma imagem retorna dois embeddings independentes. Essa abordagem é ideal para comparar itens individuais, como em buscas de imagem para imagem ou texto para imagem. -
Embedding multimodal fundido: Combina todas as entradas em contents em um único embedding para obter uma representação semântica unificada entre modalidades. Indicado para cenários que exigem compreensão holística do conteúdo multimodal, como a fusão da imagem de um produto com sua descrição textual em uma representação única para recuperação. Para
qwen3-vl-embedding, ative a fusão definindoenable_fusion=true. O embedding fundido aceita as seguintes combinações:- Fusão de texto e imagem
- Fusão de texto e vídeo
- Fusão de múltiplas imagens com texto (passando várias entradas
image) - Fusão de imagens, vídeo e texto
tongyi-embedding-vision-plusetongyi-embedding-vision-flashsuportam somente embeddings independentes.
Para apresentações de modelos, orientações de seleção e instruções de uso, consulte Embedding de texto e multimodal.
Visão geral dos modelos
Singapore
Modelo | Dimensões do embedding | Limite de comprimento de texto | Limite de tamanho de imagem | Limite de tamanho de vídeo | Preço (por 1 milhão de tokens) | Cota gratuita(Nota) |
|---|---|---|---|---|---|---|
tongyi-embedding-vision-plus | 1152 | 1.024 tokens | Até 3 MB por imagem. Suporta até 8 imagens. | Até 10 MB por arquivo de vídeo | Imagem/Vídeo: $0,09 Texto: $0,09 | 1 milhão de tokens Esta cota gratuita expira 90 dias após a ativação do Model Studio. |
tongyi-embedding-vision-flash | 768 | Imagem/Vídeo: $0,03 Texto: $0,09 |
China (Beijing)
Modelo | Dimensões do embedding | Limite de comprimento de texto | Limite de tamanho de imagem | Limite de tamanho de vídeo | Preço (por 1 milhão de tokens) |
|---|---|---|---|---|---|
qwen3-vl-embedding | 2560 (padrão), 2048, 1536, 1024, 768, 512, 256 | 32.000 tokens | Até 5 imagens, com tamanho máximo de 10 MB cada. | Até 50 MB por arquivo de vídeo | Imagem/Vídeo: $0,258 Texto: $0,1 |
multimodal-embedding-v1 | 1024 | 512 tokens | Até 1 imagem com tamanho máximo de 3 MB | Até 10 MB por arquivo de vídeo | Gratuito |
Formatos de entrada e limites de uso
| Modelo multimodal fundido | ||||
|---|---|---|---|---|
| Modelo | Texto | Imagem | Vídeo | Limite da requisição |
qwen3-vl-embedding | Suporta 33 idiomas principais, como chinês, inglês, japonês, coreano, francês e alemão. Todos os idiomas suportados Chinês, japonês, coreano, indonésio, vietnamita, tailandês, inglês, francês, alemão, russo, português, espanhol, italiano, sueco, dinamarquês, tcheco, norueguês, holandês, finlandês, turco, polonês, suaíli, romeno, sérvio, grego, cazaque, uzbeque, cebuano, árabe, urdu, persa, hindi/devanágari e hebraico. | JPEG, PNG, WEBP, BMP, TIFF, ICO, DIB, ICNS e SGI (URL ou Base64 suportados) | MP4, AVI e MOV (somente URL) | O número total de elementos de conteúdo em uma única requisição não pode exceder 20. A quantidade de imagens não pode ultrapassar 5. Imagens, texto e vídeos compartilham esse limite. |
| Modelo multimodal independente | ||||
| Modelo | Texto | Imagem | Vídeo | Limite da requisição |
tongyi-embedding-vision-plus | Chinês/Inglês | JPG, PNG e BMP (URL ou Base64 suportados) | MP4, MPEG, AVI, MOV, MPG, WEBM, FLV e MKV (somente URL) | Não há limite para o número de elementos de conteúdo. O total de tokens de entrada não deve exceder o limite de tokens. |
tongyi-embedding-vision-flash | ||||
multimodal-embedding-v1 | O número total de elementos de conteúdo em uma única requisição não pode exceder 20. Uma requisição pode conter no máximo 1 imagem, 1 vídeo e 20 entradas de texto. Esses itens compartilham o limite total. | |||
Todos os modelos aceitam entradas de texto, imagem e vídeo, individualmente ou combinadas. Os modelos
tongyi-embedding-vision-plus,tongyi-embedding-vision-flashtambém suportammulti_imagespara sequências de imagens.
Capacidades dos modelos
Modelo | Dimensão padrão | Tipo de vetor | Entradas suportadas | Descrição |
qwen3-vl-embedding | 2560 | Independente / Fundido | texto, imagem, vídeo, múltiplas imagens | O modo de fusão, ativado pelo parâmetro |
tongyi-embedding-vision-plus | 1152 | Somente independente | Suporta sequências | |
tongyi-embedding-vision-flash | 768 | |||
multimodal-embedding-v1 | 1024 | texto, imagem, vídeo | A dimensão do vetor é fixa em 1.024 e não pode ser configurada. |
Pré-requisitos
Obtenha uma chave de API e exporte a chave de API como variável de ambiente. Se você usar um SDK para fazer chamadas, instale o DashScope SDK.
Chamada HTTP
POST https://dashscope.aliyuncs.com/api/v1/services/embeddings/multimodal-embedding/multimodal-embedding
Requisição | Embedding multimodal independente
Embedding multimodal fundido
|
Cabeçalhos da requisição | |
Content-Type O tipo de conteúdo da requisição. Deve ser | |
Authorization Autentica a requisição com uma chave de API do Model Studio. Exemplo: Bearer sk-xxxx. | |
Corpo da requisição | |
model Nome do modelo. Selecione um modelo na Visão geral dos modelos. | |
input Conteúdo de entrada. parameters Parâmetros de processamento de embedding. Para chamadas HTTP, envolva esses parâmetros no objeto parameters. Em chamadas via SDK, use-os diretamente. |
Resposta | Resposta bem-sucedidaObservaçãoO campo
Observação
Resposta de erro |
output Saída da tarefa. | |
request_id Identificador único da requisição para rastreamento e solução de problemas. | |
code Código de erro. Retornado apenas para requisições com falha. Consulte Códigos de erro. | |
message Mensagem de erro detalhada. Retornada apenas para requisições com falha. Consulte Códigos de erro. | |
usage Estatísticas sobre o uso de tokens. |
Uso do SDK
O parâmetro
inputdo SDK mapeia parainput.contentsno corpo da requisição HTTP, mas suas estruturas são diferentes .
Exemplos de código
Image embedding
Image URL
import os
import dashscope
from dashscope.v2 import DashScopeError
# A configuração abaixo refere-se à região Singapura. Substitua {WorkspaceId} pelo ID real do seu workspace. O valor de region varia conforme a região.
client = dashscope.Client(
# Se a variável de ambiente não estiver configurada, substitua a linha abaixo pela sua API Key do Model Studio: api_key="sk-xxx",
# As API Keys variam conforme a região. Para obter uma API Key, consulte https://www.alibabacloud.com/help/model-studio/regions
api_key=os.getenv("DASHSCOPE_API_KEY"),
workspace="{WorkspaceId}",
region="ap-southeast-1",
)
# Em uso real, substitua o endereço url pelo endereço da sua imagem
image = "https://dashscope.oss-cn-beijing.aliyuncs.com/images/256_1.png"
input = [{'image': image}]
try:
# Chama a interface do modelo
resp = client.multimodal.embeddings.create(
model="tongyi-embedding-vision-plus",
input=input
)
# Resultado do vetor: resp.embeddings[i].embedding é o array do vetor, resp.embeddings[i].index é o índice da entrada
print(resp.model_dump_json(indent=4))
except DashScopeError as e:
print(f"Código de status HTTP: {e.status_code}")
print(f"Código de erro: {e.code}")
print(f"Mensagem de erro: {e.message}")
print("Consulte a documentação: https://www.alibabacloud.com/help/model-studio/developer-reference/error-code")
Local image
Para gerar um embedding a partir de uma imagem local, converta a imagem para uma string Base64:
import os
import base64
import dashscope
from dashscope.v2 import DashScopeError
# A configuração abaixo refere-se à região Singapura. Substitua {WorkspaceId} pelo ID real do seu workspace. O valor de region varia conforme a região.
client = dashscope.Client(
# Se a variável de ambiente não estiver configurada, substitua a linha abaixo pela sua API Key do Model Studio: api_key="sk-xxx",
# As API Keys variam conforme a região. Para obter uma API Key, consulte https://www.alibabacloud.com/help/model-studio/regions
api_key=os.getenv("DASHSCOPE_API_KEY"),
workspace="{WorkspaceId}",
region="ap-southeast-1",
)
# Lê a imagem e a converte para Base64. Em uso real, substitua xxx.png pelo nome ou caminho do seu arquivo de imagem
image_path = "xxx.png"
with open(image_path, "rb") as image_file:
# Lê o arquivo e o converte para Base64
base64_image = base64.b64encode(image_file.read()).decode('utf-8')
# Define o formato da imagem
image_format = "png" # Modifique conforme o caso, por exemplo jpg, bmp
image_data = f"data:image/{image_format};base64,{base64_image}"
# Dados de entrada
input = [{'image': image_data}]
try:
# Chama a interface do modelo
resp = client.multimodal.embeddings.create(
model="tongyi-embedding-vision-plus",
input=input
)
print(resp.model_dump_json(indent=4))
except DashScopeError as e:
print(f"Código de status HTTP: {e.status_code}")
print(f"Código de erro: {e.code}")
print(f"Mensagem de erro: {e.message}")
print("Consulte a documentação: https://www.alibabacloud.com/help/model-studio/developer-reference/error-code")
Video embedding
Atualmente, o modelo aceita entrada de vídeo apenas via URL. Arquivos de vídeo locais não são suportados.
import os
import dashscope
from dashscope.v2 import DashScopeError
# A configuração abaixo refere-se à região Singapura. Substitua {WorkspaceId} pelo ID real do seu workspace. O valor de region varia conforme a região.
client = dashscope.Client(
# Se a variável de ambiente não estiver configurada, substitua a linha abaixo pela sua API Key do Model Studio: api_key="sk-xxx",
# As API Keys variam conforme a região. Para obter uma API Key, consulte https://www.alibabacloud.com/help/model-studio/regions
api_key=os.getenv("DASHSCOPE_API_KEY"),
workspace="{WorkspaceId}",
region="ap-southeast-1",
)
# Em uso real, substitua o endereço url pelo endereço do seu vídeo
video = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250107/lbcemt/new+video.mp4"
input = [{'video': video}]
try:
# Chama a interface do modelo
resp = client.multimodal.embeddings.create(
model="tongyi-embedding-vision-plus",
input=input
)
print(resp.model_dump_json(indent=4))
except DashScopeError as e:
print(f"Código de status HTTP: {e.status_code}")
print(f"Código de erro: {e.code}")
print(f"Mensagem de erro: {e.message}")
print("Consulte a documentação: https://www.alibabacloud.com/help/model-studio/developer-reference/error-code")
Text embedding
import os
import dashscope
from dashscope.v2 import DashScopeError
# A configuração abaixo refere-se à região Singapura. Substitua {WorkspaceId} pelo ID real do seu workspace. O valor de region varia conforme a região.
client = dashscope.Client(
# Se a variável de ambiente não estiver configurada, substitua a linha abaixo pela sua API Key do Model Studio: api_key="sk-xxx",
# As API Keys variam conforme a região. Para obter uma API Key, consulte https://www.alibabacloud.com/help/model-studio/regions
api_key=os.getenv("DASHSCOPE_API_KEY"),
workspace="{WorkspaceId}",
region="ap-southeast-1",
)
text = "General multimodal representation model example"
input = [{'text': text}]
try:
# Chama a interface do modelo
resp = client.multimodal.embeddings.create(
model="tongyi-embedding-vision-plus",
input=input
)
print(resp.model_dump_json(indent=4))
except DashScopeError as e:
print(f"Código de status HTTP: {e.status_code}")
print(f"Código de erro: {e.code}")
print(f"Mensagem de erro: {e.message}")
print("Consulte a documentação: https://www.alibabacloud.com/help/model-studio/developer-reference/error-code")
Fused embedding
import os
import dashscope
from dashscope.v2 import DashScopeError
# A configuração abaixo refere-se à região Singapura. Substitua {WorkspaceId} pelo ID real do seu workspace. O valor de region varia conforme a região.
client = dashscope.Client(
# Se a variável de ambiente não estiver configurada, substitua a linha abaixo pela sua API Key do Model Studio: api_key="sk-xxx",
# As API Keys variam conforme a região. Para obter uma API Key, consulte https://www.alibabacloud.com/help/model-studio/regions
api_key=os.getenv("DASHSCOPE_API_KEY"),
workspace="{WorkspaceId}",
region="ap-southeast-1",
)
# Vetor multimodal fundido: funde texto, imagem e vídeo em um único vetor
# Adequado para cenários como recuperação entre modalidades e busca de imagens
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"
# A entrada contém texto, imagem e vídeo; o parâmetro enable_fusion gera o vetor fundido
input_data = [
{"text": text},
{"image": image},
{"video": video}
]
try:
# Usa o qwen3-vl-embedding para gerar o vetor fundido
resp = client.multimodal.embeddings.create(
model="qwen3-vl-embedding",
input=input_data,
enable_fusion=True,
# Parâmetro opcional: especifica a dimensão do vetor (suporta 2560, 2048, 1536, 1024, 768, 512, 256; padrão 2560)
# dimension=1024
)
print(resp.model_dump_json(indent=4))
except DashScopeError as e:
print(f"Código de status HTTP: {e.status_code}")
print(f"Código de erro: {e.code}")
print(f"Mensagem de erro: {e.message}")
print("Consulte a documentação: https://www.alibabacloud.com/help/model-studio/developer-reference/error-code")
Multi-image fused embedding
Use qwen3-vl-embedding para fundir múltiplas imagens e texto em um único embedding. Para fundir várias imagens, passe múltiplos itens image. Essa abordagem é ideal para recuperação semântica usando imagens de produtos em vários ângulos acompanhadas de uma descrição textual.
import os
import dashscope
from dashscope.v2 import DashScopeError
# A configuração abaixo refere-se à região Singapura. Substitua {WorkspaceId} pelo ID real do seu workspace. O valor de region varia conforme a região.
client = dashscope.Client(
# Se a variável de ambiente não estiver configurada, substitua a linha abaixo pela sua API Key do Model Studio: api_key="sk-xxx",
# As API Keys variam conforme a região. Para obter uma API Key, consulte https://www.alibabacloud.com/help/model-studio/regions
api_key=os.getenv("DASHSCOPE_API_KEY"),
workspace="{WorkspaceId}",
region="ap-southeast-1",
)
# Vetor fundido de múltiplas imagens + texto: funde várias imagens de produtos e o texto de descrição em 1 vetor
# Adequado para recuperação semântica combinada de imagens de produtos em vários ângulos e descrição textual
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"
# Passe múltiplos itens image para implementar a fusão de múltiplas imagens; enable_fusion=True funde todas as entradas em 1 vetor
input_data = [
{"text": text},
{"image": image1},
{"image": image2}
]
try:
resp = client.multimodal.embeddings.create(
model="qwen3-vl-embedding",
input=input_data,
enable_fusion=True
)
print(resp.model_dump_json(indent=4))
except DashScopeError as e:
print(f"Código de status HTTP: {e.status_code}")
print(f"Código de erro: {e.code}")
print(f"Mensagem de erro: {e.message}")
print("Consulte a documentação: https://www.alibabacloud.com/help/model-studio/developer-reference/error-code")
2026-03-06 snapshot version
Este exemplo demonstra o uso do modelo
tongyi-embedding-vision-plus-2026-03-06e seus parâmetrosres_level(resolução) emax_video_frames(quadros de vídeo). Construído sobre a base Qwen3, este modelo suporta mais de 30 idiomas e gera tanto embeddings independentes quanto fundidos.
import os
import dashscope
from dashscope.v2 import DashScopeError
# A configuração abaixo refere-se à região Singapura. Substitua {WorkspaceId} pelo ID real do seu workspace. O valor de region varia conforme a região.
client = dashscope.Client(
# Se a variável de ambiente não estiver configurada, substitua a linha abaixo pela sua API Key do Model Studio: api_key="sk-xxx",
# As API Keys variam conforme a região. Para obter uma API Key, consulte https://www.alibabacloud.com/help/model-studio/regions
api_key=os.getenv("DASHSCOPE_API_KEY"),
workspace="{WorkspaceId}",
region="ap-southeast-1",
)
# Exemplo com tongyi-embedding-vision-plus-2026-03-06
# Suporta os parâmetros res_level (multirresolução) e max_video_frames (número de quadros de vídeo)
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}
]
try:
# Chama a versão snapshot 2026-03-06 do modelo
resp = client.multimodal.embeddings.create(
model="tongyi-embedding-vision-plus-2026-03-06",
input=input_data,
dimension=1152, # Valores suportados: 1152/1024/512/256/128/64
res_level=1, # Nível de resolução: 0/1/2/3, padrão 1
max_video_frames=64 # Número máximo de quadros de vídeo amostrados, padrão 8, máximo 64
)
print(resp.model_dump_json(indent=4))
except DashScopeError as e:
print(f"Código de status HTTP: {e.status_code}")
print(f"Código de erro: {e.code}")
print(f"Mensagem de erro: {e.message}")
print("Consulte a documentação: https://www.alibabacloud.com/help/model-studio/developer-reference/error-code")
Para gerar um embedding fundido com a versão 2026-03-06, coloque texto, imagem e vídeo no mesmo objeto de conteúdo. O modelo funde todas as entradas em um único embedding do tipo fused.
import os
import dashscope
from dashscope.v2 import DashScopeError
# A configuração abaixo refere-se à região Singapura. Substitua {WorkspaceId} pelo ID real do seu workspace. O valor de region varia conforme a região.
client = dashscope.Client(
# Se a variável de ambiente não estiver configurada, substitua a linha abaixo pela sua API Key do Model Studio: api_key="sk-xxx",
# As API Keys variam conforme a região. Para obter uma API Key, consulte https://www.alibabacloud.com/help/model-studio/regions
api_key=os.getenv("DASHSCOPE_API_KEY"),
workspace="{WorkspaceId}",
region="ap-southeast-1",
)
# Vetor fundido: coloque text/image/video no mesmo objeto de conteúdo
# O modelo fundirá todas as entradas e as codificará em 1 vetor, com type igual a "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"
# Conteúdos multimodais no mesmo objeto são fundidos em 1 vetor
input_data = [
{"text": text, "image": image}
]
try:
resp = client.multimodal.embeddings.create(
model="tongyi-embedding-vision-plus-2026-03-06",
input=input_data,
dimension=1152
)
print(resp.model_dump_json(indent=4))
except DashScopeError as e:
print(f"Código de status HTTP: {e.status_code}")
print(f"Código de erro: {e.code}")
print(f"Mensagem de erro: {e.message}")
print("Consulte a documentação: https://www.alibabacloud.com/help/model-studio/developer-reference/error-code")
Exemplo de saída
{
"request_id": "40532987-ba72-42aa-a178-bb58b52fb7f3",
"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 erro
Se a chamada do modelo falhar e retornar uma mensagem de erro, consulte Códigos de erro para resolver o problema.