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 toiimporter 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 dossiersté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 OpenAIEmbeddingsdepuis 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_chaindepuis 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.