Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Importante
Esta habilidade está em pré-visualização pública em Termos de Uso Suplementares. A API REST 2024-05-01-Preview e as APIs de visualização mais recentes suportam esse recurso.
A competência de embeddings multimodais do Azure Vision utiliza a API multimodal de embeddings do Azure Vision no Foundry Tools para gerar embeddings para entrada de texto ou imagem.
Para transações que ultrapassem 20 documentos por indexador por dia, esta competência exige que associe um recurso Microsoft Foundry faturável ao seu conjunto de competências. A execução das competências integradas é cobrada ao preço padrão existente da Foundry Tools. A extração de imagens também é faturável pelo Azure AI Search.
A localização dos recursos é uma consideração para a faturação. Como está a usar uma versão REST API de pré-visualização para criar um conjunto de competências que contenha competências de pré-visualização, pode usar uma ligação sem chave para contornar o requisito da mesma região. No entanto, para ligações baseadas em chaves, Azure AI Search e Foundry devem estar na mesma região. Para garantir a compatibilidade regional:
- Encontre uma região suportada para embeddings multimodais.
- Verifique se a região oferece enriquecimento por IA.
O recurso da Foundry é usado apenas para fins de faturação. O processamento de conteúdo ocorre em recursos separados gerenciados e mantidos pelo Azure AI Search dentro da mesma área geográfica. Seus dados são processados na área geográfica onde seu recurso é implantado.
@odata.type
Microsoft.Skills.Vision.VectorizeSkill
Limites de dados
Os limites de entrada para a competência podem ser encontrados na documentação Azure Vision para imagens e texto. Considere usar a habilidade Divisão de texto se precisar de fragmentação de dados para entradas de texto.
Os inputs aplicáveis incluem:
- O tamanho do arquivo de entrada de imagem deve ser inferior a 20 megabytes (MB). O tamanho da imagem deve ser maior que 10 x 10 pixels e menor que 16.000 x 16.000 pixels.
- A cadeia de caracteres de entrada de texto deve estar entre (inclusive) uma palavra e 70 palavras.
Parâmetros de habilidade
Os parâmetros diferenciam maiúsculas de minúsculas.
| Entradas | Descrição |
|---|---|
modelVersion |
(Obrigatório) A versão do modelo (2023-04-15) será passada para a API de embeddings multimodais do Azure Vision para gerar embeddings. As incorporações vetoriais só podem ser comparadas e combinadas se forem do mesmo tipo de modelo. As imagens vetorizadas por um modelo não serão pesquisáveis através de um modelo diferente. A mais recente API de Análise de Imagens oferece dois modelos:
|
Contributos para as competências
As entradas de definição de habilidade incluem nome, fonte e entradas. A tabela a seguir fornece valores válidos para o nome da entrada. Você também pode especificar entradas recursivas. Para obter mais informações, consulte a referência da API REST e Criar um conjunto de habilidades.
| Entrada | Descrição |
|---|---|
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 textou imageurl/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 | Descrição |
|---|---|
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 blob que tenha o seguinte conteúdo:
{
"content": "Forests, grasslands, deserts, and mountains are all part of the Patagonian landscape that spans more than a million square kilometers of South America."
}
Para entradas de texto, sua definição de habilidade pode ter esta aparência:
{
"@odata.type": "#Microsoft.Skills.Vision.VectorizeSkill",
"context": "/document",
"modelVersion": "2023-04-15",
"inputs": [
{
"name": "text",
"source": "/document/content"
}
],
"outputs": [
{
"name": "vector",
"targetName": "text_vector"
}
]
}
Para entrada de imagem, uma segunda definição de habilidade no mesmo conjunto de habilidades 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",
"targetName": "image_vector"
}
]
}
Se você quiser vetorizar imagens diretamente de sua fonte de dados de armazenamento de blob em vez de extrair imagens durante a indexação, sua definição de habilidade deve especificar uma URL e talvez um token SAS, dependendo da segurança do armazenamento. Para esse cenário, 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",
"targetName": "image_vector"
}
]
}
Saída de exemplo
Para a entrada dada, uma saída de incorporação vetorizada é produzida. A saída é de 1.024 dimensões, que é o número de dimensões suportadas pela API multimodal Azure Vision.
{
"text_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 imagem ao índice, use projeções de índice. A carga útil para indexProjections pode ser semelhante ao exemplo a seguir. image_content_vetor é um campo no índice e é preenchido com o conteúdo encontrado no vetor da matriz normalized_images .
"indexProjections": {
"selectors": [
{
"targetIndexName": "myTargetIndex",
"parentKeyFieldName": "ParentKey",
"sourceContext": "/document/normalized_images/*",
"mappings": [
{
"name": "image_content_vector",
"source": "/document/normalized_images/*/vector"
}
]
}
]
}