Compartir a través de


Introducción a las funcionalidades de puerta de enlace de IA en Azure API Management

SE APLICA A: todos los niveles de API Management

En este artículo se presentan las funcionalidades de Azure API Management para ayudarle a administrar las API de IA generativa, como las proporcionadas por Azure OpenAI Service. Azure API Management proporciona una variedad de directivas, métricas y otras características para mejorar la seguridad, el rendimiento y la confiabilidad de las API que sirven a las aplicaciones inteligentes. En conjunto, estas características se denominan funcionalidades de puerta de enlace de IA para las API de IA generativas.

Nota:

  • Use las funcionalidades de puerta de enlace de IA para administrar las API expuestas por el servicio Azure OpenAI, 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.
  • Las funcionalidades de puerta de enlace de IA son características de la puerta de enlace de API existente de API Management, no de una puerta de enlace de API independiente. Para más información sobre API Management, consulte Información general sobre Azure API Management.

Desafíos en la administración de las API de IA generativa

Uno de los principales recursos que tiene en los servicios de IA generativa son los tokens. Azure OpenAI Service asigna una cuota para las implementaciones del modelo expresadas en tokens por minuto (TPM), que luego se distribuye entre los consumidores del modelo, por ejemplo, diferentes aplicaciones, equipos de desarrolladores, departamentos dentro de la empresa, etc.

Azure facilita la conexión de una sola aplicación a Azure OpenAI Service: puede conectarse directamente mediante una clave de API con un límite de TPM configurado directamente en el nivel de implementación del modelo. Sin embargo, cuando su portafolio de aplicaciones empieza a crecer, se encuentra con varias aplicaciones que llaman a uno o incluso varios puntos de conexión de Azure OpenAI Service que se han implementado como de pago por uso o instancias de unidades de rendimiento aprovisionadas (PTU). Esto conlleva ciertos desafíos:

  • ¿Cómo se realiza el seguimiento del uso de tokens en múltiples aplicaciones? ¿Se pueden calcular los cargos cruzados para varias aplicaciones o equipos que usan modelos de Azure OpenAI Service?
  • ¿Cómo se asegura de que una sola aplicación no consuma toda la cuota de TPM, dejando otras aplicaciones sin opción para usar modelos de Azure OpenAI Service?
  • ¿Cómo se distribuye la clave de API de forma segura entre varias aplicaciones?
  • ¿Cómo se distribuye la carga entre varios puntos de conexión de Azure OpenAI? ¿Puedes asegurarte de que se agote la capacidad confirmada en las PTU antes de revertir a las instancias de pago por uso?

En el resto de este artículo se describe cómo Azure API Management puede ayudarle a abordar estos desafíos.

Importación de un recurso de Azure OpenAI Service como una API

Importar una API desde un punto de conexión de Azure OpenAI Service a Azure API Management mediante una experiencia con un solo clic. API Management simplifica el proceso de incorporación mediante la importación automática del esquema de OpenAPI para la API de Azure OpenAI y configura la autenticación en el punto de conexión de Azure OpenAI mediante la identidad administrada, lo que elimina la necesidad de una configuración manual. Dentro de la misma experiencia fácil de usar, puede preconfigurar directivas para los límites de tokens, emitir métricas de token y almacenamiento en caché semántico.

Captura de pantalla del icono de la API de Azure OpenAI en el portal.

Directiva de límite de tokens

Configure la directiva de límite de tokens de Azure OpenAI para administrar y aplicar límites por consumidor de API en función del uso de tokens de Azure OpenAI Service. Con esta directiva puede establecer un límite de velocidad, expresado en tokens por minuto (TPM). También puede establecer una cuota de token durante un período especificado, como cada hora, diaria, semanal, mensual o anual.

Diagrama de limitación de tokens de Azure OpenAI Service en API Management.

Esta directiva proporciona flexibilidad para asignar límites basados en tokens en cualquier clave de contador, como la clave de suscripción, la dirección IP de origen o una clave arbitraria definida a través de una expresión de directiva. La directiva también habilita el cálculo previo de los tokens de solicitud en el lado de Azure API Management, lo que minimiza las solicitudes innecesarias al backend de Azure OpenAI Service si la solicitud ya supera el límite.

En el siguiente ejemplo básico se muestra cómo establecer un límite de TPM de 500 por clave de suscripción:

<azure-openai-token-limit counter-key="@(context.Subscription.Id)" 
    tokens-per-minute="500" estimate-prompt-tokens="false" remaining-tokens-variable-name="remainingTokens">
</azure-openai-token-limit>

Sugerencia

Para administrar y aplicar límites de token para otras API de LLM, API Management proporciona la directiva llm-token-limit equivalente.

Directiva de emisión de métricas de token

La política de métricas de emisión de tokens de Azure OpenAI envía métricas a Application Insights sobre el consumo de tokens de LLM a través de las API del servicio de Azure OpenAI. La directiva ayuda a proporcionar información general sobre el uso de modelos de Azure OpenAI Service en varias aplicaciones o consumidores de API. Esta directiva podría ser útil para escenarios de contracargo, supervisión y planificación de capacidad.

