Compartilhar via


Habilidade de inserções multimodal do Azure Vision

Importante

Essa habilidade está em visualização pública nos Termos de Uso Complementares. A API REST 2024-05-01-Preview e as APIs de versão prévia mais recentes dão suporte a esse recurso.

A habilidade de inserções multimodal do Azure Vision usa a API de inserções multimodal do Azure Vision nas Ferramentas de Fundimento para gerar inserções para entrada de texto ou imagem.

Para transações que excedem 20 documentos por indexador por dia, essa habilidade exige que você anexe um recurso faturável do Microsoft Foundry ao seu conjunto de habilidades. A execução de habilidades internas é cobrada pelo preço padrão das Ferramentas de Fundiária existentes. A extração de imagem também pode ser cobrada pelo Azure AI Search.

O recurso Microsoft Foundry é usado somente para fins de cobrança. O processamento de conteúdo ocorre em recursos separados gerenciados e mantidos pelo Azure AI Search. Seus dados são processados na Área Geográfica em que o recurso é implantado.

Regiões com suporte

As regiões com suporte variam de acordo com a modalidade e como a habilidade se conecta à API de inserções multimodal do Azure Vision.

Abordagem Requirement
Assistente para importar dados (novo)
  1. Localize uma região que dê suporte a inserções multimodal no Azure Vision.
  2. Verifique se a região dá suporte ao enriquecimento de IA no Azure AI Search.
  3. Crie um serviço do Azure AI Search e uma conta de vários serviços de IA do Azure na mesma região.
Programático, usando uma conexão baseada em chave para cobrança
  1. Localize uma região que dê suporte a inserções multimodal no Azure Vision.
  2. Verifique se a região dá suporte ao enriquecimento de IA no Azure AI Search.
  3. Crie um serviço do Azure AI Search e um recurso do Microsoft Foundry na mesma região.
Programático, usando uma conexão sem chave para cobrança Sem requisito de mesma região. Crie um serviço do Azure AI Search e um recurso do Microsoft Foundry em qualquer região em que cada serviço esteja disponível.

@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 do Azure para imagens e texto. Experimente usar a habilidade de Divisão de Texto se precisar usar a técnica de data chunking nas entradas de texto.

As entradas aplicáveis incluem:

  • O tamanho do arquivo de entrada da imagem deve ter menos de 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 habilidades

Os parâmetros diferenciam maiúsculas de minúsculas.

Entradas Descrição
modelVersion (Obrigatório) A versão do modelo (2023-04-15) a ser passada para a API de inserções multimodal do Azure Vision para gerar inserções. As inserções de vetor só poderão ser comparadas e correspondidas se forem do mesmo tipo de modelo. As imagens vetorizadas por um modelo não serão pesquisáveis por meio de um modelo diferente. A API de Análise de Imagem mais recente oferece dois modelos:
  • A 2023-04-15 versão, que dá suporte à pesquisa de texto em muitos idiomas. O Azure AI Search usa essa versão.
  • O modelo herdado 2022-04-11 , que dá suporte apenas ao inglês.

Entradas de habilidades

As entradas de definição de habilidade incluem nome, origem 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 crie um conjunto 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 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 da fonte de dados do armazenamento de blobs em vez de extrair imagens durante a indexação, sua definição de habilidade deverá especificar uma URL e talvez um token SAS, dependendo da segurança de armazenamento. Para este 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 fornecida, uma saída de inserção vetorizada é produzida. A saída é de 1.024 dimensões, que é o número de dimensões compatíveis com a API multimodal da Visão do Azure.

{
  "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 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 de habilidade reside no nó de vetor do documento e content_vector é 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 inserções de imagem no índice, use projeções de índice. O conteúdo pode indexProjections ser semelhante ao exemplo a seguir. image_content_vector é 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"
                }
            ]
        }
    ]
}

Confira também