Jak replikovat systém MRKL pomocí agentů v LangChain?

Jak Replikovat System Mrkl Pomoci Agentu V Langchain



Systém Modular Reasoning, Knowledge, and Language (MRKL) je architektura, která dokáže extrahovat odpovědi s důvody pro její ověření. Integruje jazykové modely, diskrétní uvažování a externí zdroje znalostí. Jazykové modely vytvářejí text v lidských jazycích podle dotazů uživatele. MRKL (vyslov: zázrak) přidává uvažování při vytváření odpovědí, aby byla odpověď přesná a platná.

Rychlý přehled

Tento příspěvek bude demonstrovat následující:







Jak replikovat systém MRKL pomocí agentů v LangChain



Závěr



Jak replikovat systém MRKL pomocí agentů v LangChain?

LangChain umožňuje uživateli vytvářet agenty, které lze použít k provádění více úkolů pro jazykové modely nebo chatboty. Agenti ukládají svou práci se všemi kroky do paměti připojené k jazykovému modelu. Pomocí těchto šablon může agent replikovat fungování jakéhokoli systému, jako je MRKL, aby získal optimalizované výsledky, aniž by je musel znovu sestavovat.





Chcete-li se naučit proces replikace systému MRKL pomocí agentů v LangChain, jednoduše projděte uvedené kroky:

Krok 1: Instalace frameworků

Nejprve nainstalujte experimentální moduly LangChain pomocí pip s příkazem langchain-experimental:



pip install langchain-experimental

Nainstalujte modul OpenAI pro vytvoření jazykového modelu pro systém MRKL:

pip install openai

Krok 2: Nastavení prostředí OpenAI

Importujte knihovny operačního systému a getpass, abyste získali přístup k operačnímu systému a vyzvali uživatele k poskytnutí klíčů API pro účty OpenAI a SerpAPi:

import vy

import getpass

vy . přibližně [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'Klíč OpenAI API:' )

vy . přibližně [ 'SERPAPI_API_KEY' ] = getpass . getpass ( 'Serpapi API Key:' )

Krok 3: Import knihoven

Použijte závislosti z LangChain k importu požadovaných knihoven pro vytvoření jazykového modelu, nástrojů a agentů:

z langchain. řetězy import LLMMathChain

z langchain. llms import OpenAI

z langchain. utility import SerpAPIWrapper

z langchain. utility import SQLDatabase

z langchain_experimental. sql import SQLDatabaseChain

z langchain. agenti import inicializovat_agenta , Nástroj

z langchain. agenti import Typ agenta

Krok 4: Vytvoření databáze

MRKL využívá externí zdroje znalostí k extrakci informací z dat. Tento příspěvek používá SQLite, který lze stáhnout pomocí tohoto průvodce k vybudování databáze. Následující příkaz potvrdí proces stahování SQLite zobrazením jeho nainstalované verze:

sqlite3

Pomocí následujících příkazů head v adresáři vytvořte databázi pomocí příkazového řádku:

CD plocha počítače

CD mydb

sqlite3 Chinook. db

Stáhněte si Databáze soubor a uložte jej do adresáře, abyste mohli použít následující příkaz pro vytvoření „ .db 'soubor:

. číst Chinook_Sqlite. sql

VYBRAT * Z LIMITU interpreta 10 ;

Krok 5: Nahrání databáze

Po úspěšném vytvoření databáze nahrajte soubor do služby Google collaboratory:

z Google. ET AL import soubory

nahráno = soubory. nahrát ( )

Uživatel má přístup k nahranému souboru v notebooku a zkopíruje jeho cestu z rozbalovací nabídky:

Krok 6: Konfigurace nástrojů

Po vytvoření databáze nakonfigurujte jazykový model, nástroje a řetězce pro agenty:

Vyhledávání = SerpAPIWrapper ( )
llm = OpenAI ( teplota = 0 )
llm_math_chain = LLMMathChain ( llm = llm , podrobný = Skutečný )
db = SQLDatabase. from_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_chain = SQLDatabaseChain. from_llm ( llm , db , podrobný = Skutečný )
nástroje = [
Nástroj (
název = 'Vyhledávání' ,
func = Vyhledávání. běh ,
popis = 'Zeptejte se cílených výzev, abyste získali odpovědi na nedávné záležitosti'
) ,
Nástroj (
název = 'Kalkulačka' ,
func = llm_math_chain. běh ,
popis = 'užitečné pro zodpovězení/řešení matematických problémů'
) ,
Nástroj (
název = 'FooBar DB' ,
func = db_chain. běh ,
popis = 'užitečné pro zodpovězení dotazů z databáze a vstupní otázka musí mít úplný kontext'
)
]
  • Definujte llm proměnná pomocí OpenAI() způsob, jak získat jazykový model.
  • The Vyhledávání je nástroj, který volá SerpAPIWrapper() způsob přístupu k jeho prostředí.
  • The LLMMathChain() metoda se používá k získání odpovědí souvisejících s matematickými problémy.
  • Definujte db proměnná s cestou k souboru uvnitř SQLDatabase() metoda.
  • The SQLDatabaseChain() metodu lze použít k získání informací z databáze.
  • Definujte nástroje jako Vyhledávání , kalkulačka , a FooBar DB pro vytvoření agenta pro extrahování dat z různých zdrojů:

