Diese Anleitung veranschaulicht den Prozess des Hinzufügens von Speicher zu einer Kette mit mehreren Eingaben in LangChain.
Wie füge ich einer Kette mit mehreren Eingaben in LangChain Speicher hinzu?
Der Speicher kann den LLMs oder Chatbots hinzugefügt werden, um die neuesten Nachrichten oder Daten zu speichern, damit das Modell den Kontext des Befehls verstehen kann. Um den Prozess des Hinzufügens von Speicher zu einer Kette mit mehreren Eingaben in LangChain zu erlernen, führen Sie einfach die folgenden Schritte aus:
Schritt 1: Module installieren
Installieren Sie zunächst das LangChain-Framework, da es verschiedene Abhängigkeiten zum Erstellen von Sprachmodellen aufweist:
pip langchain installieren
Installieren Sie chromadb, um die vom Speicher verwendeten Daten im Chroma-Vektorspeicher zu speichern:
pip chromadb installieren
Tiktoken ist der Tokenizer, mit dem kleine Teile großer Dokumente erstellt werden, damit diese einfach verwaltet werden können:
pip tiktoken installieren
OpenAI ist das Modul, mit dem Ketten und LLMs mithilfe der OpenAI()-Methode erstellt werden können:
pip openai installieren
Schritt 2: Umgebung einrichten und Daten hochladen
Der nächste Schritt nach der Installation aller für diesen Vorgang erforderlichen Module ist Einrichten der Umgebung Verwenden des API-Schlüssels vom OpenAI-Konto:
importieren Duimportieren getpass
Du . etwa [ „OPENAI_API_KEY“ ] = getpass . getpass ( „OpenAI-API-Schlüssel:“ )
Laden Sie die Dokumente mithilfe der Dateibibliothek hoch, um die Ketten im LangChain-Framework zu erstellen:
aus Google. ET AL importieren Dateienhochgeladen = Dateien. hochladen ( )
Schritt 3: Bibliotheken importieren
Sobald das Dokument erfolgreich hochgeladen wurde, importieren Sie einfach die erforderlichen Bibliotheken aus dem Langchain-Modul:
aus langchain. Einbettungen . openai importieren OpenAIEmbeddingsaus langchain. Einbettungen . zusammenhängen importieren CohereEmbeddings
aus langchain. text_splitter importieren CharacterTextSplitter
aus langchain. Vektorstores . elastische_vektor_suche importieren ElasticVectorSearch
aus langchain. Vektorstores importieren Chroma
aus langchain. docstore . dokumentieren importieren Dokumentieren
Schritt 4: Speicher mithilfe der Chroma-Datenbank aufbauen
Beginnen Sie nun mit dem Aufbau des Vektorraums, um die Einbettungen und Token des zuvor hochgeladenen Dokuments zu speichern:
mit offen ( „state_of_the_union.txt“ ) als F:Lage der Nation = F. lesen ( )
text_splitter = CharacterTextSplitter ( chunk_size = 1000 , chunk_overlap = 0 )
Texte = text_splitter. split_text ( Lage der Nation )
Einbettungen = OpenAIEmbeddings ( )
Konfigurieren Sie die Chroma-Datenbank zum Speichern des Textes und der Einbettungen aus dem Dokument:
Dokumentensuche = Chroma. from_texts (Texte , Einbettungen , Metadaten = [ { 'Quelle' : ich } für ich In Reichweite ( nur ( Texte ) ) ]
)
Testen Sie den Speicher, indem Sie den Befehl in der Abfragevariablen abfragen und dann die Methode „similarity_search()“ ausführen:
Abfrage = „Wann wurde die NATO gegründet?“Dokumente = Dokumentensuche. Ähnlichkeitssuche ( Abfrage )
Schritt 5: Eingabeaufforderungsvorlage konfigurieren
In diesem Schritt wird der Prozess der Konfiguration der Vorlage für die Eingabeaufforderungen durch den Import der folgenden Bibliotheken erläutert:
aus langchain. Ketten . Frage_Antwort importieren Load_qa_chainaus langchain. lms importieren OpenAI
aus langchain. Aufforderungen importieren PromptTemplate
aus langchain. Erinnerung importieren ConversationBufferMemory
Anschließend konfigurieren Sie einfach die Vorlage oder Struktur für die Abfrage und führen die Kette aus, sobald der Speicher zum Modell hinzugefügt wurde:
Vorlage = „Du bist ein Model, das sich mit einem Menschen unterhältErstellen Sie anhand der aus einem langen Dokument und einer Frage extrahierten Teile eine endgültige Antwort
{Kontext}
{hist}
Mensch: {input}
Chatbot:'''
prompt = PromptTemplate (
Eingabevariablen = [ „hist“ , 'Eingang' , 'Kontext' ] , Vorlage = Vorlage
)
Erinnerung = ConversationBufferMemory ( Speicherschlüssel = „hist“ , input_key = 'Eingang' )
Kette = Load_qa_chain (
OpenAI ( Temperatur = 0 ) , Kettentyp = 'Sachen' , Erinnerung = Erinnerung , prompt = prompt
)
Schritt 6: Testen des Speichers
Jetzt ist es an der Zeit, das Modell zu testen, indem Sie die Frage mit der Abfragevariablen stellen und dann die Methode chain() mit ihren Parametern ausführen:
Abfrage = „Wann wurde die NATO gegründet?“Kette ( { „input_documents“ : Dokumente , 'Eingang' : Abfrage } , return_only_outputs = WAHR )
Drucken Sie die im Pufferspeicher gespeicherten Daten aus, da die vom Modell gegebene Antwort kürzlich im Speicher gespeichert wurde:
drucken ( Kette. Erinnerung . Puffer )
Dabei geht es darum, Speicher zu einer Kette mit mehreren Eingaben in LangChain hinzuzufügen.
Abschluss
Um Speicher zu einer Kette mit mehreren Eingaben in LangChain hinzuzufügen, installieren Sie einfach die Module und den Vektorspeicher, um den Text und die Einbettungen zu speichern. Laden Sie anschließend die Daten/Dokumente vom lokalen System hoch und importieren Sie dann die erforderlichen Bibliotheken zum Speichern der Daten, um den Speicher für das LLM aufzubauen. Konfigurieren Sie die Eingabeaufforderungsvorlage so, dass die neuesten Nachrichten im Pufferspeicher gespeichert werden und senden Sie dann eine SMS an die Kette. In diesem Leitfaden wurde der Prozess des Hinzufügens von Speicher zu einer Kette mit mehreren Eingaben in LangChain näher erläutert.