Paano Gagayahin ang Sistema ng MRKL Gamit ang Mga Ahente sa LangChain?

Paano Gagayahin Ang Sistema Ng Mrkl Gamit Ang Mga Ahente Sa Langchain



Ang Modular Reasoning, Knowledge, and Language (MRKL) system ay isang arkitektura na maaaring kumuha ng mga sagot na may mga dahilan para sa pag-verify nito. Pinagsasama nito ang Mga Modelo ng Wika, Diskretong pangangatwiran, at Panlabas na mga mapagkukunan ng kaalaman. Ang mga modelo ng wika ay gumagawa ng teksto sa mga wika ng tao ayon sa mga query na itinanong ng gumagamit. Ang MRKL (binibigkas: himala) ay nagdaragdag ng pangangatwiran habang gumagawa ng mga sagot upang maging tumpak at wasto ang sagot.

Mabilis na Balangkas

Ipapakita ng post na ito ang sumusunod:







Paano Gawin ang MRKL System Gamit ang mga Ahente sa LangChain



Konklusyon



Paano Gagayahin ang Sistema ng MRKL Gamit ang Mga Ahente sa LangChain?

Binibigyang-daan ng LangChain ang user na bumuo ng mga ahente na maaaring magamit upang magsagawa ng maraming gawain para sa mga modelo ng wika o chatbots. Iniimbak ng mga ahente ang kanilang trabaho kasama ang lahat ng mga hakbang sa memorya na nakalakip sa modelo ng wika. Gamit ang mga template na ito, maaaring kopyahin ng ahente ang pagtatrabaho ng anumang sistema tulad ng MRKL upang makuha ang mga na-optimize na resulta nang hindi na kailangang buuin muli ang mga ito.





Upang matutunan ang proseso ng pagkopya ng sistema ng MRKL gamit ang mga ahente sa LangChain, dumaan lang sa mga nakalistang hakbang:

Hakbang 1: Pag-install ng Mga Framework

Una sa lahat, i-install ang LangChain experimental modules gamit ang pip na may langchain-experimental command:



pip install langchain-experimental

I-install ang OpenAI module upang bumuo ng modelo ng wika para sa MRKL system:

pip install openai

Hakbang 2: Pagse-set ng OpenAI Environment

I-import ang mga library ng os at getpass para ma-access ang operating para sa pag-prompt sa user na ibigay ang mga API key para sa OpenAI at SerpAPi account:

angkat ikaw

angkat getpass

ikaw . humigit-kumulang [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'OpenAI API Key:' )

ikaw . humigit-kumulang [ 'SERPAPI_API_KEY' ] = getpass . getpass ( 'Serpapi API Key:' )

Hakbang 3: Pag-import ng Mga Aklatan

Gamitin ang mga dependency mula sa LangChain upang i-import ang mga kinakailangang library para sa pagbuo ng modelo ng wika, mga tool, at mga ahente:

mula sa langchain. mga tanikala angkat LLMMathChain

mula sa langchain. llms angkat OpenAI

mula sa langchain. mga kagamitan angkat SerpAPIWrapper

mula sa langchain. mga kagamitan angkat SQLDatabase

mula sa langchain_experimental. sql angkat SQLDatabaseChain

mula sa langchain. mga ahente angkat initialize_agent , Tool

mula sa langchain. mga ahente angkat Uri ng Ahente

Hakbang 4: Pagbuo ng Database

Gumagamit ang MRKL ng mga panlabas na mapagkukunan ng kaalaman upang kunin ang impormasyon mula sa data. Ang post na ito ay gumagamit ng SQLite na maaaring ma-download gamit ito gabay upang bumuo ng database. Kinukumpirma ng sumusunod na command ang proseso ng pag-download ng SQLite sa pamamagitan ng pagpapakita ng naka-install na bersyon nito:

sqlite3

Gamitin ang sumusunod na mga command sa loob ng isang direktoryo upang lumikha ng database gamit ang command prompt:

cd Desktop

cd mydb

sqlite3 Chinook. db

