Habilitación del almacenamiento en caché semántico para las API de Azure OpenAI en Azure API Management
SE APLICA A: Básico v2 | Estándar v2
Habilite el almacenamiento en caché semántico de respuestas a solicitudes de API de Azure OpenAI para reducir los requisitos de ancho de banda y procesamiento impuestos en las API de backend y una menor latencia percibida por los consumidores de API. Con el almacenamiento en caché semántico, puede devolver respuestas almacenadas en caché para mensajes idénticos y también para avisos similares en el sentido, incluso si el texto no es el mismo. Para más información, consulte Tutorial: Uso de Azure Cache for Redis como caché semántica.
Nota:
Los pasos de configuración de este artículo habilitan el almacenamiento en caché semántico para las API de Azure OpenAI. Estos pasos se pueden generalizar para habilitar el almacenamiento en caché semántico para las API del modelo de lenguaje grande (LLM) correspondientes disponibles a través de API de inferencia de modelos de Azure AI.
Requisitos previos
- Se deben agregar una o varias API de Azure OpenAI Service a la instancia de API Management. Para más información, consulte Incorporación de una API de Azure OpenAI Service a Azure API Management.
- El servicio Azure OpenAI debe tener implementaciones para lo siguiente:
- API de finalización de chat (o API de finalización): implementación que se usa para las llamadas de consumidor de API
- API de inserción: implementación que se usa para el almacenamiento en caché semántico
- La instancia de API Management debe configurarse para usar la autenticación de identidad administrada en las API de Azure OpenAI. Para más información, consulte autenticación y autorización del acceso a las API de Azure OpenAI mediante Azure API Management .
- Azure Cache for Redis Enterprise. El módulo RediSearch debe estar habilitado en la caché de Redis Enterprise.
Nota:
Solo puede habilitar el módulo RediSearch al crear una nueva caché de Redis Enterprise. No se puede agregar un módulo a una caché existente. Más información
- Caché externa configurada en la instancia de Azure API Management. Para ver los pasos, consulte Uso de una instancia externa de Azure Cache for Redis en Azure API Management.
Prueba de la implementación de la API de chat
En primer lugar, pruebe la implementación de Azure OpenAI para asegurarse de que la API de finalización de chat o la API de chat funcionan según lo previsto. Para conocer los pasos, consulte Importación de una API de Azure OpenAI en Azure API Management.
Por ejemplo, pruebe la API de chat de Azure OpenAI mediante el envío de una solicitud POST al punto de conexión de API con un mensaje en el cuerpo de la solicitud. La respuesta debe incluir la finalización de la pregunta. Solicitud de ejemplo:
POST https://my-api-management.azure-api.net/my-api/openai/deployments/chat-deployment/chat/completions?api-version=2024-02-01
con cuerpo de la solicitud:
{"messages":[{"role":"user","content":"Hello"}]}
Cuando la solicitud se realiza correctamente, la respuesta incluye una finalización para el mensaje de chat.
Creación de un backend para la API de inserción
Configure un recurso de backend para la implementación de la API de inserción con la siguiente configuración:
- Nombre: nombre de su elección, como
embeddings-backend
. Use este nombre para hacer referencia al backend en las directivas. - Tipo: seleccione dirección URL personalizada.
- Dirección URL del entorno de ejecución: la dirección URL de la implementación de la API de inserción en el Azure OpenAI Service, similar a:
https://my-aoai.openai.azure.com/openai/deployments/embeddings-deployment/embeddings
Probar back-end
Para probar el backend, cree una operación de API para la API del Azure OpenAI Service:
- En la pestaña Diseño de la API, seleccione + Agregar operación.
- Escriba un Nombre para mostrar y, opcionalmente, un Nombre para la operación.
- En la sección Frontend, en dirección URL, seleccione Publicación y escriba la ruta de acceso
/
. - En la pestaña Encabezados, agregue un encabezado necesario con el nombre
Content-Type
y el valorapplication/json
. - Seleccione Guardar.
Configure las siguientes directivas en la sección procesamiento de entrada de la operación de API. En el directiva set-backend-service, sustituya el nombre del backend que creó.
<policies>
<inbound>
<set-backend-service backend-id="embeddings-backend" />
<authentication-managed-identity resource="https://cognitiveservices.azure.com/" />
[...]
</inbound>
[...]
</policies>
En la pestaña Prueba, pruebe la operación agregando un parámetro de consulta de api-version
con un valor como 2024-02-01
. Proporcione un cuerpo de solicitud válido. Por ejemplo:
{"input":"Hello"}
Si la solicitud se realiza correctamente, la respuesta incluye una representación vectorial del texto de entrada:
{
"object": "list",
"data": [{
"object": "embedding",
"index": 0,
"embedding": [
-0.021829502,
-0.007157768,
-0.028619017,
[...]
]
}]
}
Configuración de directivas de almacenamiento en caché semántica
Configure las siguientes directivas para habilitar el almacenamiento en caché semántico para las API de Azure OpenAI en Azure API Management:
En la secciónProcesamiento de entrada de la API, agregue la directiva azure-openai-semantic-cache-lookup. En el atributo
embeddings-backend-id
, especifique el backend de la API de inserción que creó.Nota:
Al habilitar el almacenamiento en caché semántico para otras API de modelo de lenguaje grande, use en su lugar la directiva llm-semantic-cache-lookup.
Ejemplo:
<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>
En la sección Procesamiento de salida de la API, agregue la directiva azure-openai-semantic-cache-store.
Nota:
Al habilitar el almacenamiento en caché semántico para otras API de modelo de lenguaje grande, use en su lugar la directiva llm-semantic-cache-store.
Ejemplo:
<azure-openai-semantic-cache-store duration="60" />
Confirmación del almacenamiento en caché
Para confirmar que el almacenamiento en caché semántico funciona según lo previsto, realice un seguimiento de una operación de finalización de prueba o finalización de chat mediante la consola de prueba del portal. Confirme que la memoria caché se usó en intentos posteriores inspeccionando el seguimiento. Obtenga más información sobre el seguimiento de llamadas API en Azure API Management.
Por ejemplo, si se usó la memoria caché, la sección Salida incluye entradas similares a las de la captura de pantalla siguiente: