Ako replikovať systém MRKL pomocou agentov v LangChain?

Ako Replikovat System Mrkl Pomocou Agentov V Langchain



Systém Modular Reasoning, Knowledge, and Language (MRKL) je architektúra, ktorá dokáže extrahovať odpovede s dôvodmi jej overenia. Integruje jazykové modely, diskrétne uvažovanie a externé zdroje vedomostí. Jazykové modely vytvárajú text v ľudských jazykoch podľa požiadaviek používateľa. MRKL (vyslov: zázrak) pridáva zdôvodnenie pri vytváraní odpovedí, aby bola odpoveď presná a platná.

Rýchly prehľad

Tento príspevok bude demonštrovať nasledovné:







Ako replikovať systém MRKL pomocou agentov v LangChain



Záver



Ako replikovať systém MRKL pomocou agentov v LangChain?

LangChain umožňuje používateľovi zostavovať agentov, ktorých možno použiť na vykonávanie viacerých úloh pre jazykové modely alebo chatboty. Agenti ukladajú svoju prácu so všetkými krokmi do pamäte pripojenej k jazykovému modelu. Pomocou týchto šablón môže agent replikovať fungovanie akéhokoľvek systému, ako je MRKL, aby získal optimalizované výsledky bez toho, aby ich musel znova zostavovať.





Ak sa chcete naučiť proces replikácie systému MRKL pomocou agentov v LangChain, jednoducho prejdite uvedenými krokmi:

Krok 1: Inštalácia rámcov

Najprv nainštalujte experimentálne moduly LangChain pomocou pip s príkazom langchain-experimental:



pip install langchain-experimental

Nainštalujte modul OpenAI na vytvorenie jazykového modelu pre systém MRKL:

pip install openai

Krok 2: Nastavenie prostredia OpenAI

Importujte knižnice operačného systému a getpass, aby ste získali prístup k prevádzke, aby ste používateľa vyzvali, aby poskytol kľúče API pre účty OpenAI a SerpAPi:

importovať vy

importovať getpass

vy . približne [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'OpenAI API Key:' )

vy . približne [ 'SERPAPI_API_KEY' ] = getpass . getpass ( 'Serpapi API Key:' )

Krok 3: Importovanie knižníc

Použite závislosti z LangChain na import požadovaných knižníc na zostavenie jazykového modelu, nástrojov a agentov:

od langchain. reťaze importovať LLMMathChain

od langchain. llms importovať OpenAI

od langchain. komunálne služby importovať SerpAPIWrapper

od langchain. komunálne služby importovať SQLDatabase

od langchain_experimental. sql importovať SQLDatabaseChain

od langchain. agentov importovať initialize_agent , Nástroj

od langchain. agentov importovať Typ agenta

Krok 4: Vytvorenie databázy

MRKL využíva externé zdroje znalostí na extrakciu informácií z údajov. Tento príspevok používa SQLite, ktorý je možné stiahnuť pomocou tohto sprievodca na vybudovanie databázy. Nasledujúci príkaz potvrdzuje proces sťahovania SQLite zobrazením jeho nainštalovanej verzie:

sqlite3

Na vytvorenie databázy pomocou príkazového riadka použite nasledujúce príkazy hlavičky v adresári:

cd Desktop

cd mydb

sqlite3 Chinook. db

Stiahnite si Databáza súbor a uložte ho do adresára, aby ste použili nasledujúci príkaz na vytvorenie súboru „ .db súbor:

. čítať Chinook_Sqlite. sql

VYBERTE * Z LIMITU interpretov 10 ;

Krok 5: Nahranie databázy

Po úspešnom vytvorení databázy nahrajte súbor do služby Google collaboratory:

od google. ET AL importovať súbory

nahrané = súbory. nahrať ( )

Používateľ môže získať prístup k nahranému súboru v notebooku a skopírovať jeho cestu z jeho rozbaľovacej ponuky:

Krok 6: Konfigurácia nástrojov

Po vytvorení databázy nakonfigurujte jazykový model, nástroje a reťazce pre agentov:

Vyhľadávanie = SerpAPIWrapper ( )
llm = OpenAI ( teplota = 0 )
llm_math_chain = LLMMathChain ( llm = llm , podrobný = Pravda )
db = SQLDatabase. from_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_chain = SQLDatabaseChain. from_llm ( llm , db , podrobný = Pravda )
nástrojov = [
Nástroj (
názov = 'Vyhľadávanie' ,
func = Vyhľadávanie. behať ,
popis = „Opýtajte sa cielených výziev, aby ste dostali odpovede na nedávne záležitosti“
) ,
Nástroj (
názov = 'Kalkulačka' ,
func = llm_math_chain. behať ,
popis = 'užitočné na zodpovedanie/riešenie matematických problémov'
) ,
Nástroj (
názov = 'FooBar DB' ,
func = db_chain. behať ,
popis = 'užitočné na zodpovedanie dotazov z databázy a vstupná otázka musí mať úplný kontext'
)
]
  • Definujte llm premenná pomocou OpenAI() spôsob získania jazykového modelu.
  • The Vyhľadávanie je nástroj, ktorý volá SerpAPIWrapper() spôsob prístupu k svojmu prostrediu.
  • The LLMMathChain() metóda sa používa na získanie odpovedí súvisiacich s matematickými problémami.
  • Definujte db premenná s cestou k súboru vo vnútri SQLDatabase() metóda.
  • The SQLDatabaseChain() na získanie informácií z databázy.
  • Definujte nástroje ako Vyhľadávanie , kalkulačka , a FooBar DB na vytvorenie agenta na extrahovanie údajov z rôznych zdrojov:

