Vectorizador do Azure OpenAI

Nota

O Pesquisa de IA do Azure está disponível através do portal Azure, APIs REST e SDKs do Azure. Também sustenta o Foundry IQ, a camada de conhecimento gerida que transforma conteúdos empresariais em bases de conhecimento reutilizáveis e conscientes de permissões para agentes no portal Microsoft Foundry.

O vetorizador Azure OpenAI liga-se a um modelo de embedding implementado no seu projeto Azure OpenAI em Foundry Models ou Microsoft Foundry para gerar embeddings no momento da consulta. Os seus dados são processados na Geo onde o seu modelo é implementado.

Embora vetorizadores sejam usados durante consultas, são especificados nas definições de índice e são referenciados em campos vetoriais através de um perfil vetorial. Para mais informações, veja Configurar um vetorizador num índice de pesquisa.

O vetorizador Azure OpenAI chama-se AzureOpenAIVectorizer na API REST. Use a versão estável mais recente do Indexes - Create (REST API) ou um pacote SDK do Azure que forneça a funcionalidade.

Nota

Este vetorizador está ligado ao Azure OpenAI e é cobrado pelo preço Azure OpenAI Standard.

Pré-requisitos

  • Um recurso Azure OpenAI nos Modelos Foundry ou projeto Foundry.

    • O seu recurso OpenAI Azure deve ter um subdomínio personalizado, como https://<resource-name>.openai.azure.com. Podes localizar este endpoint na página Keys e Endpoint no portal da Azure e utilizá-lo para a configuração resourceUri nesta habilidade.

    • O recurso principal do seu projeto Foundry fornece acesso a múltiplos endpoints, incluindo https://<resource-name>.openai.azure.com, https://<resource-name>.services.ai.azure.com, e https://<resource-name>.cognitiveservices.azure.com. Podes encontrar estes endpoints na página Keys e Endpoint no portal Azure e usar qualquer um deles para a propriedade resourceUri nesta habilidade.

  • Um modelo de embedding Azure OpenAI implementado no seu recurso ou projeto. Para modelos suportados, veja a secção seguinte.

Parâmetros do vetorizador

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

Nome do parâmetro Descrição
resourceUri (Obrigatório) O URI do fornecedor do modelo. Domínios suportados são:

  • openai.azure.com
  • services.ai.azure.com
  • cognitiveservices.azure.com

Os endpoints do API Management do Azure também são suportados, exceto domínios personalizados de API Management. Para configurar, incluindo autenticação, RBAC e conectividade privada opcional, consulte Utilizar o API Management do Azure com competências do Azure OpenAI e vetorizadores.

apiKey A chave secreta usada para aceder ao modelo. Se fornecer uma chave, deixe authIdentity vazio. Se definires ambos apiKey e authIdentity, o apiKey é usado na ligação.
deploymentId (Obrigatório) O ID do modelo de embedding Azure OpenAI implementado. Este é o nome de implementação que especificaste quando implementaste o modelo.
authIdentity Uma identidade gerida pelo utilizador usada pelo serviço de pesquisa para a ligação. Pode usar uma identidade gerida pelo sistema ou pelo utilizador. Para usar uma identidade gerida pelo sistema, deixe apiKey e authIdentity em branco. A identidade gerida pelo sistema é usada automaticamente. Uma identidade gerida deve ter permissões Cognitive Services OpenAI User para enviar texto para Azure OpenAI.
modelName (Obrigatório) O nome do modelo Azure OpenAI implementado no deploymentId especificado. Os valores suportados são:

  • text-embedding-ada-002
  • text-embedding-3-large
  • text-embedding-3-small

Tipos de consulta vetorial suportados

O vetorizador Azure OpenAI só suporta consultas vetoriais text.

Dimensões esperadas do campo

As dimensões esperadas para um campo configurado com um vetorizador do Azure OpenAI dependem da configuração do modelName.

modelName Dimensões mínimas Dimensões máximas
text-embedding-ada-002 1536 1536
texto-embedding-3-grande 1 3072
Embutir texto-3-pequeno 1 1536

Definição de exemplo

"vectorizers": [
    {
        "name": "my-openai-vectorizer",
        "kind": "azureOpenAI",
        "azureOpenAIParameters": {
            "resourceUri": "https://my-fake-azure-openai-resource.openai.azure.com",
            "apiKey": "0000000000000000000000000000000000000",
            "deploymentId": "my-ada-002-deployment",
            "authIdentity": null,
            "modelName": "text-embedding-ada-002",
        },
    }
]

Práticas recomendadas de desempenho