I-download ang Database file at iimbak ito sa direktoryo upang magamit ang sumusunod na command para sa paglikha ng ' .db ” file:

. basahin Chinook_Sqlite. sql

PUMILI * MULA SA LIMIT ng Artist 10 ;

Hakbang 5: Pag-upload ng Database

Sa sandaling matagumpay na nalikha ang database, i-upload ang file sa Google collaboratory:

mula sa google. ET AL angkat mga file

na-upload = mga file. mag-upload ( )

Maaaring ma-access ng user ang na-upload na file sa notebook upang kopyahin ang landas nito mula sa drop-down na menu nito:

Hakbang 6: Pag-configure ng Mga Tool

Pagkatapos buuin ang database, i-configure ang modelo ng wika, mga tool, at chain para sa mga ahente:

paghahanap = SerpAPIWrapper ( )
llm = OpenAI ( temperatura = 0 )
llm_math_chain = LLMMathChain ( llm = llm , verbose = totoo )
db = SQLDatabase. from_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_chain = SQLDatabaseChain. from_llm ( llm , db , verbose = totoo )
mga kasangkapan = [
Tool (
pangalan = 'Paghahanap' ,
func = paghahanap. tumakbo ,
paglalarawan = 'Tanungin ang mga naka-target na prompt para makakuha ng mga sagot tungkol sa mga kamakailang pangyayari'
) ,
Tool (
pangalan = 'Calculator' ,
func = llm_math_chain. tumakbo ,
paglalarawan = 'kapaki-pakinabang para sa pagsagot/paglutas ng mga problema sa matematika'
) ,
Tool (
pangalan = 'FooBar DB' ,
func = db_chain. tumakbo ,
paglalarawan = 'kapaki-pakinabang para sa pagsagot sa mga query mula sa isang database at ang input na tanong ay dapat magkaroon ng kumpletong konteksto'
)
]
  • Tukuyin ang llm variable gamit ang OpenAI() paraan upang makuha ang modelo ng wika.
  • Ang paghahanap ay ang tool na tumatawag sa SerpAPIWrapper() paraan upang ma-access ang kapaligiran nito.
  • Ang LLMMathChain() paraan ay ginagamit upang makuha ang mga sagot na may kaugnayan sa mga problema sa matematika.
  • Tukuyin ang db variable na may path ng file sa loob ng SQLDatabase() paraan.
  • Ang SQLDatabaseChain() paraan ay maaaring gamitin upang makuha ang impormasyon mula sa database.
  • Tukuyin ang mga tool tulad ng paghahanap , calculator , at FooBar DB para sa pagbuo ng ahente upang kunin ang data mula sa iba't ibang mapagkukunan:

Hakbang 7: Pagbuo at Pagsubok sa Ahente

Simulan ang MRKL system gamit ang mga tool, llm, at ahente para makuha ang mga sagot sa mga tanong ng user:

mrkl = initialize_agent ( mga kasangkapan , llm , ahente = Uri ng Ahente. ZERO_SHOT_REACT_DESCRIPTION , verbose = totoo )

Ipatupad ang MRKL system gamit ang run() method na may tanong bilang argumento nito:

mrkl. tumakbo ( 'Ano ang kasalukuyang edad ni Leo DiCaprio at ng kanyang kasintahan na nagsasabi din ng kanilang pagkakaiba sa edad' )

Output

Ang ahente ay gumawa ng panghuling sagot kasama ang kumpletong landas na ginamit ng system upang kunin ang huling sagot:

Hakbang 8: Gawin ang MRKL System

Ngayon, gamitin lang ang mrkl keyword na may run() na paraan upang makakuha ng mga sagot mula sa iba't ibang mapagkukunan tulad ng mga database:

mrkl. tumakbo ( 'Ano ang buong pangalan ng artist na ang album na tinatawag na 'The Storm Before the Calm' ay inilabas kamakailan at sila ba ay nasa FooBar database din kung alin sa kanilang mga album ang nasa database' )

