Ai-Sentry es una capa de fachada de IA generativa conectable basada en Python + DAPR transparente, diseñada para admitir las siguientes características para grandes empresas que desarrollan y operan soluciones de IA generativa:
Reembolso cruzado por el uso de tokens entre diferentes consumidores de openAI
Registro basado en asíncrono de solicitud/respuesta con capacidad para alternar la eliminación de información de PII. Este nivel de registro es útil para muchas cosas, como el cumplimiento legal, así como para evaluar y reproducir solicitudes/respuestas en comparación con modelos más nuevos para ayudarlo a lidiar con las actualizaciones del modelo sin afectar a sus usuarios existentes.
Equilibrio de carga más inteligente al tener en cuenta las métricas de carga del encabezado de respuesta de Azure openAI y la agrupación de múltiples backends con capacidades del mismo modelo.
Admite respuestas de transmisión y no transmisión (incluido el registro de estas)
Extensibilidad de adaptadores personalizados para ayudarle a lidiar con las obsolescencias de SDK/API desde el lado del cliente, para que pueda proporcionar compatibilidad con versiones anteriores si es necesario.
AI-Sentry no está diseñado para reemplazar las soluciones API Gateway existentes, como Azure APIM, sino que está diseñado para ubicarse entre API Gateway y los puntos finales de openAI, brindando el máximo control para sus soluciones openAI.
Intentamos realizar un procesamiento pesado fuera de la canalización de llamadas HTTP directas para minimizar la latencia para los consumidores y confiar en los sidecars DAPR y los patrones Pub/Sub para realizar el trabajo de forma asincrónica.
Porque AI-Sentry usa DAPR; Las opciones de tecnología para la persistencia de registros y los intermediarios de mensajes se pueden intercambiar a través de los componentes nativos de DAPR. Nuestro ejemplo utiliza REDIS y Event Hubs como intermediario de mensajes para PUB/SUB y CosmosDB como almacén de persistencia de registros.
Es necesario que existan las siguientes variables de entorno. Depende de usted cómo los introduce, es decir, secretos de Kubernetes, mapas de configuración, etc.
Nombre | Valor | Componente |
---|---|---|
CONFIGURACIÓN DEL PUNTO FINAL AI-SENTRY | El valor JSON de ejemplo se encuentra aquí. Esto se utiliza para mapear puntos finales/implementaciones de OpenAI, de modo que cuando equilibremos la carga, accedamos a un grupo de mismos modelos de OpenAI del grupo. Asegúrese de incluir /openai en la configuración de la URL de su punto final. Puede aprovechar el siguiente script para generar una cadena de escape JSON de este JSON. | Aplicación de fachada |
AI-SENTRY-IDIOMA-CLAVE | su clave API general de servicios cognitivos | Trabajador de CosmosDB |
AI-SENTRY-IDIOMA-ENDPOINT | su idioma, análisis de texto o URL del punto final de servicio general | Trabajador de CosmosDB |
Independientemente de lo que utilice AI-Sentry, por ejemplo, Azure APIM o alguna otra tecnología de puerta de enlace API, deberá proporcionar algunos encabezados HTTP obligatorios.
NOMBRE DEL ENCABEZADO HTTP | VALOR DEL ENCABEZADO HTTP |
---|---|
ai-centinela-consumidor | Puede ser cualquier cadena: se utiliza para representar a un consumidor o un producto que utiliza backend de IA generativa. Usamos esto para fines de registro. |
nivel-de-registro-ai-sentry | Esto alterna el nivel de registro para el consumidor real. Los valores aceptados son: COMPLETE, PII_STRIPPING_ENABLED o DISABLED |
grupo-backend-ai-sentry | Proporcione el nombre del grupo de la configuración AI-SENTRY-ENDPOINT-CONFIG. Por ejemplo, piscina1 |
adaptadores-ai-centinela | Proporcione una lista de nombres de adaptadores que desea ejecutar antes de enviar la solicitud al punto final de openai. Ejemplo: ["SampleApiRequestTransformer","adapter2..."] |
Para obtener más información sobre cómo configurar AI-Sentry en su entorno, siga las siguientes secciones detalladas.
Configurar bases de datos/tabla de CosmosDB
Configurar AI-Sentry en AKS
Esquema de registro de CosmosDB
Esquema de registro resumido
Configuración de la identidad de la carga de trabajo: si desea autenticarse en backends openai a través de JWT en lugar de claves API
Afortunadamente, nuestro colega Graeme Foster ha publicado una versión dotnet con conjuntos de características similares. Vaya y compruébelo: https://github.com/microsoft/aicentral
Este proyecto agradece contribuciones y sugerencias. La mayoría de las contribuciones requieren que usted acepte un Acuerdo de licencia de colaborador (CLA) que declara que tiene derecho a otorgarnos, y de hecho lo hace, los derechos para usar su contribución. Para obtener más detalles, visite https://cla.opensource.microsoft.com.
Cuando envía una solicitud de extracción, un bot CLA determinará automáticamente si necesita proporcionar un CLA y decorar el PR de manera adecuada (por ejemplo, verificación de estado, comentario). Simplemente siga las instrucciones proporcionadas por el bot. Solo necesitarás hacer esto una vez en todos los repositorios que utilicen nuestro CLA.
Este proyecto ha adoptado el Código de conducta de código abierto de Microsoft. Para obtener más información, consulte las preguntas frecuentes sobre el Código de conducta o comuníquese con [email protected] si tiene alguna pregunta o comentario adicional.
Este proyecto puede contener marcas comerciales o logotipos de proyectos, productos o servicios. El uso autorizado de las marcas comerciales o logotipos de Microsoft está sujeto y debe seguir las Pautas de marcas y marcas comerciales de Microsoft. El uso de marcas comerciales o logotipos de Microsoft en versiones modificadas de este proyecto no debe causar confusión ni implicar patrocinio de Microsoft. Cualquier uso de marcas comerciales o logotipos de terceros está sujeto a las políticas de dichos terceros.