Seguem-se algumas boas práticas que deve considerar ao utilizar este vetorizador:

  • Se estiver a atingir o limite de Azure OpenAI de TPM (Tokens por minuto), considere o aviso sobre limites de quota para poder abordar em conformidade. Consulte a documentação de monitorização Azure OpenAI para mais informações sobre o desempenho da sua instância Azure OpenAI.

  • O modelo de embeddings OpenAI da Azure que utiliza para este vetorizador deve ser idealmente separado da implementação usada para outros casos de uso, incluindo a habilidade de embedding. Isto ajuda a que cada implementação seja adaptada ao seu caso de uso específico, levando a um desempenho otimizado e à identificação fácil do tráfego proveniente do indexador e do índice que incorpora chamadas.

  • A sua instância Azure OpenAI deve estar na mesma região ou pelo menos geograficamente perto da região onde o seu serviço de AI Search está alojado. Isto reduz a latência e melhora a velocidade da transferência de dados entre os serviços.

  • Para evitar códigos de erro 429 frequentes, considere implementar o balanceamento de carga através da Gestão de APIs, implementando um gateway de balanceamento de carga em frente a múltiplas implementações de modelos de embedding do Azure OpenAI.

  • Se tiver um limite Azure TPM (Tokens por minuto) da OpenAI superior ao padrão, conforme publicado na documentação quotas e limites, abra um caso suporte com a equipa Pesquisa de IA do Azure, para que isto possa ser ajustado em conformidade. Isto ajuda a que o seu processo de indexação não seja desnecessariamente atrasado pelo limite padrão de TPM documentado, caso tenha limites mais elevados.

Considerações de segurança para autenticação de identidade gerida

Quando o vetorizador Azure OpenAI utiliza autenticação de identidade gerida, o Pesquisa de IA do Azure obtém um token de acesso Microsoft Entra para a audiência do Foundry Tools (https://cognitiveservices.azure.com) e inclui-o nos pedidos enviados ao endpoint especificado por resourceUri. A autenticação de identidade gerida aplica-se quando se define authIdentity, ou quando ambos apiKey e authIdentity estão vazios e o serviço utiliza a identidade atribuída pelo sistema.

Espera-se que o endpoint referenciado resourceUri seja o seu próprio recurso Azure OpenAI ou Foundry Tools. Domínios suportados são:

  • openai.azure.com
  • cognitiveservices.azure.com
  • services.ai.azure.com

Os endpoints () do *.azure-api.net) também são suportados. Como um nome de host APIM não pode ser verificado apenas pelo seu nome, o Pesquisa de IA do Azure valida estes endpoints com uma verificação de conectividade em tempo real no momento da configuração, em vez de por correspondência de domínio. És responsável por configurar e manter a relação entre o endpoint APIM e o recurso Azure OpenAI ou Foundry Tools por trás dele.

Nota

Um token de identidade gerido emitido para o público da Foundry Tools é válido contra qualquer recurso da Foundry Tools ou Azure OpenAI para o qual a identidade esteja autorizada. Enviá-lo para um endpoint não confiável pode expor o token.

Para ajudar a manter uma implantação segura, siga estas práticas:

  • Defina resourceUri apenas para endpoints que possua e em quem confia. Prefiro os domínios Foundry Tools listados anteriormente. Se usar um endpoint APIM, confirme que ele antecipa o seu próprio recurso antes de ativar a identidade gerida. Um nome de anfitrião com aparência confiável não é prova de propriedade.
  • Aplicar o princípio do menor privilégio à identidade gerida usada pelo serviço de pesquisa. O vetorizador Azure OpenAI requer apenas o papel de Utilizador OpenAI de Serviços Cognitivos no recurso alvo. Evite atribuir cargos mais amplos.
  • Use o Perímetro de Segurança de Rede (NSP) e endpoints privados ou integração com VNet para restringir quais os endpoints que o serviço de pesquisa pode alcançar e de que fontes o recurso alvo aceita pedidos.
  • Se usar um endpoint APIM, certifique-se de que o gateway valida os pedidos de entrada e os encaminha apenas para o backend pretendido. Também deve rever periodicamente as suas políticas de acesso.
  • Prefira identidade gerida em vez de apiKey. Se usares apiKey, guarda e roda de forma segura e não o incorpores no controlo de versão. O serviço rejeita configurações que definem tanto apiKey como authIdentity.
  • Revise periodicamente definições de índices, atribuições de papéis de identidade geridas e configurações do APIM para confirmar que resourceUri os valores, controlos de acesso e permissões de identidade permanecem atuais e apropriados. Revise as alterações de configuração através dos seus processos estabelecidos de gestão de alterações e revisão de segurança.
  • Monitorize os registos de início de sessão do Azure OpenAI e Foundry Tools, eventos de autenticação e registos de acesso para atividades inesperadas ou não autorizadas.
  • Remova vetorizadores, endpoints, atribuições de funções e chaves de API não utilizados que já não são necessários.

Restringir o acesso à configuração do índice e do vetorizador

Utilizadores que podem criar ou modificar definições de índice controlam tanto o ponto final de destino (resourceUri) como a configuração de autenticação usada pelo vetorizador. Como o vetorizador envia um token de identidade gerida para a audiência do Foundry Tools para esse endpoint, restrinja essas permissões a administradores de confiança e siga os seus processos padrão de gestão de alterações e revisão de segurança ao configurar vetorizadores habilitados para identidade gerida.

Ver também