Kako posnemati sistem MRKL z uporabo agentov v LangChainu?

Kako Posnemati Sistem Mrkl Z Uporabo Agentov V Langchainu



Sistem Modular Reasoning, Knowledge and Language (MRKL) je arhitektura, ki lahko izlušči odgovore z razlogi za njihovo preverjanje. Združuje jezikovne modele, diskretno sklepanje in zunanje vire znanja. Jezikovni modeli proizvedejo besedilo v človeških jezikih glede na poizvedbe, ki jih zastavi uporabnik. MRKL (izgovarja se: čudež) doda sklepanje, medtem ko daje odgovore, da je odgovor natančen in veljaven.

Hitri oris

Ta objava bo pokazala naslednje:







Kako posnemati sistem MRKL z uporabo agentov v LangChainu



Zaključek



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 ti

uvoz 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 LLMMathChain

od 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 Namizje

cd mydb

sqlite3 Chinook. db

Prenesite Baza podatkov datoteko in jo shranite v imenik, da uporabite naslednji ukaz za ustvarjanje » .db ' mapa:

. prebrati Chinook_Sqlite. sql

IZBERI * 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 datoteke

nalož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 ChatOpenAI

Iskanje = 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.