Brzi pregled
Ovaj će post pokazati sljedeće:
Kako replicirati MRKL sustav pomoću agenata u LangChainu
- Korak 1: Instalacija Frameworks
- Korak 2: Postavljanje OpenAI okruženja
- Korak 3: Uvoz biblioteka
- Korak 4: Izrada baze podataka
- Korak 5: Učitavanje baze podataka
- Korak 6: Konfiguriranje alata
- Korak 7: Izrada i testiranje agenta
- Korak 8: Replicirajte MRKL sustav
- Korak 9: Korištenje ChatModela
- Korak 10: Testirajte MRKL agent
- Korak 11: Replicirajte MRKL sustav
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 vasuvoz 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 LLMMathChainiz 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šinaCD 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. sqlODABIR * 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 datotekeuč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 ChatOpenAItraž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.