LangChain-Integration

Erfahren Sie, wie Sie Rememberizer als LangChain-Retriever integrieren, um Ihrer LangChain-Anwendung Zugriff auf leistungsstarke Vektordatenbanksuchen zu ermöglichen.

LangChain-Integration

Rememberizer integriert sich mit LangChain über die Klasse RememberizerRetriever, die es Ihnen ermöglicht, die semantischen Suchfähigkeiten von Rememberizer einfach in Ihre von LangChain unterstützten Anwendungen einzubinden. Dieser Leitfaden erklärt, wie Sie diese Integration einrichten und verwenden, um fortschrittliche LLM-Anwendungen mit Zugriff auf Ihre Wissensdatenbank zu erstellen.

Einführung

LangChain ist ein beliebtes Framework zum Erstellen von Anwendungen mit großen Sprachmodellen (LLMs). Durch die Integration von Rememberizer mit LangChain können Sie:

  • Ihre Rememberizer-Wissensdatenbank in RAG (Retrieval Augmented Generation)-Anwendungen nutzen

  • Chatbots erstellen, die Zugriff auf Ihre Dokumente und Daten haben

  • Frage-Antwort-Systeme entwickeln, die Ihr Wissen nutzen

  • Agenten entwickeln, die über Ihre Informationen suchen und schlussfolgern können

Die Integration ist im Modul langchain_community.retrievers verfügbar.

Erste Schritte

Voraussetzungen

Bevor Sie beginnen, benötigen Sie:

  1. Ein Rememberizer-Konto mit Common Knowledge

  2. Einen API-Schlüssel für den Zugriff auf Ihr Common Knowledge

  3. Eine Python-Umgebung mit installiertem LangChain

Für detaillierte Anweisungen zur Erstellung von Common Knowledge und zur Generierung eines API-Schlüssels siehe Registrierung und Verwendung von API-Schlüsseln.

Installation

Installieren Sie die erforderlichen Pakete:

Wenn Sie planen, OpenAI-Modelle zu verwenden (wie in den folgenden Beispielen gezeigt):

Authentifizierungseinrichtung

Es gibt zwei Möglichkeiten, den RememberizerRetriever zu authentifizieren:

  1. Umgebungsvariable: Setzen Sie die Umgebungsvariable REMEMBERIZER_API_KEY

  2. Direkter Parameter: Übergeben Sie den API-Schlüssel direkt bei der Initialisierung des Retrievers

Konfigurationsoptionen

Die Klasse RememberizerRetriever akzeptiert diese Parameter:

Parameter
Typ
Standard
Beschreibung

top_k_results

int

10

Anzahl der Dokumente, die aus der Suche zurückgegeben werden

rememberizer_api_key

str

None

API-Schlüssel zur Authentifizierung (optional, wenn als Umgebungsvariable gesetzt)

Hinter den Kulissen führt der Retriever API-Aufrufe an den Suchendpunkt von Rememberizer mit zusätzlichen konfigurierbaren Parametern durch:

Erweiterter Parameter
Beschreibung

prev_chunks

Anzahl der Chunks vor dem übereinstimmenden Chunk, die einbezogen werden sollen (Standard: 2)

next_chunks

Anzahl der Chunks nach dem übereinstimmenden Chunk, die einbezogen werden sollen (Standard: 2)

return_full_content

Ob der gesamte Dokumentinhalt zurückgegeben werden soll (Standard: true)

Grundlegende Verwendung

Hier ist ein einfaches Beispiel zum Abrufen von Dokumenten von Rememberizer mit LangChain:

Verständnis der Dokumentstruktur

Jedes Dokument, das vom Retriever zurückgegeben wird, hat:

  • page_content: Der Textinhalt des übereinstimmenden Dokumentchunks

  • metadata: Zusätzliche Informationen über das Dokument

Beispiel für die Metadatenstruktur:

Fortgeschrittene Beispiele

Aufbau eines RAG-Frage-Antwort-Systems

Dieses Beispiel erstellt ein Frage-Antwort-System, das Informationen von Rememberizer abruft und GPT-3.5 verwendet, um Antworten zu formulieren:

API-Schlüssel einrichten

os.environ["REMEMBERIZER_API_KEY"] = "rem_ck_your_api_key" os.environ["OPENAI_API_KEY"] = "your_openai_api_key"

Initialisiere den Retriever und das Sprachmodell

retriever = RememberizerRetriever(top_k_results=5) llm = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0)

Erstelle eine Retrieval QA-Kette

qa_chain = RetrievalQA.from_chain_type( llm=llm, chain_type="stuff", # Einfachste Methode - alle Dokumente einfach in den Prompt stopfen retriever=retriever, return_source_documents=True )

Stelle eine Frage

response = qa_chain.invoke({"query": "Was ist RAG im Kontext von KI?"})

Drucke die Antwort

print(f"Antwort: {response['result']}") print("\nQuellen:") for idx, doc in enumerate(response['source_documents']): print(f"{idx+1}. {doc.metadata['name']}")

API-Schlüssel einrichten

os.environ["REMEMBERIZER_API_KEY"] = "rem_ck_your_api_key" os.environ["OPENAI_API_KEY"] = "your_openai_api_key"

Komponenten initialisieren

retriever = RememberizerRetriever(top_k_results=5) llm = ChatOpenAI(model_name="gpt-3.5-turbo") memory = ConversationBufferMemory( memory_key="chat_history", return_messages=True )

Erstellen Sie die Konversationskette

conversation = ConversationalRetrievalChain.from_llm( llm=llm, retriever=retriever, memory=memory )

Beispielkonversation

questions = [ "Was ist RAG?", "Wie nutzen große Sprachmodelle es?", "Was sind die Einschränkungen dieses Ansatzes?", ]

for question in questions: response = conversation.invoke({"question": question}) print(f"Frage: {question}") print(f"Antwort: {response['answer']}\n")

Erstelle Abrufgeräte

rememberizer_retriever = RememberizerRetriever(top_k_results=3) web_retriever = WebResearchRetriever(...) # Konfiguriere ein weiteres Abrufgerät

Erstellen Sie ein Ensemble mit gewichtetem Score

ensemble_retriever = EnsembleRetriever( retrievers=[rememberizer_retriever, web_retriever], weights=[0.7, 0.3] # Rememberizer-Ergebnisse haben ein höheres Gewicht )

  • Überprüfen Sie die Rohsuchergebnisse, bevor Sie sie an LLM weitergeben, um Abrufprobleme zu identifizieren

Verwandte Ressourcen

Last updated