Wie repliziere ich das MRKL-System mithilfe von Agenten in LangChain?

Wie Repliziere Ich Das Mrkl System Mithilfe Von Agenten In Langchain



Das Modular Reasoning, Knowledge, and Language (MRKL)-System ist eine Architektur, die Antworten mit den Gründen für ihre Überprüfung extrahieren kann. Es integriert Sprachmodelle, diskretes Denken und externe Wissensquellen. Sprachmodelle erzeugen den Text in menschlichen Sprachen entsprechend den vom Benutzer gestellten Abfragen. MRKL (ausgesprochen: Wunder) fügt bei der Erstellung der Antworten Argumente hinzu, um die Antwort korrekt und gültig zu machen.

Kurzer Überblick

In diesem Beitrag wird Folgendes demonstriert:







So replizieren Sie das MRKL-System mithilfe von Agenten in LangChain



Abschluss



Wie repliziere ich das MRKL-System mithilfe von Agenten in LangChain?

Mit LangChain kann der Benutzer Agenten erstellen, mit denen mehrere Aufgaben für die Sprachmodelle oder Chatbots ausgeführt werden können. Agenten speichern ihre Arbeit mit allen Schritten im Speicher, der an das Sprachmodell angehängt ist. Mithilfe dieser Vorlagen kann der Agent die Funktionsweise eines beliebigen Systems wie MRKL nachbilden, um optimierte Ergebnisse zu erzielen, ohne sie erneut erstellen zu müssen.





Um den Prozess der Replikation des MRKL-Systems mithilfe von Agenten in LangChain zu erlernen, führen Sie einfach die aufgeführten Schritte durch:

Schritt 1: Frameworks installieren

Installieren Sie zunächst die experimentellen LangChain-Module mithilfe des pip mit dem Befehl langchain-experimental:



pip install langchain-experimental

Installieren Sie das OpenAI-Modul, um das Sprachmodell für das MRKL-System zu erstellen:

pip openai installieren

Schritt 2: OpenAI-Umgebung einrichten

Importieren Sie die OS- und GetPass-Bibliotheken, um auf den Betrieb zuzugreifen und den Benutzer aufzufordern, die API-Schlüssel für die OpenAI- und SerpAPi-Konten bereitzustellen:

importieren Du

importieren getpass

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

Du . etwa [ „SERPAPI_API_KEY“ ] = getpass . getpass ( „Serpapi-API-Schlüssel:“ )

Schritt 3: Bibliotheken importieren

Verwenden Sie die Abhängigkeiten von LangChain, um die erforderlichen Bibliotheken zum Erstellen des Sprachmodells, der Tools und Agenten zu importieren:

aus langchain. Ketten importieren LLMMathChain

aus langchain. lms importieren OpenAI

aus langchain. Dienstprogramme importieren SerpAPIWrapper

aus langchain. Dienstprogramme importieren SQLDatenbank

aus langchain_experimental. sql importieren SQLDatabaseChain

aus langchain. Agenten importieren initialize_agent , Werkzeug

aus langchain. Agenten importieren AgentType

Schritt 4: Datenbank erstellen

Das MRKL nutzt externe Wissensquellen, um Informationen aus Daten zu extrahieren. Dieser Beitrag verwendet SQLite, das hier heruntergeladen werden kann Führung um die Datenbank aufzubauen. Der folgende Befehl bestätigt den Vorgang des Herunterladens von SQLite, indem er die installierte Version anzeigt:

sqlite3

Verwenden Sie die folgenden Befehle in einem Verzeichnis, um die Datenbank über die Eingabeaufforderung zu erstellen:

CD Desktop

CD mydb

sqlite3 Chinook. db

Laden Sie die herunter Datenbank Datei und speichern Sie sie im Verzeichnis, um den folgenden Befehl zum Erstellen der „ .db ' Datei:

. lesen Chinook_Sqlite. sql

WÄHLEN SIE * AUS KÜNSTLERBEGRENZUNG 10 ;

