Habilitar o cache semântico para APIs do Azure OpenAI no Gerenciamento de API do Azure
APLICA-SE A: todas as camadas do Gerenciamento de API
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
- Uma ou mais APIs do Serviço OpenAI do Azure devem ser adicionadas à instância de Gerenciamento de API. Para obter mais informações, consulte Adicionar uma API de Serviço OpenAI do Azure ao Gerenciamento de API doAzure.
- O serviço Azure OpenAI deve ter implantações para o seguinte:
- API de Conclusão de Chat (ou API de Conclusão) – Implantação usada para chamadas de consumidor de API
- API de inserções – Implantação usada para cache semântico
- A instância de Gerenciamento de API deve ser configurada para usar a autenticação de identidade gerenciada para as APIs do Azure OpenAI. Para obter mais informações, consulte Autenticar e autorizar o acesso às APIs do OpenAI do Azure usando o Gerenciamento de API do Azure.
- Um Cache do Azure para Redis Enterprise ou uma instância Redis Gerenciados do Azure. O módulo RediSearch deve ser habilitado no cache Redis.
Observação
Você só pode habilitar o módulo RediSearch ao criar um novo cache Redis Gerenciado do Azure ou Redis do Azure. Você não pode adicionar um módulo a um cache existente. Saiba mais
- Cache externo configurado na instância de Gerenciamento de API do Azure. Para obter as etapas, consulte Usar um cache externo compatível com o Redis no Gerenciamento de API do Azure.
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
- Credenciais de autorização – acesse a guia Identidade Gerenciada.
- Identidade do cliente – selecione Identidade atribuída pelo sistema ou digite uma ID de cliente de identidade gerenciada atribuída pelo usuário.
- ID do recurso – Insira
https://cognitiveservices.azure.com/
para o Serviço OpenAI do Azure.
Testar o back-end
Para testar o back-end, crie uma operação de API para sua API do Serviço OpenAI do Azure:
- Na guia Design da API, selecione + Adicionar operação.
- Insira um nome de exibição e, opcionalmente, um nome para a operação.
- Na seção Front-end, na URL, selecione POST e insira o caminho
/
. - Na guia Cabeçalhos, adicione um cabeçalho necessário com o nome
Content-Type
e o valorapplication/json
. - 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:
Conteúdo relacionado
- Caching policies (Políticas de caching)
- Cache do Azure para Redis
- Recursos do gateway GenAI no Gerenciamento de API do Azure