Compartilhar via


Vetorizador de API Web personalizada

O vetorizador de API Web personalizado permite configurar consultas de pesquisa para chamar um ponto de extremidade da API Web que gera inserções no momento da consulta. A estrutura de conteúdo JSON necessária para o ponto de extremidade é descrita posteriormente neste artigo. Seus dados são processados na geography em que o modelo é implantado.

Embora os vetorizadores sejam usados no momento da consulta, você os especifica em definições de índice e faz referência a eles em campos de vetor por meio de um perfil de vetor. Para obter mais informações, consulte Configurar um vetorizador em um índice de pesquisa.

O vetor de API Web personalizado é chamado WebApiVectorizer na API REST. Use a versão estável mais recente do Indexes – Criar (API REST) ou um pacote SDK Azure que fornece o recurso.

Parâmetros do vetorizador

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

Nome do parâmetro Descrição
uri O URI da API Web para o qual o conteúdo JSON é enviado. Somente o esquema do URI https é permitido.
httpMethod O método usado para enviar o payload. Métodos permitidos são PUT ou POST.
httpHeaders Uma coleção de pares chave-valor em que as chaves representam nomes de cabeçalhos e os valores representam valores de cabeçalhos enviados para sua API da web com a carga útil. Os seguintes cabeçalhos são proibidos nesta coleção: Accept, , Accept-Charset, Accept-Encoding, Content-Length, , Content-Type, Cookie, Host, , TE, , Upgrade. Via.
authResourceId (Opcional) Uma cadeia de caracteres que, se definida, indica que esse vetor usa uma identidade gerenciada para a conexão com a função ou aplicativo que hospeda o código. Essa propriedade aceita uma ID do cliente ou do aplicativo, ou um registro de aplicativo em Microsoft Entra ID em um destes formatos: api://<appId>, <appId>/.default, api://<appId>/.default. Esse valor define o escopo do token de autenticação recuperado pelo pipeline de consulta e enviado com a solicitação de API Web personalizada para a função ou o aplicativo. Definir essa propriedade requer que seu serviço de busca seja configurado para identidade gerenciada e seu App de Funções do Azure esteja configurado para autenticação do Microsoft Entra.
authIdentity (Opcional) Uma identidade gerenciada pelo usuário usada pelo search service para se conectar à função ou aplicativo que hospeda o código. Você pode usar uma identidade gerenciada pelo sistema ou gerenciada pelo usuário. Para usar uma identidade gerenciada pelo sistema, deixe authIdentity em branco.
timeout (Opcional) O tempo limite para o cliente HTTP que está fazendo a chamada à API. Ele deve ser formatado como um valor XSD dayTimeDuration (um subconjunto restrito de um valor de duração ISO 8601 ). Por exemplo, PT60S significa 60 segundos. Se não estiver definido, o padrão será 30 segundos. O tempo limite pode ser entre 1 e 230 segundos.

Tipos de consultas vetoriais com suporte

O vetorizador de API Web Personalizada dá suporte a consultas vetoriais text, imageUrl e imageBinary.

Definição de exemplo

"vectorizers": [
    {
        "name": "my-custom-web-api-vectorizer",
        "kind": "customWebApi",
        "customWebApiParameters": {
            "uri": "https://contoso.embeddings.com",
            "httpMethod": "POST",
            "httpHeaders": {
                "api-key": "0000000000000000000000000000000000000"
            },
            "timeout": "PT60S",
            "authResourceId": null,
            "authIdentity": null
        }
    }
]

Estrutura de carga JSON

A estrutura de conteúdo JSON necessária para um ponto de extremidade usado com o vetorizador de API Web Personalizada é a mesma que a estrutura usada pela habilidade de API Web Personalizada, discutida com mais detalhes na documentação da habilidade.

Tenha em mente as seguintes considerações ao implementar um ponto de extremidade de API da Web para o vetorizador de API da Web personalizado.

  • O vetorizador envia apenas um registro por vez na matriz values ao fazer uma solicitação para o ponto de extremidade.

  • O vetorizador passa os dados a serem vetorizados em uma chave específica no objeto JSON data na carga útil da solicitação. Essa chave é text, imageUrl ou imageBinary, dependendo do tipo de consulta vetorial solicitado.

  • O vetorizador espera que a inserção resultante esteja sob a chave vector no objeto JSON data no conteúdo da resposta.

  • Quaisquer erros ou avisos retornados pelo ponto de extremidade são ignorados pelo vetorizador e não estão disponíveis para depuração no momento da consulta.

  • Se uma consulta vetorial imageBinary foi solicitada, a carga útil da solicitação enviada para o endpoint é a seguinte:

    {
        "values": [
            {
                "recordId": "0",
                "data":
                {
                    "imageBinary": {
                        "data": "<base 64 encoded image binary data>"
                    }
                }
            }
        ]
    }
    

Confira também