Este repositorio proporciona código de muestra para mejorar las aplicaciones RAG con fuentes de datos enriquecidas, incluidos SQL Warehouses y documentos analizados con Azure Document Intelligence.
La intención es que los complementos y habilidades proporcionados en este repositorio se adapten y agreguen a su aplicación RAG nueva o existente para mejorar la calidad de la respuesta.
Importante
uv
para administrar dependencias y utilidades comunes. Consulte uv para obtener más detalles sobre cómo comenzar. ./text_2_sql
contiene tres implementaciones Multi-Shot para la generación y consulta de Text2SQL que se pueden utilizar para responder preguntas respaldadas por una base de datos como base de conocimientos. Se muestran un enfoque basado en mensajes y en vectores , los cuales exhiben un gran rendimiento al responder consultas SQL. Además, se muestra una iteración adicional del enfoque basado en vectores que utiliza un caché de consultas para acelerar aún más la generación. Con estos complementos, su aplicación RAG ahora puede acceder y extraer datos de cualquier tabla SQL expuesta para responder preguntas../adi_function_app
contiene código para vincular Azure Document Intelligence con AI Search para procesar documentos complejos con gráficos e imágenes, y utiliza modelos multimodales (gpt4o) para interpretarlos y comprenderlos. Con esta habilidad personalizada, la aplicación RAG puede extraer información de gráficos e imágenes complejos durante la búsqueda de vectores. Esta aplicación funcional también contiene un método de fragmentación de texto semántico que tiene como objetivo agrupar de manera inteligente oraciones similares, manteniendo juntas figuras y tablas, mientras separa oraciones distintas../deploy_ai_search
proporciona una sencilla utilidad basada en Python para implementar un índice, un indexador y el conjunto de habilidades correspondiente para AI Search y Text2SQL.Los componentes anteriores se han utilizado con éxito en proyectos RAG de producción para aumentar la calidad de las respuestas.
El código proporcionado en este repositorio es una muestra de la implementación y debe ajustarse antes de usarse en producción.
El siguiente diagrama muestra un flujo de trabajo sobre cómo se incorporarían el complemento Text2SQL y AI Search en una aplicación RAG. Utilizando los complementos disponibles, junto con las capacidades de llamada de funciones de los LLM, el LLM puede realizar un razonamiento en cadena de pensamiento para determinar los pasos necesarios para responder la pregunta. Esto permite al LLM reconocer la intención y, por lo tanto, elegir las fuentes de datos adecuadas en función de la intención de la pregunta, o una combinación de ambas.
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.