Habilidade de inserções multimodal do Azure Vision

Important

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 Pesquisa de IA do Azure .

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

Supported regions

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.

Approach Requirement
Assistente de importação de dados
  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 Pesquisa de IA do Azure .
  3. Crie um serviço do Pesquisa de IA do Azure  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 Pesquisa de IA do Azure .
  3. Crie um serviço do Pesquisa de IA do Azure  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 Pesquisa de IA do Azure  e um recurso do Microsoft Foundry em qualquer região em que cada serviço esteja disponível.

@odata.type

Microsoft.Skills.Vision.VectorizeSkill

Data limits

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.

Skill parameters

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

Inputs Description
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 Pesquisa de IA do Azure  usa essa versão.
  • O modelo herdado 2022-04-11 , que dá suporte apenas ao inglês.

Skill inputs

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.

Input Description
text O texto de entrada a ser vetorizado. Se estiver utilizando a técnica de data chunking, a fonte pode ser /document/pages/*.
image Complex Type. 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.

Skill outputs

Output Description
vector Matriz de saída de incorporações de floats para o texto ou imagem de entrada.

Sample definition

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"
        }
    ]
}

Sample output

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"
                }
            ]
        }
    ]
}

See also