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

APLICA-SE A: Básico v2 | Standard v2

Habilite o cache semântico de respostas às solicitações da API do Azure OpenAI para reduzir os requisitos de largura de banda e processamento impostos às APIs de back-end e à menor 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 semelhantes em significado, mesmo que o texto não seja o mesmo. Para obter informações em segundo plano, consulte Tutorial: Usar o Cache do Azure para Redis como um cachesemântico.

Observação

As etapas de configuração descritas neste artigo permitem o cache semântico para APIs do OpenAI do Azure. Essas etapas podem ser generalizadas para habilitar o cache semântico nas APIs de LLM (modelo de linguagem grande) correspondentes disponíveis por meio da API de Inferência do Modelo de IA do Azure.

Pré-requisitos

Testar a implantação da API de Chat

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 obter etapas, consulte Importar uma API do OpenAI do Azure para o Gerenciamento de API do Azure.

Por exemplo, teste a API de Chat do Azure OpenAI 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. Solicitação de exemplo:

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

Com o corpo da solicitação:

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

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

Criar um back-end para a API de inserções

Configure um recurso de back-end para a implantação da API de inserções 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 Personalizar URL.
  • URL de runtime – A URL da implantação da API de inserções no Serviço OpenAI do Azure, semelhante a: https://my-aoai.openai.azure.com/openai/deployments/embeddings-deployment/embeddings

Testar o back-end

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

  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 Front-end, na URL, selecione POST e insira o caminho /.
  4. Na guia Cabeçalhos, adicione um cabeçalho necessário com o nome Content-Type e o valor application/json.
  5. Selecione Salvar

Configure as políticas a seguir na seção de processamento de entrada da operação de API. Na política set-backend-service, substitua o nome do back-end que você criou.

<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 de vetor 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 da API, adicione a política azure-openai-semantic-cache-lookup. embeddings-backend-id No atributo, especifique o back-end da API embeddings que você criou.

    Observação

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

    Observação

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

    Exemplo:

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

Confirmar o 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 o rastreamento de chamadas à API no Gerenciamento de API do Azure.

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

Captura de tela do rastreamento de solicitação no portal do Azure.