Compartir vía


Habilitación del almacenamiento en caché semántico para las API de Azure OpenAI en Azure API Management

SE APLICA A: todos los niveles de API Management

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

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
  • Credenciales de autorización: vaya a la pestaña Identidad administrada.
    • Identidad de cliente: seleccione Identidad asignada por el sistema o escriba un Id. de cliente de identidad administrada asignada por el usuario.
    • Id. del recurso: escriba https://cognitiveservices.azure.com/ para Azure OpenAI Service.

Probar back-end

Para probar el backend, cree una operación de API para la API del Azure OpenAI Service:

  1. En la pestaña Diseño de la API, seleccione + Agregar operación.
  2. Escriba un Nombre para mostrar y, opcionalmente, un Nombre para la operación.
  3. En la sección Frontend, en dirección URL, seleccione Publicación y escriba la ruta de acceso /.
  4. En la pestaña Encabezados, agregue un encabezado necesario con el nombre Content-Type y el valor application/json.
  5. 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"
        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:

Captura de pantalla del seguimiento de solicitudes en Azure Portal.