Wie verwende ich Retriever in LangChain?

Wie Verwende Ich Retriever In Langchain



LangChain ist das Framework, das es Entwicklern ermöglicht, Large Language Models (LLMs) zu erstellen, die für die Interaktion mit Menschen verwendet werden können. Maschinen müssen menschliche Sprachen lernen, um mithilfe von LangChain mit ihnen interagieren zu können, da es alle notwendigen Bibliotheken und Abhängigkeiten zum Erstellen dieser Modelle bereitstellt.

In diesem Beitrag wird der Prozess der Verwendung von Retrievern in LangChain demonstriert.

Wie verwende ich Retriever in LangChain?

Retriever fungieren als Schnittstelle zwischen Modellen und Menschen, sodass sie mithilfe der in natürlichen Sprachen bereitgestellten Eingaben die gewünschte Ausgabe erhalten können. Vektorspeicher werden zum Speichern von Daten verwendet, die zum Abrufen/Extrahieren von Informationen/Daten verwendet werden können.







Allerdings sind die Retriever allgemeiner als diese Datenbanken. Sie speichern keine Daten und werden nur dazu verwendet, Daten für die Benutzer abzurufen oder abzurufen. Um den Prozess der Erstellung und Verwendung der Retriever über LangChain zu erlernen, sehen Sie sich die folgenden Schritte an:



Schritt 1: Module installieren
Installieren Sie zunächst die erforderlichen Module wie LangChain, um die Bibliotheken und Abhängigkeiten zu erhalten und mit dem Prozess fortfahren zu können:



Pip Installieren langchain





Installieren Sie den Chromadb-Vektorspeicher, der für die Datenbankdaten verwendet werden kann, damit der Retriever Daten aus dem Speicher abrufen kann:

Pip Installieren Chromadb



Installieren Sie nun das OpenAI-Framework, um seine Bibliotheken für die Texteinbettung zu erhalten, bevor Sie einen Retriever erstellen:

Pip Installieren openai

Nachdem Sie alle erforderlichen Module installiert haben, richten Sie einfach die Umgebung mit dem OpenAI-API-Schlüssel ein:

Importieren Sie uns
getpass importieren

os.environ [ „OPENAI_API_KEY“ ] = getpass.getpass ( „OpenAI-API-Schlüssel:“ )

Schritt 2: Datensatz hochladen
Führen Sie nun den folgenden Code aus, um auf zu klicken 'Wähle Dateien' Klicken Sie auf die Schaltfläche und laden Sie das Dokument oder die Datei vom lokalen System hoch:

aus google.colab-Importdateien
uploaded = files.upload ( )

Schritt 3: Bibliotheken importieren
Importieren Sie die erforderlichen Bibliotheken, um die Retriever in LangChain zu erstellen und zu verwenden, wie zum Beispiel „ Aufführen ',' Rückrufe ', und viele mehr:

from abc import ABC, abstractmethod
aus der Eingabe von import Any, List
aus langchain.schema-Importdokument
aus langchain.callbacks.manager Rückrufe importieren

Schritt 4: Erstellen Sie eine einzeilige Indexerstellung
Dieser Schritt erstellt den Index für den Retriever, der verwendet werden kann, um die Daten zum Bilden des Vektorspeichers abzurufen, indem die erforderlichen Bibliotheken importiert werden:

aus langchain.chains importieren RetrievalQA
aus langchain.llms OpenAI importieren

Laden Sie hier die Daten mit TextLoader() -Methode mit dem Pfad der in Schritt 2 hochgeladenen Datei:

Importieren Sie TextLoader aus langchain.document_loaders
Loader = TextLoader ( 'state_of_the_union.txt' , Codierung = 'utf8' )

Bibliothek importieren VectorstoreIndexCreator von LangChain, um einen Index für die Datenbank zu erstellen:

Importieren Sie VectorstoreIndexCreator aus langchain.indexes

Definiere das Index Variable mithilfe der VectorstoreIndexCreator()-Methode mithilfe der Lader Variable:

index = VectorstoreIndexCreator ( ) .from_loaders ( [ Lader ] )

