Kako replicirati MRKL sustav pomoću agenata u LangChainu?

Kako Replicirati Mrkl Sustav Pomocu Agenata U Langchainu



Modularni sustav rasuđivanja, znanja i jezika (MRKL) je arhitektura koja može izvući odgovore s razlozima za njihovu provjeru. Integrira jezične modele, diskretno razmišljanje i vanjske izvore znanja. Jezični modeli proizvode tekst na ljudskim jezicima prema upitima koje postavlja korisnik. MRKL (izgovara se: čudo) dodaje obrazloženje dok daje odgovore kako bi odgovor bio točan i valjan.

Brzi pregled

Ovaj će post pokazati sljedeće:







Kako replicirati MRKL sustav pomoću agenata u LangChainu



Zaključak



Kako replicirati MRKL sustav pomoću agenata u LangChainu?

LangChain omogućuje korisniku izradu agenata koji se mogu koristiti za obavljanje više zadataka za jezične modele ili chatbotove. Agenti pohranjuju svoj rad sa svim koracima u memoriju pripojenu jezičnom modelu. Koristeći ove predloške, agent može replicirati rad bilo kojeg sustava kao što je MRKL kako bi dobio optimizirane rezultate bez potrebe da ih ponovno gradi.





Da biste naučili proces repliciranja MRKL sustava pomoću agenata u LangChainu, jednostavno prođite kroz navedene korake:

Korak 1: Instalacija Frameworks

Prije svega, instalirajte eksperimentalne module LangChain koristeći pip s naredbom langchain-experimental:



pip instalirati langchain-eksperimentalno

Instalirajte OpenAI modul za izgradnju jezičnog modela za MRKL sustav:

pip instaliraj openai

Korak 2: Postavljanje OpenAI okruženja

Uvezite OS i getpass biblioteke za pristup operaciji za traženje od korisnika da pruži API ključeve za OpenAI i SerpAPi račune:

uvoz vas

uvoz getpass

vas . približno [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'OpenAI API ključ:' )

vas . približno [ 'SERPAPI_API_KEY' ] = getpass . getpass ( 'Serpapi API ključ:' )

Korak 3: Uvoz biblioteka

Upotrijebite ovisnosti iz LangChaina za uvoz potrebnih biblioteka za izgradnju jezičnog modela, alata i agenata:

iz langchain. lanci uvoz LLMMathChain

iz langchain. llms uvoz OpenAI

iz langchain. komunalije uvoz SerpAPIWrapper

iz langchain. komunalije uvoz SQLDatabase

iz langchain_eksperimentalno. sql uvoz SQLDatabaseChain

iz langchain. agenti uvoz inicijalizirati_agent , Alat

iz langchain. agenti uvoz AgentType

Korak 4: Izrada baze podataka

MRKL koristi vanjske izvore znanja za izdvajanje informacija iz podataka. Ovaj post koristi SQLite koji se može preuzeti pomoću ovoga vodič za izgradnju baze podataka. Sljedeća naredba potvrđuje proces preuzimanja SQLitea prikazivanjem njegove instalirane verzije:

sqlite3

Upotrijebite sljedeće naredbe head unutar direktorija za stvaranje baze podataka pomoću naredbenog retka:

CD Radna površina

CD mydb

sqlite3 Chinook. db

Preuzmite Baza podataka datoteku i pohranite je u direktorij za korištenje sljedeće naredbe za stvaranje ' .db ' datoteka:

. čitati Chinook_Sqlite. sql

ODABIR * OD OGRANIČENJA IZVOĐAČA 10 ;

Korak 5: Učitavanje baze podataka

Nakon što je baza podataka uspješno izrađena, prenesite datoteku u Googleovu suradnju:

iz google. ET AL uvoz datoteke

učitano = datoteke. Učitaj ( )

Korisnik može pristupiti učitanoj datoteci na bilježnici kako bi kopirao njen put iz padajućeg izbornika:

Korak 6: Konfiguriranje alata

Nakon izgradnje baze podataka, konfigurirajte jezični model, alate i lance za agente:

traži = SerpAPIWrapper ( )
llm = OpenAI ( temperatura = 0 )
llm_matematički_lanac = LLMMathChain ( llm = llm , opširno = Pravi )
db = SQLDatabase. from_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_lanac = SQLDatabaseChain. od_llm ( llm , db , opširno = Pravi )
alata = [
Alat (
Ime = 'Traži' ,
funk = traži. trčanje ,
opis = 'Pitajte ciljane upite da biste dobili odgovore o nedavnim aferama'
) ,
Alat (
Ime = 'Kalkulator' ,
funk = llm_matematički_lanac. trčanje ,
opis = 'korisno za odgovaranje/rješavanje matematičkih problema'
) ,
Alat (
Ime = 'FooBar DB' ,
funk = db_lanac. trčanje ,
opis = 'korisno za odgovaranje na upite iz baze podataka, a ulazno pitanje mora imati potpuni kontekst'
)
]
  • Definirajte llm varijabla pomoću OpenAI() metoda za dobivanje jezičnog modela.
  • The traži je alat koji poziva SerpAPIWrapper() način pristupa svom okruženju.
  • The LLMMathChain() Metoda se koristi za dobivanje odgovora vezanih uz matematičke probleme.
  • Definirajte db varijabla s putanjom datoteke unutar SQLDatabase() metoda.
  • The SQLDatabaseChain() metoda se može koristiti za dobivanje informacija iz baze podataka.
  • Definirajte alate poput traži , kalkulator , i FooBar DB za izradu agenta za izvlačenje podataka iz različitih izvora:

