Ce référentiel fournit un exemple de code pour améliorer les applications RAG avec des sources de données riches, notamment SQL Warehouses et des documents analysés avec Azure Document Intelligence.
Il est prévu que les plugins et les compétences fournis dans ce référentiel soient adaptés et ajoutés à votre application RAG nouvelle ou existante pour améliorer la qualité de la réponse.
Important
uv
pour gérer les dépendances et les utilitaires courants. Voir uv pour plus de détails sur la façon de démarrer. ./text_2_sql
contient trois implémentations Multi-Shot pour la génération et les requêtes Text2SQL qui peuvent être utilisées pour répondre à des questions soutenues par une base de données en tant que base de connaissances. Une approche basée sur des invites et une approche vectorielle sont présentées, toutes deux présentant d'excellentes performances pour répondre aux requêtes SQL. De plus, une autre itération de l'approche vectorielle est présentée, qui utilise un cache de requêtes pour accélérer davantage la génération. Avec ces plugins, votre application RAG peut désormais accéder et extraire les données de n'importe quelle table SQL qui lui est exposée pour répondre aux questions../adi_function_app
contient du code permettant de lier Azure Document Intelligence à AI Search pour traiter des documents complexes avec des graphiques et des images, et utilise des modèles multimodaux (gpt4o) pour les interpréter et les comprendre. Grâce à cette compétence personnalisée, l'application RAG peut tirer des informations de graphiques et d'images complexes lors de la recherche de vecteurs. Cette application fonctionnelle contient également une méthode de regroupement sémantique de texte qui vise à regrouper intelligemment les phrases similaires, en conservant les figures et les tableaux ensemble, tout en séparant les phrases distinctes../deploy_ai_search
fournit un utilitaire simple basé sur Python pour déployer un index, un indexeur et les compétences correspondantes pour AI Search et pour Text2SQL.Les composants ci-dessus ont été utilisés avec succès sur des projets de production RAG pour augmenter la qualité des réponses.
Le code fourni dans ce référentiel est un exemple de l'implémentation et doit être ajusté avant d'être utilisé en production.
Le diagramme suivant montre un flux de travail expliquant comment le plugin Text2SQL et AI Search serait incorporé dans une application RAG. En utilisant les plugins disponibles, ainsi que les capacités d'appel de fonctions des LLM, le LLM peut effectuer un raisonnement en chaîne de pensée pour déterminer les étapes nécessaires pour répondre à la question. Cela permet au LLM de reconnaître l'intention et donc de sélectionner les sources de données appropriées en fonction de l'intention de la question, ou d'une combinaison des deux.
Ce projet accueille les contributions et suggestions. La plupart des contributions nécessitent que vous acceptiez un contrat de licence de contributeur (CLA) déclarant que vous avez le droit de nous accorder, et que vous nous accordez effectivement, le droit d'utiliser votre contribution. Pour plus de détails, visitez https://cla.opensource.microsoft.com.
Lorsque vous soumettez une pull request, un robot CLA déterminera automatiquement si vous devez fournir un CLA et décorera le PR de manière appropriée (par exemple, vérification du statut, commentaire). Suivez simplement les instructions fournies par le bot. Vous n’aurez besoin de le faire qu’une seule fois pour tous les dépôts utilisant notre CLA.
Ce projet a adopté le code de conduite Microsoft Open Source. Pour plus d’informations, consultez la FAQ sur le code de conduite ou contactez [email protected] pour toute question ou commentaire supplémentaire.
Ce projet peut contenir des marques ou des logos pour des projets, des produits ou des services. L'utilisation autorisée des marques ou logos Microsoft est soumise et doit respecter les directives relatives aux marques et aux marques de Microsoft. L'utilisation des marques ou logos Microsoft dans les versions modifiées de ce projet ne doit pas prêter à confusion ni impliquer le parrainage de Microsoft. Toute utilisation de marques ou de logos tiers est soumise aux politiques de ces tiers.