Partilhar via


Habilitar cache semântico para APIs do Azure OpenAI no Gerenciamento de API do Azure

APLICA-SE A: Todas as camadas de gerenciamento de API

Habilite o cache semântico de respostas a solicitações de API OpenAI do Azure para reduzir os requisitos de largura de banda e processamento impostos às APIs de back-end e diminuir a latência percebida pelos consumidores de API. Com o cache semântico, você pode retornar respostas armazenadas em cache para prompts idênticos e também para prompts que são semelhantes em significado, mesmo que o texto não seja o mesmo. Para mais informações, consulte Tutorial: Usar Azure Cache para Redis como um cache semântico.

Nota

As etapas de configuração neste artigo habilitam o cache semântico para APIs do Azure OpenAI. Essas etapas podem ser generalizadas para habilitar o cache semântico para APIs LLM (modelo de linguagem grande) correspondentes disponíveis por meio da API de Inferência de Modelo de IA do Azure ou com modelos compatíveis com OpenAI servidos por provedores de inferência de terceiros.

Pré-requisitos

Implementação da API de Chat de Teste

Primeiro, teste a implantação do Azure OpenAI para garantir que a API de Conclusão de Chat ou a API de Chat esteja funcionando conforme o esperado. Para conhecer as etapas, consulte Importar uma API do Azure OpenAI para o Gerenciamento de API do Azure.

Por exemplo, teste a API de Chat OpenAI do Azure enviando uma solicitação POST para o ponto de extremidade da API com um prompt no corpo da solicitação. A resposta deve incluir o cumprimento do pedido. Exemplo de pedido:

POST https://my-api-management.azure-api.net/my-api/openai/deployments/chat-deployment/chat/completions?api-version=2024-02-01

com o corpo do pedido:

{"messages":[{"role":"user","content":"Hello"}]}

Quando a solicitação é bem-sucedida, a resposta inclui uma conclusão para a mensagem de chat.

Criar um back-end para incorporar API

Configure um recurso de backend para a implantação da API de embeddings, com as seguintes configurações:

  • Nome - Um nome de sua escolha, como embeddings-backend. Use este nome para referenciar o backend nas políticas.

  • Tipo - Selecione URL personalizado.

  • URL de tempo de execução - A URL da implantação da API de embeddings no Azure OpenAI, semelhante a: https://my-aoai.openai.azure.com/openai/deployments/embeddings-deployment/embeddings

  • Credenciais de autorização - Aceda ao separador Identidade gerenciada.

    • Identidade do cliente - Selecione Identidade atribuída ao sistema ou digite um ID de cliente de identidade gerenciada atribuído ao usuário.
    • ID do recurso - Entre https://cognitiveservices.azure.com/ para o Azure OpenAI.

Backend de teste

Para testar o back-end, crie uma operação de API para sua API do Azure OpenAI:

  1. Na guia Design da API, selecione + Adicionar operação.
  2. Insira um Nome de exibição e, opcionalmente, um Nome para a operação.
  3. Na seção Frontend, em URL, selecione POST e insira o caminho /.
  4. Na guia Cabeçalhos, adicione um cabeçalho obrigatório com o nome Content-Type e o valorapplication/json.
  5. Selecione Guardar

Configure as seguintes políticas na seção Processamento de entrada da operação da API. Na política set-backend-service, substitua o nome do back-end criado.

<policies>
    <inbound>
        <set-backend-service backend-id="embeddings-backend" />
        <authentication-managed-identity resource="https://cognitiveservices.azure.com/" />
        [...]
    </inbound>
    [...]
</policies>

Na guia Teste, teste a operação adicionando um api-version parâmetro de consulta com valor como 2024-02-01. Forneça um corpo de solicitação válido. Por exemplo:

{"input":"Hello"}

Se a solicitação for bem-sucedida, a resposta incluirá uma representação vetorial do texto de entrada:

{
    "object": "list",
    "data": [{
        "object": "embedding",
        "index": 0,
        "embedding": [
            -0.021829502,
            -0.007157768,
            -0.028619017,
            [...]
        ]
    }]
}

Configurar políticas de cache semântico

Para habilitar o cache semântico para APIs do Azure OpenAI no Gerenciamento de API do Azure, aplique as seguintes políticas: uma para verificar o cache antes de enviar solicitações (pesquisa) e outra para armazenar respostas para reutilização futura (armazenamento):

  • Na seção Processamento de Entrada para a API, adicione a política azure-openai-semantic-cache-lookup. No atributo embeddings-backend-id, especifique o back-end da API de embeddings que criou.

    Nota

    Ao ativar o cache semântico para outras APIs de modelo de linguagem grande, use a política llm-semantic-cache-lookup.

    Exemplo:

    <azure-openai-semantic-cache-lookup
        score-threshold="0.8"
        embeddings-backend-id="embeddings-deployment"
        embeddings-backend-auth="system-assigned"
        ignore-system-messages="true"
        max-message-count="10">
        <vary-by>@(context.Subscription.Id)</vary-by>
    </azure-openai-semantic-cache-lookup>
    
    
  • Na secção de Processamento de Saída para a API, adicione a política azure-openai-semantic-cache-store.

    Nota

    Ao ativar o cache semântico para outras APIs de modelos de linguagem grande, use a política llm-semantic-cache-store.

    Exemplo:

    <azure-openai-semantic-cache-store duration="60" />
    

Confirmar armazenamento em cache

Para confirmar se o cache semântico está a funcionar conforme o esperado, rastreie uma operação de Conclusão de Teste ou de Conclusão de Chat através do console de teste no portal. Confirme se o cache foi usado em tentativas subsequentes ao inspecionar o rastreio. Saiba mais sobre como rastrear chamadas de API no Gerenciamento de API do Azure.

Por exemplo, se o cache foi usado, a seção Saída inclui entradas semelhantes às da captura de tela a seguir:

Captura de ecrã do rastreio de pedidos no portal do Azure.