Habilidade de incorporações multimodais do Azure AI Vision
Importante
Esta habilidade está em pré-visualização pública em Termos de Uso Suplementares. A API REST 2024-05-01-Preview suporta esse recurso.
A habilidade de incorporações multimodais do Azure AI Vision usa a API de incorporações multimodais do Azure AI Vision para gerar incorporações para entrada de imagem ou texto.
A habilidade só é suportada em serviços de pesquisa localizados em uma região que ofereça suporte à API de incorporações multimodais do Azure AI Vision. Revise a disponibilidade da região para incorporações multimodais. Seus dados são processados na área geográfica onde seu modelo é implantado.
Nota
Essa habilidade está vinculada aos serviços de IA do Azure e requer um recurso faturável para transações que excedam 20 documentos por indexador por dia. A execução de habilidades internas é cobrada pelo preço pré-pago dos serviços de IA do Azure existentes.
Além disso, a extração de imagens é faturável pelo Azure AI Search.
@odata.type
Microsoft.Skills.Vision.VectorizeSkill
Limites de dados
Os limites de entrada para a habilidade podem ser encontrados na documentação do Azure AI Vision para imagens e texto, respectivamente. Considere usar a habilidade Divisão de texto se precisar de fragmentação de dados para entradas de texto.
Parâmetros de habilidade
Os parâmetros diferenciam maiúsculas de minúsculas.
Entradas | Description |
---|---|
modelVersion |
(Obrigatório) A versão do modelo a ser passada para a API de incorporações multimodais do Azure AI Vision para gerar incorporações. É importante que todas as incorporaçõ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 este modelo, consulte Incorporações multimodais. |
Contributos para as competências
Entrada | Description |
---|---|
text |
O texto de entrada a ser vetorizado. Se você estiver usando o agrupamento de dados, a fonte pode ser /document/pages/* . |
image |
Tipo complexo. Atualmente, só funciona com o campo "/document/normalized_images", produzido pelo indexador de blob do Azure quando imageAction definido como um valor diferente de none . |
url |
O URL para baixar a imagem a ser vetorizada. |
queryString |
A seqüência de caracteres de consulta da URL para baixar a imagem a ser vetorizada. Útil se você armazenar a URL e o token SAS em caminhos separados. |
Apenas um dos text
ou image
url
/queryString
pode ser configurado para uma única instância da habilidade. Se você quiser vetorizar imagens e texto dentro do mesmo conjunto de habilidades, inclua duas instâncias dessa habilidade na definição do conjunto de habilidades, uma para cada tipo de entrada que você gostaria de usar.
Resultados em termos de competências
Saída | Description |
---|---|
vector |
Matriz de incorporação de saída de flutuadores para o texto ou imagem de entrada. |
Definição da amostra
Para entrada de texto, considere um registro que tenha os seguintes campos:
{
"content": "Microsoft released Windows 10."
}
Então sua definição de habilidade pode ficar assim:
{
"@odata.type": "#Microsoft.Skills.Vision.VectorizeSkill",
"context": "/document",
"modelVersion": "2023-04-15",
"inputs": [
{
"name": "text",
"source": "/document/content"
}
],
"outputs": [
{
"name": "vector"
}
]
}
Para entrada de imagem, sua definição de habilidade pode ter esta aparência:
{
"@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 de sua fonte de dados de armazenamento de blob, sua definição de habilidade pode ter esta aparência:
{
"@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 dado, uma saída de incorporaçã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 pesquisa, você deve definir um outputFieldMapping que mapeie a saída de incorporação vetorizada (que é uma matriz) para um campo vetorial. Supondo que a saída de habilidade resida no nó vetorial do documento e content_vetor seja o campo no índice de pesquisa, o outputFieldMapping no indexador deve ter a seguinte aparência:
"outputFieldMappings": [
{
"sourceFieldName": "/document/vector/*",
"targetFieldName": "content_vector"
}
]
Para mapear incorporações de imagens ao índice, você precisará usar o recurso Projeções de índice. A carga útil para indexProjections
pode ser algo como isto:
"indexProjections": {
"selectors": [
{
"targetIndexName": "myTargetIndex",
"parentKeyFieldName": "ParentKey",
"sourceContext": "/document/normalized_images/*",
"mappings": [
{
"name": "content_vector",
"source": "/document/normalized_images/*/vector"
}
]
}
]
}