Compartir a través de


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

SE APLICA A: Todos los niveles de API Management

Habilite el almacenamiento en caché semántico de las respuestas a las solicitudes de la API de LLM para reducir los requisitos de ancho de banda y procesamiento impuestos en las APIs de backend, disminuyendo así la latencia percibida por los consumidores de API. Con el almacenamiento en caché semántico, puede devolver respuestas almacenadas en caché para solicitudes idénticas y también para avisos similares en el sentido, incluso si el texto no es idéntico. Para más información, consulte Tutorial: Uso de Azure Managed Redis como caché semántica.

Nota

Los pasos de configuración de este artículo muestran cómo habilitar el almacenamiento en caché semántico para las API agregadas a API Management desde Azure OpenAI en los modelos de Microsoft Foundry. Puede aplicar pasos similares para habilitar el almacenamiento en caché semántico para las API del modelo de lenguaje grande (LLM) correspondientes disponibles a través de la API de inferencia de modelos de Azure AI o con modelos compatibles con OpenAI que se proporcionan a través de proveedores de inferencia de terceros.

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 funcione 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 back-end para la API de inserción

Cree un recurso backend para la implementación de la API de embeddings con la siguiente configuración:

  • Nombre: un nombre de su elección, como incrustaciones-backend. Use este nombre para hacer referencia al backend en las directivas.

  • Tipo: seleccione dirección URL personalizada.

  • Dirección URL en tiempo de ejecución : la dirección URL de la implementación de la API de inserción en Azure OpenAI, similar a: https://my-aoai.openai.azure.com/openai/deployments/embeddings-deployment/embeddings (sin parámetros de consulta).

  • Credenciales de autorización : vaya a la pestaña Identidad administrada .

    • Identidad de cliente : seleccione Identidad asignada por el sistema o escriba un identificador de cliente de identidad administrada asignada por el usuario.
    • Identificador de recurso : escriba https://cognitiveservices.azure.com/ en Azure OpenAI.

Probar los embeddings del backend

Para probar el back-end de incrustaciones, cree una operación de API para la API de Azure OpenAI:

  1. En la pestaña Diseño de la API, seleccione + Agregar operación.
  2. Escriba un nombre para mostrar como Incrustaciones 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. Haga clic en 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. Respuesta de ejemplo:

{
    "object": "list",
    "data": [{
        "object": "embedding",
        "index": 0,
        "embedding": [
            -0.021829502,
            -0.007157768,
            -0.028619017,
            [...]
        ]
    }]
}

Configuración de directivas de almacenamiento en caché semántica

Para habilitar el almacenamiento en caché semántico para las API de Azure OpenAI en Azure API Management, aplique las siguientes directivas: una para comprobar la caché antes de enviar solicitudes (búsqueda) y otra para almacenar las respuestas para su reutilización futura (almacén):

  • 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 back-end 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.15"
        embeddings-backend-id="embeddings-backend"
        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>
    <rate-limit calls="10" renewal-period="60" />
    

    Nota

    Añade una política de límite de velocidad (o política de límite por clave ) tras la búsqueda de caché para ayudar a limitar el número de llamadas y evitar sobrecarga en el servicio de backend en caso de que la caché no esté disponible.

  • 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 utiliza en los intentos posteriores inspeccionando la traza. Obtenga más información sobre el seguimiento de llamadas API en Azure API Management.

Ajuste el atributo score-threshold en la directiva de búsqueda para controlar qué tan estrechamente debe coincidir un aviso entrante con un aviso en caché para devolver su respuesta almacenada. Un umbral de puntuación inferior significa que las solicitudes deben tener una similitud semántica mayor para devolver respuestas almacenadas en caché. Las solicitudes con puntuaciones por encima del umbral no usan la respuesta almacenada en caché.

Por ejemplo, si se usa la memoria caché, la sección Salida incluye entradas similares a la captura de pantalla siguiente:

Captura de pantalla del seguimiento de solicitudes en Azure Portal.