Compartir a través de


Obtención de respuestas almacenadas en caché de solicitudes de API de modelos de lenguaje grande

SE APLICA A: todos los niveles de API Management

Use la directiva llm-semantic-cache-lookup para realizar la búsqueda en caché de respuestas al modelo de lenguaje grande (LLM) y las solicitudes de API de una caché externa configurada en función de la proximidad vectorial de la solicitud a las solicitudes anteriores y un umbral de puntuación de similitud especificado. El almacenamiento en caché de respuesta reduce el ancho de banda y los requisitos de procesamiento impuestos sobre la API de LLM de back-end y disminuye la latencia percibida por los consumidores de API.

Nota:

Nota:

Establezca los elementos de la directiva y los elementos secundarios en el orden proporcionado en la instrucción de directiva. Obtenga más información sobre el establecimiento o modificación de directivas de API Management.

Modelos admitidos

Use la directiva con las API de LLM agregadas a Azure API Management que están 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.

Instrucción de la directiva

<llm-semantic-cache-lookup
    score-threshold="similarity score threshold"
    embeddings-backend-id ="backend entity ID for embeddings API"
    embeddings-backend-auth ="system-assigned"             
    ignore-system-messages="true | false"      
    max-message-count="count" >
    <vary-by>"expression to partition caching"</vary-by>
</llm-semantic-cache-lookup>

Atributos

Atributo Descripción Necesario Valor predeterminado
umbral de puntuación Umbral de puntuación de similitud usado para determinar si se devuelve una respuesta almacenada en caché a un mensaje. El valor es decimal entre 0,0 y 1,0. Los valores más pequeños representan una mayor similitud semántica. Más información. N/D
embeddings-backend-id Id. de back-end para la llamada API de inserción de OpenAI. N/D
embeddings-backend-auth Autenticación usada para el back-end de la API de incrustaciones de Azure OpenAI. Sí. Se debe establecer en system-assigned. N/D
ignore-system-messages booleano. Cuando se establece en true (recomendado), quita los mensajes del sistema de un mensaje de finalización de chat gpT antes de evaluar la similitud de la memoria caché. No falso
max-message-count Si se especifica, número de mensajes de diálogo restantes después del cual se omite el almacenamiento en caché. No N/D

Elementos

Nombre Descripción Necesario
variación por Expresión personalizada determinada en tiempo de ejecución cuyas particiones de valor almacenan en caché. Si se agregan varios elementos vary-by, los valores se concatenan para crear una combinación única. No

Uso

Notas de uso

  • Esta directiva solo se puede usar una vez en una sección de directiva.
  • Ajuste el valor de en función de la aplicación para asegurarse de score-threshold que se usa la confidencialidad correcta al determinar qué consultas almacenar en caché. Comience con un valor bajo como 0,05 y ajuste para optimizar la proporción de aciertos de caché a errores.
  • El modelo de incrustaciones debe tener suficiente capacidad y un tamaño de contexto suficiente para dar cabida al volumen del mensaje y las solicitudes.
  • El umbral de puntuación por encima de 0,2 puede provocar que la caché no coincida. Considere la posibilidad de usar un valor inferior para casos de uso confidenciales.
  • Controle el acceso entre usuarios para almacenar en caché las entradas especificando vary-bycon identificadores de usuario o grupo de usuarios específicos.
  • Considere la posibilidad de agregar una directiva de seguridad de llm-content-safety con escudo de avisos para protegerse frente a ataques rápidos.

Ejemplos

Ejemplo con la directiva llm-semantic-cache-store correspondiente

<policies>
    <inbound>
        <base />
        <llm-semantic-cache-lookup
            score-threshold="0.05"
            embeddings-backend-id ="llm-backend"
            embeddings-backend-auth ="system-assigned" >
            <vary-by>@(context.Subscription.Id)</vary-by>
        </llm-semantic-cache-lookup>
    </inbound>
    <outbound>
        <llm-semantic-cache-store duration="60" />
        <base />
    </outbound>
</policies>

Para más información sobre el trabajo con directivas, vea: