Comment répliquer le système MRKL à l’aide d’agents dans LangChain ?

Comment Repliquer Le Systeme Mrkl A L Aide D Agents Dans Langchain



Le système modulaire de raisonnement, de connaissances et de langage (MRKL) est une architecture capable d'extraire des réponses avec les raisons de sa vérification. Il intègre des modèles de langage, un raisonnement discret et des sources de connaissances externes. Les modèles linguistiques produisent le texte dans des langues humaines en fonction des requêtes posées par l'utilisateur. MRKL (prononcé : miracle) ajoute un raisonnement tout en produisant les réponses pour rendre la réponse précise et valide.

Aperçu rapide

Cet article démontrera ce qui suit :







Comment répliquer le système MRKL à l'aide d'agents dans LangChain



Conclusion



Comment répliquer le système MRKL à l’aide d’agents dans LangChain ?

LangChain permet à l'utilisateur de créer des agents pouvant être utilisés pour effectuer plusieurs tâches pour les modèles de langage ou les chatbots. Les agents stockent leur travail avec toutes les étapes dans la mémoire attachée au modèle de langage. À l'aide de ces modèles, l'agent peut reproduire le fonctionnement de n'importe quel système comme MRKL pour obtenir des résultats optimisés sans avoir à les reconstruire.





Pour apprendre le processus de réplication du système MRKL à l'aide d'agents dans LangChain, suivez simplement les étapes répertoriées :

Étape 1 : Installation des frameworks

Tout d'abord, installez les modules expérimentaux LangChain en utilisant le pip avec la commande langchain-experimental :



pip installer langchain-expérimental

Installez le module OpenAI pour créer le modèle de langage pour le système MRKL :

pip installer openai

Étape 2 : Configuration de l'environnement OpenAI

Importez les bibliothèques os et getpass pour accéder au fonctionnement permettant d'inviter l'utilisateur à fournir les clés API pour les comptes OpenAI et SerpAPi :

importer toi

importer obtenir un laissez-passer

toi . environ [ 'OPENAI_API_KEY' ] = obtenir un laissez-passer . obtenir un laissez-passer ( « Clé API OpenAI : » )

toi . environ [ 'SERPAPI_API_KEY' ] = obtenir un laissez-passer . obtenir un laissez-passer ( « Clé API Serpapi : » )

Étape 3 : Importer des bibliothèques

Utilisez les dépendances de LangChain pour importer les bibliothèques requises pour créer le modèle de langage, les outils et les agents :

depuis chaîne de langue. Chaînes importer LLMMathChain

depuis chaîne de langue. llms importer OpenAI

depuis chaîne de langue. utilitaires importer SerpAPIWrapper

depuis chaîne de langue. utilitaires importer Base de données SQL

depuis langchain_experimental. SQL importer Chaîne de base de données SQL

depuis chaîne de langue. agents importer initialiser_agent , Outil

depuis chaîne de langage. agents importer Type d'agent

Étape 4 : Création d'une base de données

Le MRKL utilise des sources de connaissances externes pour extraire des informations à partir des données. Cet article utilise SQLite qui peut être téléchargé à l'aide de ceci guide pour construire la base de données. La commande suivante confirme le processus de téléchargement de SQLite en affichant sa version installée :

sqlite3

Utilisez les commandes suivantes dans un répertoire pour créer la base de données à l'aide de l'invite de commande :

CD Bureau

CD ma base de données

sqlite3 Chinook. base de données

Téléchargez le Base de données fichier et stockez-le dans le répertoire pour utiliser la commande suivante pour créer le « .db ' déposer:

. lire Chinook_Sqlite. SQL

SELECT * FROM Artiste LIMIT dix ;

Étape 5 : Téléchargement de la base de données

Une fois la base de données créée avec succès, téléchargez le fichier dans le collaborateur Google :

depuis Google. ET AL importer des dossiers

téléchargé = des dossiers. télécharger ( )

L'utilisateur peut accéder au fichier téléchargé sur le notebook pour copier son chemin depuis son menu déroulant :

Étape 6 : Configuration des outils

Après avoir créé la base de données, configurez le modèle de langage, les outils et les chaînes pour les agents :

recherche = SerpAPIWrapper ( )
llm = OpenAI ( température = 0 )
llm_math_chain = LLMMathChain ( llm = llm , verbeux = Vrai )
base de données = Base de données SQL. de_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_chain = SQLDatabaseChaîne. de_llm ( llm , base de données , verbeux = Vrai )
outils = [
Outil (
nom = 'Recherche' ,
fonction = recherche. courir ,
description = 'Demandez les invites ciblées pour obtenir des réponses sur les affaires récentes'
) ,
Outil (
nom = 'Calculatrice' ,
fonction = llm_math_chain. courir ,
description = 'utile pour répondre/résoudre des problèmes mathématiques'
) ,
Outil (
nom = 'Base de données FooBar' ,
fonction = db_chain. courir ,
description = 'utile pour répondre aux requêtes d'une base de données et la question d'entrée doit avoir le contexte complet'
)
]
  • Définir la llm variable en utilisant le OpenAI() méthode pour obtenir le modèle de langage.
  • Le recherche est l'outil qui appelle le SerpAPIWrapper() méthode pour accéder à son environnement.
  • Le LLMMathChain() La méthode est utilisée pour obtenir les réponses liées à des problèmes mathématiques.
  • Définir la base de données variable avec le chemin du fichier à l'intérieur du Base de données SQL() méthode.
  • Le SQLDatabaseChain() La méthode peut être utilisée pour obtenir les informations de la base de données.
  • Définir des outils comme recherche , calculatrice , et Base de données FooBar pour créer l'agent afin d'extraire des données de différentes sources :

