Kurzer Überblick
In diesem Beitrag wird Folgendes demonstriert:
So replizieren Sie das MRKL-System mithilfe von Agenten in LangChain
- Schritt 1: Frameworks installieren
- Schritt 2: OpenAI-Umgebung einrichten
- Schritt 3: Bibliotheken importieren
- Schritt 4: Datenbank erstellen
- Schritt 5: Datenbank hochladen
- Schritt 6: Tools konfigurieren
- Schritt 7: Erstellen und Testen des Agenten
- Schritt 8: Replizieren Sie das MRKL-System
- Schritt 9: ChatModel verwenden
- Schritt 10: Testen Sie den MRKL-Agenten
- Schritt 11: Replizieren Sie das MRKL-System
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 Duimportieren 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 LLMMathChainaus 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 DesktopCD 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. sqlWÄ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 Dateienhochgeladen = 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 ChatOpenAIsuchen = 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.