Comment mettre en œuvre l'auto-question avec la chaîne de recherche ?

Comment Mettre En Oeuvre L Auto Question Avec La Chaine De Recherche



LangChain est le module permettant de créer des modèles de langage et des chatbots capables de comprendre et d'extraire du texte en langage naturel. Les langages naturels sont facilement compréhensibles par les humains, mais les machines doivent les apprendre en parcourant les données de manière répétée. Les données/documents dans les langues naturelles peuvent être utilisés pour entraîner le modèle, puis demander aux invites des données de vérifier les performances du modèle.

Aperçu rapide

Cet article démontrera ce qui suit :







Comment mettre en œuvre l'auto-question avec la chaîne de recherche



Conclusion



Comment mettre en œuvre l'auto-question avec la chaîne de recherche ?

Self-Ask est le processus visant à améliorer le processus de chaînage car il comprend parfaitement les commandes. Les chaînes comprennent la question en extrayant les données sur tous les termes importants de l'ensemble de données. Une fois que le modèle est entraîné et comprend la requête, il génère la réponse à la requête demandée par l'utilisateur.





Pour apprendre le processus de mise en œuvre de l'auto-demande avec les chaînes de recherche dans LangChain, parcourez simplement le guide suivant :

Étape 1 : Installation des frameworks

Tout d'abord, démarrez le processus en installant le processus LangChain à l'aide du code suivant et récupérez toutes les dépendances du processus :



pip installer langchain

Après avoir installé LangChain, installez le ' résultats de recherche Google ' pour obtenir les résultats de recherche de Google en utilisant l'environnement OpenAI :

pip installer openai google-search-results

Étape 2 : Environnement du bâtiment

Une fois les modules et les frameworks installés, configurez l'environnement pour le OpenAI et SerpAPI en utilisant leurs API en utilisant le code suivant. Importez les bibliothèques os et getpass qui peuvent être utilisées pour saisir les clés API depuis leurs comptes respectifs :

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

Après avoir configuré l'environnement, importez simplement les bibliothèques requises à partir des dépendances LangChain telles que les utilitaires, les agents, llm et autres :

depuis chaîne de langage. llms importer OpenAI

depuis chaîne de langage. utilitaires importer SerpAPIWrapper

depuis chaîne de langage. agents . analyseurs_de sortie importer SelfAskOutputParser

depuis chaîne de langage. agents . format_scratchpad importer format_log_to_str

depuis chaîne de langue importer moyeu

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

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

Étape 4 : Créer des modèles de langage

L'obtention des bibliothèques ci-dessus est requise tout au long du processus car OpenAI() est utilisé pour configurer le modèle de langage. Utilisez la méthode SerpAPIWrapper() pour configurer la variable de recherche et définir les outils requis pour que l'agent effectue toutes les tâches :

llm = OpenAI ( température = 0 )
recherche = SerpAPIWrapper ( )
outils = [
Outil (
nom = 'Réponse intermédiaire' ,
fonction = recherche. courir ,
description = 'utile lorsque vous devez demander avec la recherche' ,
)
]

Étape 5 : Utilisation du langage d'expression LangChain

Commencez par configurer l'agent à l'aide du LangChain Expression Language (LCEL) en chargeant le modèle dans la variable d'invite :

rapide = moyeu. tirer ( 'hwchase17/auto-demande-avec-recherche' )

Définissez une autre variable qui peut être exécutée pour arrêter de générer du texte et contrôler la longueur des réponses :

llm_with_stop = llm. lier ( arrêt = [ ' \n Réponse intermédiaire : ' ] )

Maintenant, configurez les agents à l'aide de Lambda, une plate-forme sans serveur pilotée par événements pour générer les réponses aux questions. Configurez également les étapes nécessaires pour entraîner et tester le modèle afin d'obtenir des résultats optimisés à l'aide des composants configurés précédemment :

agent = {
'saisir' : lambda x: x [ 'saisir' ] ,
'agent_scratchpad' : lambda x : format_log_to_str (
X [ 'étapes_intermédiaires' ] ,
préfixe_observation = ' \n Réponse intermédiaire : ' ,
llm_préfixe = '' ,
) ,
} | invite | llm_with_stop | SelfAskOutputParser ( )

Étape 6 : configuration de l'agent Executor

Avant de tester la méthode, importez simplement la bibliothèque AgentExecutor depuis LangChain pour rendre l'agent réactif :

depuis chaîne de langage. agents importer AgentExécuteur

Définissez la variable agent_executor en appelant la méthode AgentExecutor() et en utilisant les composants comme arguments :

agent_exécuteur = AgentExécuteur ( agent = agent , outils = outils , verbeux = Vrai )

Étape 7 : Exécution de l'agent

Une fois l'exécuteur de l'agent configuré, testez-le simplement en fournissant la question/invite dans la variable d'entrée :

agent_exécuteur. invoquer ( { 'saisir' : 'Qui est le champion masculin de l'US Open' } )

L'exécution du code ci-dessus a répondu avec le nom du champion de l'US Open dans le résultat, c'est-à-dire Dominic Thiem :

Étape 8 : Utilisation de l'agent Self-Ask

Après avoir obtenu la réponse de l'agent, utilisez le SELF_ASK_WITH_SEARCH agent avec la requête dans la méthode run() :

self_ask_with_search = initialiser_agent (
outils , llm , agent = Type d'agent. SELF_ASK_WITH_SEARCH , verbeux = Vrai
)
self_ask_with_search. courir (
'Quelle est la ville natale de Dominic Thiem, le champion du monde de l'US Open'
)

La capture d'écran suivante montre que l'agent de demande automatique extrait les informations sur chaque terme important de l'ensemble de données. Une fois qu’il rassemble toutes les informations sur la requête et comprend les questions, il génère simplement la réponse. Les questions que l'agent se pose lui-même sont :

  • Qui est Dominic Thiem ?
  • Quelle est la ville natale de Dominic Thiem ?

Après avoir obtenu les réponses à ces questions, l'agent a généré la réponse à la question d'origine qui est « Wiener Neustadt, Autriche » :

Il s’agit du processus de mise en œuvre de l’auto-demande avec une chaîne de recherche utilisant le framework LangChain.

Conclusion

Pour implémenter l'auto-demande avec recherche dans LangChain, installez simplement les modules requis comme google-search-results pour obtenir les résultats de l'agent. Après cela, configurez l'environnement à l'aide des clés API des comptes OpenAI et SerpAPi pour démarrer le processus. Configurez l'agent et créez le modèle avec le modèle de demande automatique pour le tester à l'aide de la méthode AgentExecutor().