Étape 7 : Création et test de l'agent

Initialisez le système MRKL à l'aide des outils, llm et agent pour obtenir les réponses aux questions posées par l'utilisateur :

mrkl = initialiser_agent ( outils , llm , agent = Type d'agent. ZERO_SHOT_REACT_DESCRIPTION , verbeux = Vrai )

Exécutez le système MRKL en utilisant la méthode run() avec la question comme argument :

mrkl. courir ( 'L'âge actuel de Leo DiCaprio et de sa petite amie révèle également leur différence d'âge' )

Sortir

L'agent a produit la réponse finale avec le chemin complet utilisé par le système pour extraire la réponse finale :

Étape 8 : Répliquer le système MRKL

Maintenant, utilisez simplement le mrkl mot-clé avec la méthode run() pour obtenir des réponses provenant de différentes sources comme des bases de données :

mrkl. courir ( 'Quel est le nom complet de l'artiste dont l'album intitulé 'The Storm Before the Calm' est sorti récemment et est-il dans la base de données FooBar et quels sont ses albums dans la base de données' )

L'agent a automatiquement transformé la question en requête SQL pour récupérer la réponse dans la base de données. L'agent recherche la bonne source pour obtenir la réponse, puis assemble la requête pour extraire les informations :

Étape 9 : Utiliser ChatModel

L'utilisateur peut simplement modifier le modèle de langage en utilisant la méthode ChatOpenAI() pour en faire un ChatModel et utiliser le système MRKL avec :

depuis chaîne de langage. chat_models importer ChatOpenAI

recherche = SerpAPIWrapper ( )
llm = ChatOpenAI ( température = 0 )
llm1 = OpenAI ( température = 0 )
llm_math_chain = LLMMathChain ( llm = llm1 , verbeux = Vrai )
base de données = Base de données SQL. de_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_chain = SQLDatabaseChaîne. de_llm ( llm1 , base de données , verbeux = Vrai )
outils = [
Outil (
nom = 'Recherche' ,
fonction = recherche. courir ,
description = 'Demandez les invites ciblées pour obtenir des réponses sur les affaires récentes'
) ,
Outil (
nom = 'Calculatrice' ,
fonction = llm_math_chain. courir ,
description = 'utile pour répondre/résoudre des problèmes mathématiques'
) ,
Outil (
nom = 'Base de données FooBar' ,
fonction = db_chain. courir ,
description = 'utile pour répondre aux requêtes d'une base de données et la question d'entrée doit avoir le contexte complet'
)
]

Étape 10 : Testez l'agent MRKL

Après cela, construisez l'agent et initialisez-le dans la variable mrkl à l'aide de la méthode initialize_agent(). Ajoutez le paramètre de la méthode pour intégrer les composants tels que les outils, llm, l'agent et verbose pour obtenir le processus complet dans la sortie :

mrkl = initialiser_agent ( outils , llm , agent = Type d'agent. CHAT_ZERO_SHOT_REACT_DESCRIPTION , verbeux = Vrai )

Exécutez la question en exécutant le système mrkl comme indiqué dans la capture d'écran suivante :

mrkl. courir ( 'Qui est la petite amie de Leo DiCaprio ? Quel est son âge actuel' )

Sortir

L'extrait suivant affiche la réponse finale extraite par l'agent :

Étape 11 : Répliquer le système MRKL

Utilisez le système MRKL en appelant la méthode run() avec la question en langage naturel pour extraire les informations de la base de données :

mrkl. courir ( 'Quel est le nom complet de l'artiste dont l'album intitulé 'The Storm Before the Calm' est sorti récemment et est-il dans la base de données FooBar et quels sont ses albums dans la base de données' )

Sortir

L'agent a affiché la réponse finale extraite de la base de données comme indiqué dans la capture d'écran suivante :

Il s’agit du processus de réplication du système MRKL à l’aide d’agents dans LangChain :

Conclusion

Pour répliquer le système MRKL à l'aide d'agents dans LangChain, installez les modules pour obtenir les dépendances pour importer les bibliothèques. Les bibliothèques sont nécessaires pour créer le modèle de langage ou le modèle de discussion afin d'obtenir les réponses de plusieurs sources à l'aide des outils. Les agents sont configurés pour utiliser les outils permettant d'extraire les sorties de différentes sources comme Internet, les bases de données, etc. Ce guide a développé le processus de réplication du système MRKL à l'aide d'agents dans LangChain.