Comment ajouter de la mémoire à une chaîne avec plusieurs entrées dans LangChain ?

Comment Ajouter De La Memoire A Une Chaine Avec Plusieurs Entrees Dans Langchain



Les chatbots et les grands modèles linguistiques sont utilisés par des millions de personnes à travers le monde et ces modèles peuvent générer du texte sur commande. LangChain est l'un des frameworks les plus efficaces et les plus efficients permettant aux développeurs de créer de tels modèles et robots. L'utilisateur donne des invites ou des requêtes en entrée et le modèle comprend la commande avant de générer le texte qui semble le plus lié ou qui ressemble à la commande.

Ce guide illustrera le processus d'ajout de mémoire à une chaîne avec plusieurs entrées dans LangChain.

Comment ajouter de la mémoire à une chaîne avec plusieurs entrées dans LangChain ?

La mémoire peut être ajoutée aux LLM ou aux chatbots pour stocker les messages ou les données les plus récents afin que le modèle puisse comprendre le contexte de la commande. Pour apprendre le processus d'ajout de mémoire à une chaîne avec plusieurs entrées dans LangChain, suivez simplement les étapes suivantes :







Étape 1 : Installer les modules

Tout d’abord, installez le framework LangChain car il possède une variété de dépendances pour créer des modèles de langage :



pip installer langchain



Installez chromadb pour stocker les données utilisées par la mémoire dans le magasin de vecteurs Chroma :





pip installer chromadb

Tiktoken est le tokenizer utilisé pour créer de petits morceaux de documents volumineux afin qu'ils puissent être gérés facilement :



pip installer tiktoken

OpenAI est le module qui peut être utilisé pour construire des chaînes et des LLM à l'aide de la méthode OpenAI() :

pip installer openai

Étape 2 : configuration de l'environnement et téléchargement des données

La prochaine étape après l'installation de tous les modules requis pour ce processus est mise en place de l'environnement en utilisant la clé API du compte OpenAI :

importer toi
importer obtenir un laissez-passer

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

Téléchargez les documents à l'aide de la bibliothèque de fichiers pour créer les chaînes dans le framework LangChain :

depuis Google. ET AL importer des dossiers

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

Étape 3 : Importer des bibliothèques

Une fois le document téléchargé avec succès, importez simplement les bibliothèques requises depuis le module Langchain :

depuis chaîne de langage. intégrations . ouvert importer OpenAIEmbeddings

depuis chaîne de langage. intégrations . adhérer importer CohereEmbeddings

depuis chaîne de langage. texte_splitter importer CaractèreTextSplitter

depuis chaîne de langage. magasins de vecteurs . élastique_vecteur_search importer Recherche de vecteur élastique

depuis chaîne de langage. magasins de vecteurs importer Chroma

depuis chaîne de langue. docstore . document importer Document

Étape 4 : Création de mémoire à l'aide de la base de données Chroma

Maintenant, commencez à créer l’espace vectoriel pour stocker les intégrations et les jetons du document téléchargé précédemment :

avec ouvrir ( 'état_of_the_union.txt' ) comme F:
état de l'Union = F. lire ( )
texte_splitter = CaractèreTextSplitter ( taille_morceau = 1000 , chunk_overlap = 0 )
des textes = text_splitter. texte_split ( état de l'Union )

intégrations = OpenAIEmbeddings ( )

Configurez la base de données Chroma pour stocker le texte et les intégrations du document :

recherche de documents = Chroma. from_texts (

des textes , intégrations , métadonnées = [ { 'source' : je } pour je dans gamme ( seulement ( des textes ) ) ]

)

Testez la mémoire en interrogeant la commande dans la variable de requête puis exécutez la méthode similarity_search() :

requête = 'Quand l'OTAN a-t-elle été créée'

documents = recherche documentaire. similarité_recherche ( requête )

Étape 5 : configuration du modèle d'invite

Cette étape explique le processus de configuration du modèle pour les invites en important les bibliothèques suivantes :

depuis chaîne de langue. Chaînes . question_réponse importer load_qa_chain

depuis chaîne de langue. llms importer OpenAI

depuis chaîne de langue. instructions importer Modèle d'invite

depuis chaîne de langage. mémoire importer ConversationBufferMémoire

Après cela, configurez simplement le modèle ou la structure de la requête et exécutez la chaîne une fois la mémoire ajoutée au modèle :

modèle = '''Vous êtes un mannequin en train de discuter avec un humain
Étant donné les morceaux extraits d'un long document et d'une question, créez une réponse finale

{contexte}

{historique}
Humain : {entrée}
Chatbot :'''


rapide = Modèle d'invite (
variables_d'entrée = [ 'hist' , 'saisir' , 'contexte' ] , modèle = modèle
)
mémoire = ConversationBufferMémoire ( clé_mémoire = 'hist' , clé_entrée = 'saisir' )
chaîne = load_qa_chain (
OpenAI ( température = 0 ) , type_chaîne = 'truc' , mémoire = mémoire , rapide = rapide
)

Étape 6 : tester la mémoire

Voici le moment de tester le modèle en posant la question à l'aide de la variable de requête puis en exécutant la méthode chain() avec ses paramètres :

requête = 'Quand l'OTAN a-t-elle été créée'

chaîne ( { 'input_documents' : documents , 'saisir' : requête } , return_only_outputs = Vrai )

Imprimez les données stockées dans la mémoire tampon car la réponse donnée par le modèle est stockée récemment dans la mémoire :

imprimer ( chaîne. mémoire . tampon )

Il s'agit d'ajouter de la mémoire à une chaîne avec plusieurs entrées dans LangChain.

Conclusion

Pour ajouter de la mémoire à une chaîne avec plusieurs entrées dans LangChain, installez simplement les modules et le magasin de vecteurs pour stocker le texte et les intégrations. Après cela, téléchargez les données/documents depuis le système local, puis importez les bibliothèques requises pour stocker les données afin de créer la mémoire pour le LLM. Configurez le modèle d'invite pour stocker les messages les plus récents dans la mémoire tampon, puis envoyez la chaîne par SMS. Ce guide a développé le processus d'ajout de mémoire à une chaîne avec plusieurs entrées dans LangChain.