Schritt 5: Datenbank hochladen

Sobald die Datenbank erfolgreich erstellt wurde, laden Sie die Datei im Google Collaboratory hoch:

aus Google. ET AL importieren Dateien

hochgeladen = Dateien. hochladen ( )

Der Benutzer kann auf die hochgeladene Datei im Notizbuch zugreifen, um deren Pfad aus dem Dropdown-Menü zu kopieren:

Schritt 6: Tools konfigurieren

Konfigurieren Sie nach dem Erstellen der Datenbank das Sprachmodell, die Tools und Ketten für die Agenten:

suchen = SerpAPIWrapper ( )
llm = OpenAI ( Temperatur = 0 )
llm_math_chain = LLMMathChain ( llm = llm , ausführlich = WAHR )
db = SQLDatenbank. from_uri ( „sqlite:///../../../../../content/Chinook.db“ )
db_chain = SQLDatabaseChain. from_llm ( llm , db , ausführlich = WAHR )
Werkzeuge = [
Werkzeug (
Name = 'Suchen' ,
Funktion = suchen. laufen ,
Beschreibung = „Fragen Sie die gezielten Eingabeaufforderungen, um Antworten zu aktuellen Angelegenheiten zu erhalten“
) ,
Werkzeug (
Name = 'Taschenrechner' ,
Funktion = llm_math_chain. laufen ,
Beschreibung = „nützlich für die Beantwortung/Lösung mathematischer Probleme“
) ,
Werkzeug (
Name = „FooBar DB“ ,
Funktion = db_chain. laufen ,
Beschreibung = „nützlich für die Beantwortung von Abfragen aus einer Datenbank und Eingabefrage muss den vollständigen Kontext haben“
)
]
  • Definiere das llm Variable mit der OpenAI() Methode, um das Sprachmodell zu erhalten.
  • Der suchen ist das Werkzeug, das das aufruft SerpAPIWrapper() Methode, um auf seine Umgebung zuzugreifen.
  • Der LLMMathChain() Die Methode wird verwendet, um Antworten auf mathematische Probleme zu erhalten.
  • Definiere das db Variable mit dem Pfad der Datei innerhalb der SQLDatabase() Methode.
  • Der SQLDatabaseChain() Mit dieser Methode können Informationen aus der Datenbank abgerufen werden.
  • Definieren Sie Tools wie suchen , Taschenrechner , Und FooBar DB zum Erstellen des Agenten zum Extrahieren von Daten aus verschiedenen Quellen:

Schritt 7: Erstellen und Testen des Agenten

Initialisieren Sie das MRKL-System mit den Tools, lm und Agent, um Antworten auf die vom Benutzer gestellten Fragen zu erhalten:

mrkl = initialize_agent ( Werkzeuge , llm , Agent = AgentType. ZERO_SHOT_REACT_DESCRIPTION , ausführlich = WAHR )

Führen Sie das MRKL-System mit der run()-Methode mit der Frage als Argument aus:

mrkl. laufen ( „Das aktuelle Alter von Leo DiCaprio und seiner Freundin verrät auch den Altersunterschied.“ )

Ausgabe

Der Agent hat die endgültige Antwort mit dem vollständigen Pfad erstellt, den das System zum Extrahieren der endgültigen Antwort verwendet:

Schritt 8: Replizieren Sie das MRKL-System

Jetzt nutzen Sie einfach die mrkl Schlüsselwort mit der run()-Methode, um Antworten aus verschiedenen Quellen wie Datenbanken zu erhalten:

mrkl. laufen ( „Wie lautet der vollständige Name des Künstlers, dessen Album „The Storm Before the Calm“ kürzlich veröffentlicht wurde, und sind sie in der FooBar-Datenbank und welche ihrer Alben sind in der Datenbank enthalten?“ )

Der Agent hat die Frage automatisch in eine SQL-Abfrage umgewandelt, um die Antwort aus der Datenbank abzurufen. Der Agent sucht nach der richtigen Quelle, um die Antwort zu erhalten, und stellt dann die Abfrage zusammen, um die Informationen zu extrahieren:

Schritt 9: ChatModel verwenden

Der Benutzer kann das Sprachmodell einfach ändern, indem er die Methode ChatOpenAI() verwendet, um daraus ein ChatModel zu machen und das MRKL-System damit zu verwenden:

aus langchain. chat_models importieren ChatOpenAI

suchen = SerpAPIWrapper ( )
llm = ChatOpenAI ( Temperatur = 0 )
llm1 = OpenAI ( Temperatur = 0 )
llm_math_chain = LLMMathChain ( llm = llm1 , ausführlich = WAHR )
db = SQLDatenbank. from_uri ( „sqlite:///../../../../../content/Chinook.db“ )
db_chain = SQLDatabaseChain. from_llm ( llm1 , db , ausführlich = WAHR )
Werkzeuge = [
Werkzeug (
Name = 'Suchen' ,
Funktion = suchen. laufen ,
Beschreibung = „Fragen Sie die gezielten Eingabeaufforderungen, um Antworten zu aktuellen Angelegenheiten zu erhalten“
) ,
Werkzeug (
Name = 'Taschenrechner' ,
Funktion = llm_math_chain. laufen ,
Beschreibung = „nützlich für die Beantwortung/Lösung mathematischer Probleme“
) ,
Werkzeug (
Name = „FooBar DB“ ,
Funktion = db_chain. laufen ,
Beschreibung = „nützlich für die Beantwortung von Abfragen aus einer Datenbank und Eingabefrage muss den vollständigen Kontext haben“
)
]

Schritt 10: Testen Sie den MRKL-Agenten

Erstellen Sie anschließend den Agenten und initialisieren Sie ihn in der Variablen mrkl mit der Methode initialize_agent(). Fügen Sie den Parameter der Methode hinzu, um die Komponenten wie Tools, LLM, Agent und Verbose zu integrieren, um den vollständigen Prozess in der Ausgabe zu erhalten:

mrkl = initialize_agent ( Werkzeuge , llm , Agent = AgentType. CHAT_ZERO_SHOT_REACT_DESCRIPTION , ausführlich = WAHR )

Führen Sie die Frage aus, indem Sie das mrkl-System ausführen, wie im folgenden Screenshot gezeigt:

mrkl. laufen ( „Wer ist Leo DiCaprios Freundin? Wie alt sind sie aktuell?“ )

Ausgabe

Das folgende Snippet zeigt die vom Agenten extrahierte endgültige Antwort:

Schritt 11: Replizieren Sie das MRKL-System

Verwenden Sie das MRKL-System, indem Sie die run()-Methode mit der Frage in der natürlichen Sprache aufrufen, um Informationen aus der Datenbank zu extrahieren:

mrkl. laufen ( „Wie lautet der vollständige Name des Künstlers, dessen Album „The Storm Before the Calm“ kürzlich veröffentlicht wurde, und sind sie in der FooBar-Datenbank und welche ihrer Alben sind in der Datenbank enthalten?“ )

Ausgabe

Der Agent hat die aus der Datenbank extrahierte endgültige Antwort angezeigt, wie im folgenden Screenshot dargestellt:

Das ist alles über den Prozess der Replikation des MRKL-Systems mithilfe von Agenten in LangChain:

Abschluss

Um das MRKL-System mithilfe von Agenten in LangChain zu replizieren, installieren Sie die Module, um die Abhängigkeiten für den Import der Bibliotheken zu erhalten. Die Bibliotheken sind erforderlich, um das Sprachmodell oder Chat-Modell zu erstellen, um mithilfe der Tools Antworten aus mehreren Quellen zu erhalten. Die Agenten sind so konfiguriert, dass sie die Tools zum Extrahieren von Ausgaben aus verschiedenen Quellen wie dem Internet, Datenbanken usw. verwenden. In diesem Leitfaden wurde der Prozess der Replikation des MRKL-Systems mithilfe von Agenten in LangChain näher erläutert.