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 obter plano de fundo, consulte Tutorial: Usar o Cache do Azure para Redis como um cache semântico.

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 a conclusão do prompt. 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 a API de incorporação

Configure um recurso de back-end para a implantação da API de incorporação com as seguintes configurações:

  • Nome - Um nome de sua escolha, como embeddings-backend. Use esse nome para fazer referência ao back-end em políticas.
  • Tipo - Selecione URL personalizado.
  • URL de tempo de execução - A URL da implantação da API de incorporação no Serviço OpenAI do Azure, semelhante a: https://my-aoai.openai.azure.com/openai/deployments/embeddings-deployment/embeddings

Back-end de teste

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

  1. Na guia Design da API, selecione + Adicionar operação.
  2. Insira um Nome para 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 políticas a seguir 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

Configure as seguintes políticas para habilitar o cache semântico para APIs do Azure OpenAI no Gerenciamento de API do Azure:

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

    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 seção Processamento de saída para a API, adicione a política azure-openai-semantic-cache-store.

    Exemplo:

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

Confirmar cache

Para confirmar se o cache semântico está funcionando conforme o esperado, rastreie uma operação de Conclusão de teste ou Conclusão de Chat usando o console de teste no portal. Confirme se o cache foi usado em tentativas subsequentes inspecionando o rastreamento. 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.