Habilidade de incorporações multimodal da Visão de IA do Azure
Importante
Essa habilidade está em visualização pública nos Termos de Uso Complementares. A API REST 2024-05-01-Preview dá suporte a esse recurso.
A habilidade de incorporações multimodal da Visão de IA do Azure usa a API de incorporações multimodais da Visão de IA do Azure para gerar incorporações (embeddings, em inglês) para entradas de imagem ou texto.
A habilidade só tem suporte em serviços de busca localizados em uma região que oferece suporte à API de incorporações multimodais da Visão de IA do Azure. Examine a disponibilidade da região para incorporações multimodais. Seus dados são processados na área geográfica em que o modelo é implantado.
Observação
Essa habilidade está associada aos serviços de IA do Azure e requer um recurso faturável para transações que excedem 20 documentos por indexador por dia. A execução de habilidades internas é cobrada pelo preço pago conforme o uso dos serviços de IA do Azure existentes.
Além disso, a extração de imagens é faturável pelo IA do Azure Search.
@odata.type
Microsoft.Skills.Vision.VectorizeSkill
Limites de dados
Os limites de entrada para a habilidade podem ser encontrados na documentação da Visão de IA do Azure para imagens e textos, respectivamente. Experimente usar a habilidade de Divisão de Texto se precisar usar a técnica de data chunking nas entradas de texto.
Parâmetros de habilidades
Os parâmetros diferenciam maiúsculas de minúsculas.
Entradas | Descrição |
---|---|
modelVersion |
(Obrigatório) A versão do modelo a ser aprovada pela API de incorporações multimodal da Visão de IA do Azure para gerar incorporações. É importante que todas as inserções armazenadas em um determinado campo de índice sejam geradas usando o mesmo modelVersion . Para obter informações sobre o suporte de versão para esse modelo, consulte Incorporações multimodais. |
Entradas de habilidades
Entrada | Descrição |
---|---|
text |
O texto de entrada a ser vetorizado. Se estiver utilizando a técnica de data chunking, a fonte pode ser /document/pages/* . |
image |
Tipo complexo. Atualmente só funciona com o campo "/document/normalized_images" produzido pelo indexador de blobs do Azure quando imageAction é definido como um valor diferente de none . |
url |
A URL para baixar a imagem que será vetorizada. |
queryString |
A cadeia de caracteres de consulta da URL para baixar a imagem que será vetorizada. É útil se você armazenar a URL e o token SAS em caminhos separados. |
Apenas um dos text
, image
ou url
/queryString
pode ser configurado para uma única instância da habilidade. Se você quiser vetorizar imagens e textos no mesmo conjunto de habilidades, inclua duas instâncias dessa habilidade na definição do conjunto de habilidades, uma para cada tipo de entrada que deseja usar.
Saídas de habilidades
Saída | Descrição |
---|---|
vector |
Matriz de saída de incorporações de floats para o texto ou imagem de entrada. |
Definição de exemplo
Para entradas de texto, considere usar um registro que contenha os seguintes campos:
{
"content": "Microsoft released Windows 10."
}
Assim, sua definição de habilidade pode ser:
{
"@odata.type": "#Microsoft.Skills.Vision.VectorizeSkill",
"context": "/document",
"modelVersion": "2023-04-15",
"inputs": [
{
"name": "text",
"source": "/document/content"
}
],
"outputs": [
{
"name": "vector"
}
]
}
Para entradas de imagem, a definição da sua habilidade pode ser assim:
{
"@odata.type": "#Microsoft.Skills.Vision.VectorizeSkill",
"context": "/document/normalized_images/*",
"modelVersion": "2023-04-15",
"inputs": [
{
"name": "image",
"source": "/document/normalized_images/*"
}
],
"outputs": [
{
"name": "vector"
}
]
}
Se você quiser vetorizar imagens diretamente da fonte de dados do armazenamento de blobs, a definição da sua habilidade pode ser assim:
{
"@odata.type": "#Microsoft.Skills.Vision.VectorizeSkill",
"context": "/document",
"modelVersion": "2023-04-15",
"inputs": [
{
"name": "url",
"source": "/document/metadata_storage_path"
},
{
"name": "queryString",
"source": "/document/metadata_storage_sas_token"
}
],
"outputs": [
{
"name": "vector"
}
]
}
Saída de exemplo
Para o texto de entrada especificado, uma saída de inserção vetorizada é produzida.
{
"vector": [
0.018990106880664825,
-0.0073809814639389515,
....
0.021276434883475304,
]
}
A saída reside na memória. Para enviar essa saída para um campo no índice de busca, você deve definir um outputFieldMapping que mapeie a saída da incorporação vetorizada (que é uma matriz) para um campo vetorial. Supondo que a saída da habilidade esteja no nó vetorial do documento, e content_vector seja o campo no índice de busca, o outputFieldMapping no indexador deve ser assim:
"outputFieldMappings": [
{
"sourceFieldName": "/document/vector/*",
"targetFieldName": "content_vector"
}
]
Para mapear incorporações de imagens ao índice, você precisará usar o recurso Projeções de índice. O conteúdo das indexProjections
pode ser parecido com isso:
"indexProjections": {
"selectors": [
{
"targetIndexName": "myTargetIndex",
"parentKeyFieldName": "ParentKey",
"sourceContext": "/document/normalized_images/*",
"mappings": [
{
"name": "content_vector",
"source": "/document/normalized_images/*/vector"
}
]
}
]
}