Ce référentiel fournit un exemple d'application QnA optimisée par Dataworkz RAG Builder qui démontre la puissance de RAG sur plusieurs ensembles de données. Dans cette section, nous allons vous montrer comment exécuter l'exemple d'application QnA sur votre ordinateur local. Accédez ici pour en savoir plus sur Dataworkz RAG Builder
Cloner le référentiel dataworkz-qna-app à l'aide git clone https://github.com/dataworkz-dev/dataworkz-qna-app.git
.
Si nécessaire, installez node.js pour votre plateforme (Node Version > 16.0.0).
Une clé API par défaut pour l'exemple est incluse dans ce projet. Vous pouvez ignorer les étapes n°4 et n°5, sauf si vous envisagez de créer votre propre compte pour un développement ultérieur.
Vous aurez besoin d'une clé API Dataworkz pour accéder au service Dataworkz RAG QnA. Voici les étapes pour générer une clé API. Remarque : Le nom de la clé API doit être unique pour tous les utilisateurs. Veuillez donc choisir un nom en conséquence.
Placez votre clé API générée dans le fichier token.txt
. Vous pouvez trouver le fichier sur src/assets/token.txt
.
Exécutez npm install
pour installer les dépendances.
Exécutez npm run start
pour exécuter un serveur Web local qui héberge l'exemple d'application QnA. Pour accéder à l'application, ouvrez un navigateur et accédez à http://localhost:4200
Veuillez signaler tout problème avec l'exemple d'application QnA dans Problèmes
Dataworkz simplifie le développement d'applications RAG pour les entreprises. Dataworkz propose RAG as a Service afin que vous puissiez créer des applications GenAI à l'aide de données propriétaires, en utilisant soit des API LLM publiques, soit des modèles de fondation open source hébergés en privé.
Le générateur RAG de Dataworkz rationalise la création d'applications GenAI pour supprimer la complexité associée à l'assemblage d'une solution clé en main. Une pile d'IA composable offre la possibilité de choisir la base de données vectorielles, le modèle d'intégration, la stratégie de segmentation et le modèle LLM. Vous avez la possibilité d'utiliser les API LLM publiques, notamment AWS Bedrock et OpenAI, ou d'héberger un modèle open source dans un VPC.
Pour les applications RAG avancées, Dataworkz offre la possibilité de combiner la recherche lexicale et sémantique avec le filtrage des métadonnées, permettant ainsi aux applications RAG de traiter de grands volumes de données non structurées, semi-structurées ou structurées.
Dataworkz se connecte à différentes sources de données d'entreprise - services SaaS, bases de données relationnelles, bases de données NoSQL, fichiers stockés dans des magasins d'objets cloud et fournit des transformations sans code pour rendre les données propriétaires dans n'importe quel format prêtes pour les applications LLM. Lorsque vous combinez des données provenant de plusieurs sources, vous pouvez également configurer l'ordre de priorité des sources d'entrée utilisées pour créer le contexte de génération de la réponse LLM. La liste complète des connecteurs est disponible ici.
RAG Builder fournit une API permettant à tout développeur d'intégrer des applications GenAI dans son flux de travail existant avec une flexibilité totale pour personnaliser l'apparence. L'exemple d'application de ce référentiel exploite cette API pour ses fonctionnalités. Nous avons une section sur l'intégration de l'API dans cette application ainsi que sur la façon de l'utiliser dans vos propres applications.
L’émergence des hallucinations constitue un obstacle notable à l’adoption généralisée de la Gen AI au sein des entreprises. Dataworkz permet à GenAI de référencer ses origines, améliorant ainsi la traçabilité. Lisez le blog Dataworkz pour découvrir comment Dataworkz évalue la réponse d'un LLM.
Dans cette section, nous fournissons quelques notes de développeur sur la façon dont l'exemple d'application a été créé et quelles API ont été utilisées pour alimenter les différentes sections. Vous pouvez essayer l'API et le système de questions et réponses intégrés à votre propre application. Vous pouvez générer une clé API (si elle est déjà générée, la même clé peut être utilisée) et vous connecter à ce service.
Dataworkz travaille avec des partenaires stratégiques pour démontrer comment notre technologie s'intègre. Cet exemple d'application QnA se connecte à https://ragapps.dataworkz.com en tant que service backend RAG Partner Playground. Ce service Partner Playground montre comment Dataworkz et MongoDB Atlas Vector Search travaillent ensemble pour créer un système QnA pour les documents accessibles au public tels que les dépôts de 10 000 sociétés cotées comme Uber.
L'exemple de système QnA montre comment utiliser l'API Dataworkz RAG Builder pour répertorier les systèmes QnA et effectuer des requêtes enrichies sur cet ensemble de données.
Veuillez vous référer à la section Génération de clé API pour savoir comment obtenir une clé API et comment l'utiliser pour appeler les API Dataworkz QnA. Dans l'exemple d'application QnA, le jeton API est transmis dans l'en-tête Authentication
à l'aide du formulaire SWSS <api-key>
.
Dataworkz RAG Builder prend en charge la configuration de plusieurs systèmes QnA isolés. Les systèmes QnA sont utilisés comme domaines de systèmes de questions et réponses et peuvent être exploités pour la séparation entre plusieurs projets, groupes de sources, grands modèles de langage, versions ou différents sous-domaines non liés dans un projet, etc. Une application peut avoir un ou plusieurs Systèmes QnA. Lorsqu'une question est posée, elle est posée par rapport à un système QnA spécifique.
L'exemple d'application QnA commence par répertorier tous les systèmes QnA (sous forme de cartes) pour que l'utilisateur puisse sélectionner celui qui l'intéresse. Les développeurs d'applications peuvent choisir de répertorier les systèmes pour la sélection de l'utilisateur ou, si le choix est clair d'après le contexte, de définir dans le code.
Voici l'API pour répertorier tous les systèmes QnA disponibles - https://ragapps.dataworkz.com/api/qna/v1/systems. Le QnA systemId sélectionné sera nécessaire dans les API suivantes.
Les informations sur chaque système QnA individuel sont récupérées à l'aide de cette API - https://ragapps.dataworkz.com/api/qna/v1/systems/{systemId}. Ceci est utilisé dans l'exemple d'application QnA pour remplir les cartes système QnA individuelles.
Les questions reçoivent des réponses par les LLM configurés dans Dataworkz RAG Builder. Les LLM configurés pour les systèmes peuvent provenir d'OpenAI, de modèles hébergés en privé (comme Llama-2) et de Vertex AI de Google (l'exemple d'application peut prendre en charge un ou plusieurs d'entre eux). Cette API fournit une liste des LLMProviders configurés par le système QnA - https://ragapps.dataworkz.com/api/qna/v1/systems/{systemId}/llm-providers
L'exemple d'application QnA utilise cela pour remplir la liste déroulante LLMProviders afin de permettre à l'utilisateur de sélectionner le LLM qu'il souhaite utiliser pour répondre à la question. Vous devez stocker l'identifiant du LLMProvider que vous souhaitez utiliser pour poser des questions. Des questions peuvent être posées à des fournisseurs LLM spécifiques identifiés par le llmProviderId
renvoyé par cet appel d'API.
L'API pour poser une question au système Dataworkz QnA est https://ragapps.dataworkz.com/api/qna/v1/systems/{systemId}/answer
Cette API a besoin du systemId
du système QnA que vous ciblez et du llmProviderId
du LLM à utiliser. L'exemple d'application QnA exploite cette API pour alimenter la page « Recherche de connaissances ». La réponse de cette API inclut la réponse du LLM ainsi que des liens vers les sources faisant autorité qui sauvegardent la réponse.
L'exemple d'application QnA fournit une liste de questions précédemment posées à partir d'un système QnA. Il s'agit d'une méthode pratique permettant aux utilisateurs de consulter les questions déjà répondues. L'API suivante est utilisée - https://ragapps.dataworkz.com/api/qna/v1/systems/{systemId)/questionshistory
Dataworkz fournit une liste de questions déjà répondues ainsi que des scores supplémentaires et une analyse sur la qualité de la réponse. En savoir plus à ce sujet ici. L'exemple d'application QnA utilise cette API pour fournir des détails sur chaque question répondue - https://ragapps.dataworkz.com/api/qna/v1/systems/{systemId}/questions/{questionId}