Diagrama de la emisión de métricas de token de Azure OpenAI Service mediante API Management.

Esta directiva captura las métricas de solicitudes, finalizaciones y uso total de tokens y las envía a un espacio de nombres de Application Insights de su elección. Además, puede configurar o seleccionar entre dimensiones predefinidas para dividir las métricas de uso de tokens, de modo que pueda analizar las métricas por identificador de suscripción, dirección IP o una dimensión personalizada de su elección.

Por ejemplo, la siguiente directiva envía métricas a Application Insights divididas por dirección IP de cliente, API y usuario:

<azure-openai-emit-token-metric namespace="openai">
    <dimension name="Client IP" value="@(context.Request.IpAddress)" />
    <dimension name="API ID" value="@(context.Api.Id)" />
    <dimension name="User ID" value="@(context.Request.Headers.GetValueOrDefault("x-user-id", "N/A"))" />
</azure-openai-emit-token-metric>

Sugerencia

Para enviar las métricas para otras API de LLM, API Management proporciona una política equivalente llamada llm-emit-token-metric.

Equilibrador de carga de backend y disyuntor

Uno de los desafíos al compilar aplicaciones inteligentes es asegurarse de que las aplicaciones sean resistentes a los errores de backend y puedan controlar cargas elevadas. Al configurar los puntos de conexión de Azure OpenAI Service mediante los backend en Azure API Management, puede equilibrar la carga entre ellos. También puedes definir las reglas del disyuntor para detener el reenvío de solicitudes a los backend de Azure OpenAI Service si no responden.

El equilibrador de carga del backend admite el equilibrio de carga basado en round-robin, ponderado y basado en prioridades, lo que te da flexibilidad para definir una estrategia de distribución de carga que cumpla tus requisitos específicos. Por ejemplo, defina prioridades dentro de la configuración del equilibrador de carga para garantizar un uso óptimo de puntos de conexión específicos de Azure OpenAI, especialmente aquellos adquiridos como PTU.

Diagrama del uso del equilibrio de carga de backend en API Management.

El disyuntor del backend incluye la duración del recorrido dinámica, aplicando valores del encabezado Retry-After proporcionado por el backend. Esto garantiza una recuperación precisa y oportuna de los backend, lo que maximiza el uso de sus backend prioritarios.

Diagrama del uso del disyuntor de backend en API Management.

Directiva de almacenamiento en caché semántico

Configure las directivas de almacenamiento en caché semántico de Azure OpenAI para optimizar el uso de tokens mediante el almacenamiento de finalizaciones para solicitudes similares.

Diagrama del almacenamiento en caché semántico en API Management.

En API Management, habilite el almacenamiento en caché semántico mediante Azure Redis Enterprise, Azure Managed Redis u otra caché externa compatible con RediSearch e incorporada a Azure API Management. Mediante la API de inserción de Azure OpenAI Service, las directivas azure-openai-semantic-cache-store y azure-openai-semantic-cache-lookup almacenan y recuperan finalizaciones de solicitudes semánticamente similares de la memoria caché. Este enfoque garantiza la reutilización de las finalizaciones, lo que reduce el consumo de tokens y mejora el rendimiento de la respuesta.

Sugerencia

Para habilitar el almacenamiento en caché semántico para otras API de LLM, API Management proporciona las directivas llm-semantic-cache-store-policy y llm-semantic-cache-lookup-policy equivalentes.

Registro del uso de tokens, avisos y finalizaciones

Habilite una configuración de diagnóstico en la instancia de API Management para registrar las solicitudes procesadas por la puerta de enlace para las API REST del modelo de lenguaje grande. Para cada solicitud, los datos se envían a Azure Monitor, incluido el uso de tokens (tokens de solicitud, tokens de finalización y tokens totales), el nombre del modelo usado y, opcionalmente, los mensajes de solicitud y respuesta (solicitud y finalización). Las solicitudes y respuestas grandes se dividen en varias entradas de registro que se numeran secuencialmente para la reconstrucción posterior si es necesario.

El administrador de API Management puede usar registros de puerta de enlace de LLM junto con los registros de puerta de enlace de API Management para escenarios como los siguientes:

  • Calcular el uso de la facturación : calcule las métricas de uso para la facturación en función del número de tokens consumidos por cada aplicación o consumidor de API (por ejemplo, segmentado por identificador de suscripción o dirección IP).
  • Inspeccionar mensajes : para ayudar a depurar o auditar, inspeccione y analice las indicaciones y las finalizaciones.

Obtenga más información sobre la supervisión de API Management con Azure Monitor.

Directiva de seguridad de contenido

Para ayudar a proteger a los usuarios de contenido dañino, ofensivo o engañoso, puede moderar automáticamente todas las solicitudes entrantes a una API de LLM mediante la configuración de la directiva llm-content-safety . La directiva aplica las comprobaciones de seguridad de contenido en las solicitudes de LLM transmitiéndolos primero al servicio de seguridad de contenido de Azure AI antes de enviarlos a la API de LLM de back-end.

Diagrama de moderación de solicitudes por la Seguridad de Contenido de Azure AI en una política de administración de API.

Laboratorios y ejemplos

Consideraciones sobre la arquitectura y el diseño