Korak 7: Izrada i testiranje agenta

Inicijalizirajte MRKL sustav koristeći alate, llm i agenta kako biste dobili odgovore na pitanja korisnika:

mrkl = inicijalizirati_agent ( alata , llm , agent = AgentType. ZERO_SHOT_REACT_DESCRIPTION , opširno = Pravi )

Izvršite MRKL sustav pomoću metode run() s pitanjem kao argumentom:

mrkl. trčanje ( 'Koje su trenutne godine Lea DiCaprija i njegove djevojke, govori i njihova razlika u godinama' )

Izlaz

Agent je proizveo konačni odgovor s potpunom putanjom koju sustav koristi za izdvajanje konačnog odgovora:

Korak 8: Replicirajte MRKL sustav

Sada jednostavno upotrijebite mrkl ključna riječ s metodom run() za dobivanje odgovora iz različitih izvora poput baza podataka:

mrkl. trčanje ( 'Koje je puno ime izvođača čiji je album pod nazivom 'The Storm Before the Calm' nedavno objavljen i jesu li oni u FooBar bazi podataka i koji su njihovi albumi u bazi podataka' )

Agent je automatski transformirao pitanje u SQL upit za dohvaćanje odgovora iz baze podataka. Agent traži točan izvor kako bi dobio odgovor, a zatim sastavlja upit kako bi izvukao informacije:

Korak 9: Korištenje ChatModela

Korisnik može jednostavno promijeniti jezični model korištenjem metode ChatOpenAI() kako bi ga učinio ChatModelom i s njim koristio MRKL sustav:

iz langchain. chat_modeli uvoz ChatOpenAI

traži = SerpAPIWrapper ( )
llm = ChatOpenAI ( temperatura = 0 )
llm1 = OpenAI ( temperatura = 0 )
llm_matematički_lanac = LLMMathChain ( llm = llm1 , opširno = Pravi )
db = SQLDatabase. from_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_lanac = SQLDatabaseChain. od_llm ( llm1 , db , opširno = Pravi )
alata = [
Alat (
Ime = 'Traži' ,
funk = traži. trčanje ,
opis = 'Pitajte ciljane upite da biste dobili odgovore o nedavnim aferama'
) ,
Alat (
Ime = 'Kalkulator' ,
funk = llm_matematički_lanac. trčanje ,
opis = 'korisno za odgovaranje/rješavanje matematičkih problema'
) ,
Alat (
Ime = 'FooBar DB' ,
funk = db_lanac. trčanje ,
opis = 'korisno za odgovaranje na upite iz baze podataka, a ulazno pitanje mora imati potpuni kontekst'
)
]

Korak 10: Testirajte MRKL agent

Nakon toga izgradite agenta i inicijalizirajte ga u varijabli mrkl pomoću metode initialize_agent(). Dodajte parametar metode za integraciju komponenti kao što su alati, llm, agent i verbose kako biste dobili potpuni proces u izlazu:

mrkl = inicijalizirati_agent ( alata , llm , agent = AgentType. CHAT_ZERO_SHOT_REACT_DESCRIPTION , opširno = Pravi )

Izvršite pitanje pokretanjem mrkl sustava kao što je prikazano na sljedećoj snimci zaslona:

mrkl. trčanje ( 'Tko je djevojka Lea DiCaprija? Koliko trenutno imaju godina' )

Izlaz

Sljedeći isječak prikazuje konačni odgovor koji je izdvojio agent:

Korak 11: Replicirajte MRKL sustav

Koristite MRKL sustav pozivanjem metode run() s pitanjem na prirodnom jeziku za izdvajanje informacija iz baze podataka:

mrkl. trčanje ( 'Koje je puno ime izvođača čiji je album pod nazivom 'The Storm Before the Calm' nedavno objavljen i jesu li oni u FooBar bazi podataka i koji su njihovi albumi u bazi podataka' )

Izlaz

Agent je prikazao konačni odgovor izvađen iz baze podataka kao što je prikazano na sljedećoj snimci zaslona:

To je sve o procesu repliciranja MRKL sustava pomoću agenata u LangChainu:

Zaključak

Za repliciranje MRKL sustava pomoću agenata u LangChainu, instalirajte module da dobijete ovisnosti za uvoz biblioteka. Knjižnice moraju izraditi jezični model ili model chata kako bi dobili odgovore iz više izvora pomoću alata. Agenti su konfigurirani za korištenje alata za izdvajanje izlaza iz različitih izvora poput interneta, baza podataka itd. Ovaj vodič razradio je proces repliciranja MRKL sustava pomoću agenata u LangChainu.