Hitri oris
Ta objava bo pokazala naslednje:
Kako posnemati sistem MRKL z uporabo agentov v LangChainu
- 1. korak: Namestitev ogrodij
- 2. korak: Nastavitev okolja OpenAI
- 3. korak: Uvoz knjižnic
- 4. korak: Gradnja baze podatkov
- 5. korak: Nalaganje baze podatkov
- 6. korak: Konfiguracija orodij
- 7. korak: Izgradnja in testiranje agenta
- 8. korak: Posnemite sistem MRKL
- 9. korak: Uporaba ChatModel
- 10. korak: preizkusite agenta MRKL
- 11. korak: Podvojite sistem MRKL
Kako posnemati sistem MRKL z uporabo agentov v LangChainu?
LangChain uporabniku omogoča izdelavo agentov, ki jih je mogoče uporabiti za izvajanje več nalog za jezikovne modele ali chatbote. Agenti shranjujejo svoje delo z vsemi koraki v pomnilniku, ki je povezan z jezikovnim modelom. Z uporabo teh predlog lahko posrednik ponovi delovanje katerega koli sistema, kot je MRKL, da dobi optimizirane rezultate, ne da bi jih moral znova graditi.
Če se želite naučiti postopka podvajanja sistema MRKL z uporabo agentov v LangChainu, preprosto pojdite skozi navedene korake:
1. korak: Namestitev ogrodij
Najprej namestite eksperimentalne module LangChain z uporabo pipa z ukazom langchain-experimental:
pip namestite langchain-experimental
Namestite modul OpenAI za izdelavo jezikovnega modela za sistem MRKL:
pip namestite openai
2. korak: Nastavitev okolja OpenAI
Uvozite knjižnici os in getpass za dostop do operacij za poziv uporabniku, da zagotovi ključe API za računa OpenAI in SerpAPi:
uvoz tiuvoz getpass
ti . približno [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'Ključ API OpenAI:' )
ti . približno [ 'SERPAPI_API_KEY' ] = getpass . getpass ( 'Ključ API Serpapi:' )
3. korak: Uvoz knjižnic
Uporabite odvisnosti iz LangChaina za uvoz potrebnih knjižnic za gradnjo jezikovnega modela, orodij in agentov:
od Langchain. verige uvoz LLMMathChainod Langchain. llms uvoz OpenAI
od Langchain. pripomočki uvoz SerpAPIWrapper
od Langchain. pripomočki uvoz SQLDatabase
od langchain_experimental. sql uvoz SQLDatabaseChain
od Langchain. zastopniki uvoz inicializiraj_agent , Orodje
od Langchain. zastopniki uvoz AgentType
4. korak: Gradnja baze podatkov
MRKL uporablja zunanje vire znanja za pridobivanje informacij iz podatkov. Ta objava uporablja SQLite, ki ga lahko prenesete s tem vodnik zgraditi bazo podatkov. Naslednji ukaz potrdi postopek prenosa SQLite s prikazom njegove nameščene različice:
sqlite3
Uporabite naslednje ukaze head znotraj imenika, da ustvarite bazo podatkov z uporabo ukaznega poziva:
cd Namizjecd mydb
sqlite3 Chinook. db
Prenesite Baza podatkov datoteko in jo shranite v imenik, da uporabite naslednji ukaz za ustvarjanje » .db ' mapa:
. prebrati Chinook_Sqlite. sqlIZBERI * IZ OMEJITVE IZVAJALCEV 10 ;
5. korak: Nalaganje baze podatkov
Ko je zbirka podatkov uspešno ustvarjena, naložite datoteko v Googlovo sodelovanje:
od google. ET AL uvoz datotekenaloženo = datoteke. nalaganje ( )
Uporabnik lahko dostopa do naložene datoteke v prenosnem računalniku in kopira njeno pot iz spustnega menija:
6. korak: Konfiguracija orodij
Po izgradnji baze podatkov konfigurirajte jezikovni model, orodja in verige za agente:
Iskanje = SerpAPIWrapper ( )llm = OpenAI ( temperaturo = 0 )
llm_math_chain = LLMMathChain ( llm = llm , verbose = Prav )
db = SQLDatabase. from_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_chain = SQLDatabaseChain. from_llm ( llm , db , verbose = Prav )
orodja = [
Orodje (
ime = 'Iskanje' ,
funk = Iskanje. teči ,
opis = 'Vprašajte ciljne pozive, da dobite odgovore o nedavnih aferah'
) ,
Orodje (
ime = 'Kalkulator' ,
funk = llm_math_chain. teči ,
opis = 'uporabno za odgovarjanje/reševanje matematičnih problemov'
) ,
Orodje (
ime = 'FooBar DB' ,
funk = db_chain. teči ,
opis = 'uporabno za odgovarjanje na poizvedbe iz baze podatkov in vhodno vprašanje mora imeti celoten kontekst'
)
]
- Določite llm spremenljivka z uporabo OpenAI() metoda za pridobitev jezikovnega modela.
- The Iskanje je orodje, ki kliče SerpAPIWrapper() način za dostop do svojega okolja.
- The LLMMathChain() Metoda se uporablja za pridobivanje odgovorov, povezanih z matematičnimi problemi.
- Določite db spremenljivka s potjo datoteke znotraj SQLDatabase() metoda.
- The SQLDatabaseChain() metodo lahko uporabite za pridobivanje informacij iz baze podatkov.
- Določite orodja, kot so Iskanje , kalkulator , in FooBar DB za izdelavo agenta za pridobivanje podatkov iz različnih virov:
7. korak: Izgradnja in testiranje agenta
Inicializirajte sistem MRKL z orodji, llm in agentom, da dobite odgovore na vprašanja, ki jih postavlja uporabnik:
mrkl = inicializiraj_agent ( orodja , llm , agent = AgentType. ZERO_SHOT_REACT_DESCRIPTION , verbose = Prav )Izvedite sistem MRKL z uporabo metode run() z vprašanjem kot argumentom:
mrkl. teči ( 'Kakšna je trenutna starost Lea DiCapria in njegovega dekleta, pove tudi njuna starostna razlika' )Izhod
Agent je ustvaril končni odgovor s celotno potjo, ki jo je sistem uporabil za ekstrahiranje končnega odgovora:
8. korak: Posnemite sistem MRKL
Zdaj preprosto uporabite mrkl ključno besedo z metodo run(), da dobite odgovore iz različnih virov, kot so zbirke podatkov:
mrkl. teči ( 'Kakšno je polno ime izvajalca, katerega album z naslovom 'The Storm Before the Calm' je bil pred kratkim izdan in ali je v bazi podatkov FooBar tudi, kateri od njihovih albumov je v bazi podatkov.' )Agent je samodejno preoblikoval vprašanje v poizvedbo SQL, da pridobi odgovor iz baze podatkov. Agent išče pravi vir, da dobi odgovor, in nato sestavi poizvedbo, da izvleče podatke:
9. korak: Uporaba ChatModel
Uporabnik lahko preprosto spremeni jezikovni model z uporabo metode ChatOpenAI(), da postane ChatModel in z njim uporabi sistem MRKL:
od Langchain. chat_models uvoz ChatOpenAIIskanje = SerpAPIWrapper ( )
llm = ChatOpenAI ( temperaturo = 0 )
llm1 = OpenAI ( temperaturo = 0 )
llm_math_chain = LLMMathChain ( llm = llm1 , verbose = Prav )
db = SQLDatabase. from_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_chain = SQLDatabaseChain. from_llm ( llm1 , db , verbose = Prav )
orodja = [
Orodje (
ime = 'Iskanje' ,
funk = Iskanje. teči ,
opis = 'Vprašajte ciljne pozive, da dobite odgovore o nedavnih aferah'
) ,
Orodje (
ime = 'Kalkulator' ,
funk = llm_math_chain. teči ,
opis = 'uporabno za odgovarjanje/reševanje matematičnih problemov'
) ,
Orodje (
ime = 'FooBar DB' ,
funk = db_chain. teči ,
opis = 'uporabno za odgovarjanje na poizvedbe iz baze podatkov in vhodno vprašanje mora imeti celoten kontekst'
)
]
10. korak: preizkusite agenta MRKL
Po tem sestavite agenta in ga inicializirajte v spremenljivki mrkl z uporabo metode initialize_agent(). Dodajte parameter metode za integracijo komponent, kot so orodja, llm, agent in verbose, da dobite celoten postopek v izhodu:
mrkl = inicializiraj_agent ( orodja , llm , agent = AgentType. CHAT_ZERO_SHOT_REACT_DESCRIPTION , verbose = Prav )Izvedite vprašanje tako, da zaženete sistem mrkl, kot je prikazano na naslednjem posnetku zaslona:
mrkl. teči ( 'Kdo je dekle Lea DiCapria? Koliko so trenutno stari' )
Izhod
Naslednji delček prikazuje končni odgovor, ki ga je pridobil agent:
11. korak: Podvojite sistem MRKL
Uporabite sistem MRKL tako, da pokličete metodo run() z vprašanjem v naravnem jeziku, da izvlečete informacije iz baze podatkov:
mrkl. teči ( 'Kakšno je polno ime izvajalca, čigar album z naslovom 'The Storm Before the Calm' je bil pred kratkim izdan in ali je v bazi podatkov FooBar tudi, kateri njihovi albumi so v bazi podatkov.' )Izhod
Agent je prikazal končni odgovor, ekstrahiran iz baze podatkov, kot je prikazano na naslednjem posnetku zaslona:
To je vse o procesu podvajanja sistema MRKL z uporabo agentov v LangChainu:
Zaključek
Če želite podvojiti sistem MRKL z uporabo agentov v LangChain, namestite module, da pridobite odvisnosti za uvoz knjižnic. Knjižnice morajo zgraditi jezikovni model ali model klepeta, da z uporabo orodij dobijo odgovore iz več virov. Agenti so konfigurirani za uporabo orodij za pridobivanje izhodov iz različnih virov, kot so internet, baze podatkov itd. Ta vodnik je podrobneje predstavil postopek podvajanja sistema MRKL z uporabo agentov v LangChainu.