Awtomatikong binago ng ahente ang tanong sa query ng SQL upang makuha ang sagot mula sa database. Hinahanap ng ahente ang tamang source para makuha ang sagot at pagkatapos ay i-assemble ang query para kunin ang impormasyon:

Hakbang 9: Paggamit ng ChatModel

Maaaring baguhin lang ng user ang modelo ng wika sa pamamagitan ng paggamit ng ChatOpenAI() na paraan upang gawin itong ChatModel at gamitin ang MRKL system kasama nito:

mula sa langchain. chat_models angkat ChatOpenAI

paghahanap = SerpAPIWrapper ( )
llm = ChatOpenAI ( temperatura = 0 )
llm1 = OpenAI ( temperatura = 0 )
llm_math_chain = LLMMathChain ( llm = llm1 , verbose = totoo )
db = SQLDatabase. from_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_chain = SQLDatabaseChain. from_llm ( llm1 , db , verbose = totoo )
mga kasangkapan = [
Tool (
pangalan = 'Paghahanap' ,
func = paghahanap. tumakbo ,
paglalarawan = 'Tanungin ang mga naka-target na prompt para makakuha ng mga sagot tungkol sa mga kamakailang pangyayari'
) ,
Tool (
pangalan = 'Calculator' ,
func = llm_math_chain. tumakbo ,
paglalarawan = 'kapaki-pakinabang para sa pagsagot/paglutas ng mga problema sa matematika'
) ,
Tool (
pangalan = 'FooBar DB' ,
func = db_chain. tumakbo ,
paglalarawan = 'kapaki-pakinabang para sa pagsagot sa mga query mula sa isang database at ang input na tanong ay dapat magkaroon ng kumpletong konteksto'
)
]

Hakbang 10: Subukan ang Ahente ng MRKL

Pagkatapos nito, buuin ang ahente at simulan ito sa mrkl variable gamit ang initialize_agent() na paraan. Idagdag ang parameter ng pamamaraan upang isama ang mga bahagi tulad ng mga tool, llm, ahente, at verbose upang makuha ang kumpletong proseso sa output:

mrkl = initialize_agent ( mga kasangkapan , llm , ahente = Uri ng Ahente. CHAT_ZERO_SHOT_REACT_DESCRIPTION , verbose = totoo )

Isagawa ang tanong sa pamamagitan ng pagpapatakbo ng mrkl system tulad ng ipinapakita sa sumusunod na screenshot:

mrkl. tumakbo ( 'Sino ang girlfriend ni Leo DiCaprio? Ano ang edad nila ngayon' )

Output

Ipinapakita ng sumusunod na snippet ang huling sagot na nakuha ng ahente:

Hakbang 11: Gawin ang MRKL System

Gamitin ang MRKL system sa pamamagitan ng pagtawag sa run() method na may tanong sa natural na wika para kunin ang impormasyon mula sa database:

mrkl. tumakbo ( 'Ano ang buong pangalan ng artist na ang album na tinatawag na 'The Storm Before the Calm' ay inilabas kamakailan at sila ba ay nasa FooBar database din kung alin sa kanilang mga album ang nasa database' )

Output

Ipinakita ng ahente ang huling sagot na nakuha mula sa database tulad ng ipinapakita sa sumusunod na screenshot:

Iyon lang ang tungkol sa proseso ng pagkopya ng sistema ng MRKL gamit ang mga ahente sa LangChain:

Konklusyon

Upang kopyahin ang sistema ng MRKL gamit ang mga ahente sa LangChain, i-install ang mga module upang makuha ang mga dependency para sa pag-import ng mga aklatan. Ang mga aklatan ay kinakailangan na bumuo ng modelo ng wika o modelo ng chat upang makuha ang mga sagot mula sa maraming mapagkukunan gamit ang mga tool. Ang mga ahente ay naka-configure na gamitin ang mga tool para sa pagkuha ng mga output mula sa iba't ibang mga mapagkukunan tulad ng internet, mga database, atbp. Ang gabay na ito ay nagpapaliwanag sa proseso ng pagkopya ng sistema ng MRKL gamit ang mga ahente sa LangChain.