Krok 7: Vytvorenie a testovanie agenta

Inicializujte systém MRKL pomocou nástrojov, llm a agenta, aby ste získali odpovede na otázky položené používateľom:

mrkl = initialize_agent ( nástrojov , llm , agent = Typ agenta. ZERO_SHOT_REACT_DESCRIPTION , podrobný = Pravda )

Vykonajte systém MRKL pomocou metódy run() s otázkou ako argumentom:

mrkl. behať ( „Aký je aktuálny vek Lea DiCapria a jeho priateľky, tiež hovoria o svojom vekovom rozdiele“ )

Výkon

Agent vytvoril konečnú odpoveď s úplnou cestou, ktorú systém používa na extrahovanie konečnej odpovede:

Krok 8: Replikujte systém MRKL

Teraz jednoducho použite mrkl kľúčové slovo pomocou metódy run() na získanie odpovedí z rôznych zdrojov, ako sú databázy:

mrkl. behať ( 'Aké je celé meno interpreta, ktorého album s názvom 'The Storm Before the Calm' vyšiel nedávno a sú v databáze FooBar a tiež, ktoré z ich albumov sú v databáze?' )

Agent automaticky transformoval otázku do SQL dotazu, aby získal odpoveď z databázy. Agent hľadá správny zdroj, aby získal odpoveď, a potom zostaví dotaz na extrahovanie informácií:

Krok 9: Použitie ChatModel

Používateľ môže jednoducho zmeniť jazykový model pomocou metódy ChatOpenAI() a urobiť z neho ChatModel a použiť s ním systém MRKL:

od langchain. chat_models importovať ChatOpenAI

Vyhľadávanie = SerpAPIWrapper ( )
llm = ChatOpenAI ( teplota = 0 )
llm1 = OpenAI ( teplota = 0 )
llm_math_chain = LLMMathChain ( llm = llm1 , podrobný = Pravda )
db = SQLDatabase. from_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_chain = SQLDatabaseChain. from_llm ( llm1 , db , podrobný = Pravda )
nástrojov = [
Nástroj (
názov = 'Vyhľadávanie' ,
func = Vyhľadávanie. behať ,
popis = „Opýtajte sa cielených výziev, aby ste dostali odpovede na nedávne záležitosti“
) ,
Nástroj (
názov = 'Kalkulačka' ,
func = llm_math_chain. behať ,
popis = 'užitočné na zodpovedanie/riešenie matematických problémov'
) ,
Nástroj (
názov = 'FooBar DB' ,
func = db_chain. behať ,
popis = 'užitočné na zodpovedanie dotazov z databázy a vstupná otázka musí mať úplný kontext'
)
]

Krok 10: Otestujte agenta MRKL

Potom zostavte agenta a inicializujte ho v premennej mrkl pomocou metódy initialize_agent(). Pridajte parameter metódy na integráciu komponentov, ako sú nástroje, llm, agent a verbose, aby ste získali celý proces vo výstupe:

mrkl = initialize_agent ( nástrojov , llm , agent = Typ agenta. CHAT_ZERO_SHOT_REACT_DESCRIPTION , podrobný = Pravda )

Vykonajte otázku spustením systému mrkl, ako je zobrazené na nasledujúcej snímke obrazovky:

mrkl. behať ( 'Kto je priateľka Lea DiCapria? Aký je ich súčasný vek' )

Výkon

Nasledujúci úryvok zobrazuje konečnú odpoveď extrahovanú agentom:

Krok 11: Replikujte systém MRKL

Použite systém MRKL zavolaním metódy run() s otázkou v prirodzenom jazyku na extrahovanie informácií z databázy:

mrkl. behať ( 'Aké je celé meno interpreta, ktorého album s názvom 'The Storm Before the Calm' vyšiel nedávno a sú v databáze FooBar a tiež, ktoré z ich albumov sú v databáze?' )

Výkon

Agent zobrazil konečnú odpoveď extrahovanú z databázy, ako je zobrazené na nasledujúcej snímke obrazovky:

To je všetko o procese replikácie systému MRKL pomocou agentov v LangChain:

Záver

Ak chcete replikovať systém MRKL pomocou agentov v LangChain, nainštalujte moduly, aby ste získali závislosti na importovanie knižníc. Od knižníc sa vyžaduje, aby vytvorili jazykový model alebo model chatu, aby získali odpovede z viacerých zdrojov pomocou nástrojov. Agenti sú nakonfigurovaní tak, aby používali nástroje na extrahovanie výstupov z rôznych zdrojov, ako je internet, databázy atď. Táto príručka rozpracovala proces replikácie systému MRKL pomocou agentov v LangChain.