Wie füge ich einer Kette mit mehreren Eingaben in LangChain Speicher hinzu?

Wie Fuge Ich Einer Kette Mit Mehreren Eingaben In Langchain Speicher Hinzu



Chatbots und Large Language Models werden von Millionen Menschen auf der ganzen Welt verwendet und diese Modelle können auf Befehl Text generieren. LangChain ist eines der effektivsten und effizientesten Frameworks, die es Entwicklern ermöglichen, solche Modelle und Bots zu erstellen. Der Benutzer gibt Eingabeaufforderungen oder Abfragen ein und das Modell versteht den Befehl, bevor es den Text generiert, der dem Befehl am ähnlichsten erscheint oder ihm am ähnlichsten erscheint.

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 Du
importieren 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 Dateien

hochgeladen = 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 OpenAIEmbeddings

aus 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_chain

aus 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ält
Erstellen 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.