Krok 7: Sestavení a testování agenta

Inicializujte systém MRKL pomocí nástrojů, llm a agenta, abyste získali odpovědi na otázky položené uživatelem:

mrkl = inicializovat_agenta ( nástroje , llm , činidlo = Typ agenta. ZERO_SHOT_REACT_DESCRIPTION , podrobný = Skutečný )

Spusťte systém MRKL pomocí metody run() s otázkou jako argumentem:

mrkl. běh ( „Jaký je současný věk Lea DiCapria a jeho přítelkyně, také sdělují svůj věkový rozdíl“ )

Výstup

Agent vytvořil konečnou odpověď s úplnou cestou, kterou systém používá k extrahování konečné odpovědi:

Krok 8: Replikujte systém MRKL

Nyní jednoduše použijte mrkl klíčové slovo s metodou run() pro získání odpovědí z různých zdrojů, jako jsou databáze:

mrkl. běh ( 'Jaké je celé jméno umělce, jehož album s názvem 'The Storm Before the Calm' vyšlo nedávno a jsou v databázi FooBar a také která z jejich alb jsou v databázi?' )

Agent automaticky transformoval otázku do SQL dotazu, aby načetl odpověď z databáze. Agent hledá správný zdroj, aby získal odpověď, a poté sestaví dotaz, aby extrahoval informace:

Krok 9: Použití ChatModel

Uživatel může jednoduše změnit jazykový model pomocí metody ChatOpenAI() a vytvořit z něj ChatModel a používat s ním systém MRKL:

z langchain. chat_models import ChatOpenAI

Vyhledávání = SerpAPIWrapper ( )
llm = ChatOpenAI ( teplota = 0 )
llm1 = OpenAI ( teplota = 0 )
llm_math_chain = LLMMathChain ( llm = llm1 , podrobný = Skutečný )
db = SQLDatabase. from_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_chain = SQLDatabaseChain. from_llm ( llm1 , db , podrobný = Skutečný )
nástroje = [
Nástroj (
název = 'Vyhledávání' ,
func = Vyhledávání. běh ,
popis = 'Zeptejte se cílených výzev, abyste získali odpovědi na nedávné záležitosti'
) ,
Nástroj (
název = 'Kalkulačka' ,
func = llm_math_chain. běh ,
popis = 'užitečné pro zodpovězení/řešení matematických problémů'
) ,
Nástroj (
název = 'FooBar DB' ,
func = db_chain. běh ,
popis = 'užitečné pro zodpovězení dotazů z databáze a vstupní otázka musí mít úplný kontext'
)
]

Krok 10: Otestujte agenta MRKL

Poté sestavte agenta a inicializujte jej v proměnné mrkl pomocí metody initialize_agent(). Přidejte parametr metody pro integraci komponent, jako jsou nástroje, llm, agent a verbose, abyste získali celý proces ve výstupu:

mrkl = inicializovat_agenta ( nástroje , llm , činidlo = Typ agenta. CHAT_ZERO_SHOT_REACT_DESCRIPTION , podrobný = Skutečný )

Spusťte otázku spuštěním systému mrkl, jak je zobrazeno na následujícím snímku obrazovky:

mrkl. běh ( 'Kdo je přítelkyně Lea DiCapria? Jaký je jejich současný věk' )

Výstup

Následující úryvek zobrazuje konečnou odpověď extrahovanou agentem:

Krok 11: Replikujte systém MRKL

Použijte systém MRKL voláním metody run() s otázkou v přirozeném jazyce k extrahování informací z databáze:

mrkl. běh ( 'Jaké je celé jméno umělce, jehož album s názvem 'The Storm Before the Calm' vyšlo nedávno a jsou v databázi FooBar a také která z jejich alb jsou v databázi?' )

Výstup

Agent zobrazil konečnou odpověď extrahovanou z databáze, jak je zobrazeno na následujícím snímku obrazovky:

To je vše o procesu replikace systému MRKL pomocí agentů v LangChain:

Závěr

Chcete-li replikovat systém MRKL pomocí agentů v LangChain, nainstalujte moduly, abyste získali závislosti pro import knihoven. Knihovny jsou povinny sestavit jazykový model nebo model chatu, aby pomocí nástrojů získaly odpovědi z více zdrojů. Agenti jsou nakonfigurováni tak, aby používali nástroje pro extrahování výstupů z různých zdrojů, jako je internet, databáze atd. Tato příručka rozvedla proces replikace systému MRKL pomocí agentů v LangChain.