Wenden Sie die Abfrage an, um den Index zu testen, indem Sie Daten aus dem Dokument abrufen:

Abfrage = „Was hat Präsident Selenskyj in seiner Rede gesagt?“
index.query ( Abfrage )

Rufen Sie die Details des Index ab, der angibt, welche Datenbank das hat Index mit folgendem Code:

index.vectorstore

Der folgende Code erläutert alle Details zum Index, seinem Typ und der Datenbank:

index.vectorstore.as_retriever ( )

Verwenden Sie den Index mit der query()-Methode, um mithilfe des Quellenarguments nach der Zusammenfassung des Dokuments zu fragen und den Namen des Dokuments zu verwenden:

index.query ( „Allgemeine Zusammenfassung der Daten aus diesem Dokument“ , Retriever_kwargs = { „search_kwargs“ : { 'Filter' : { 'Quelle' : „state_of_the_union.txt“ } } } )

Schritt 5: Einbettungen erstellen
Laden Sie das Dokument, um seine Einbettung zu erstellen, und speichern Sie den Text in numerischer Form mithilfe des Vektorspeichers:

Dokumente = Loader.load ( )

Starten Sie den Einbettungsprozess mit text_splitter mit den Argumenten Chunks-Größe und Überlappung:

aus langchain.text_splitter importiere CharacterTextSplitter
#Verwenden Sie text_splitter, um kleine Teile des Dokuments für die Verwendung des Retrievers zu erstellen
text_splitter = CharacterTextSplitter ( chunk_size = 1000 , chunk_overlap = 0 )
texte = text_splitter.split_documents ( Unterlagen )

Wenden Sie die OpenAIEmbeddings()-Methode an, die aus LangChain importiert werden kann:

aus langchain.embeddings importieren Sie OpenAIEmbeddings
Einbettungen = OpenAIEembeddings ( )

Verwenden Sie den Chromadb-Speicher, um die aus dem Dokument erstellten Einbettungen zu speichern:

aus langchain.vectorstores Chroma importieren
db = Chroma.from_documents ( Texte, Einbettungen )

Schritt 6: Testen Sie den Retriever
Sobald die Einbettungen erstellt und in der Datenbank gespeichert sind, definieren Sie einfach die Retriever-Variable:

Retriever = db.as_retriever ( )

Rufen Sie die Ketten mit der RetrievalQA()-Methode mit der OpenAI()-Funktion und dem Retriever als Argumenten auf:

qa = RetrievalQA.from_chain_type ( llm =OpenAI ( ) , Kettentyp = 'Sachen' , Retriever =Retriever )

Geben Sie die Eingabe zum Testen des Retrievers mit an Abfrage Variable innerhalb der qa.run()-Methode:

Abfrage = „Was hat Präsident Selenskyj in seiner Rede gesagt?“
qa.run ( Abfrage )

Passen Sie einfach die an VectorstoreIndexCreator () verwendet seine Argumente, um verschiedene Werte festzulegen:

index_creator = VectorstoreIndexCreator (
vectorstore_cls =Chroma,
Einbettung =OpenAIEmbeddings ( ) ,
text_splitter =CharacterTextSplitter ( chunk_size = 1000 , chunk_overlap = 0 )
)

Hier dreht sich alles um den Einstiegsprozess mit Retrievern in LangChain.

Abschluss

Um die Retriever in LangChain zu verwenden, installieren Sie einfach die zum Einrichten der OpenAI-Umgebung erforderlichen Abhängigkeiten und laden Sie dann das Dokument hoch, um die Retriever zu testen. Erstellen Sie anschließend den Retriever mithilfe einer abstrakten Basisklasse oder ABC-Bibliothek und erstellen Sie dann den Index für die Datenbank, um die Daten abzurufen. Konfigurieren Sie die Einbettungen für das Dokument und führen Sie den Retriever aus, um vergleichbare Ergebnisse aus der Datenbank zu erhalten. In diesem Beitrag wurde der Prozess der Verwendung der Retriever in LangChain näher erläutert.