Partilhar via


Habilidade de incorporações multimodais do Azure AI Vision

Importante

Esta funcionalidade está em pré-visualização pública em Termos de Utilização 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 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 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 imagem 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"
                }
            ]
        }
    ]
}

Consulte também