Kaip atkartoti MRKL sistemą naudojant agentus „LangChain“?

Kaip Atkartoti Mrkl Sistema Naudojant Agentus Langchain



Modulinė samprotavimo, žinių ir kalbos (MRKL) sistema yra architektūra, galinti išgauti atsakymus su jos patikrinimo priežastimis. Jame integruoti kalbos modeliai, diskretūs samprotavimai ir išoriniai žinių šaltiniai. Kalbos modeliai sukuria tekstą žmonių kalbomis pagal vartotojo užklausas. MRKL (tariama: stebuklas) prideda samprotavimus pateikdamas atsakymus, kad atsakymas būtų tikslus ir pagrįstas.

Greitas kontūras

Šis įrašas parodys šiuos dalykus:





Kaip atkartoti MRKL sistemą naudojant agentus „LangChain“.



Išvada



Kaip atkartoti MRKL sistemą naudojant agentus „LangChain“?

„LangChain“ leidžia vartotojui sukurti agentus, kurie gali būti naudojami atlikti kelias kalbos modelių arba pokalbių robotų užduotis. Agentai išsaugo savo darbą su visais veiksmais atmintyje, pridėtoje prie kalbos modelio. Naudodamas šiuos šablonus agentas gali pakartoti bet kurios sistemos, pvz., MRKL, darbą, kad gautų optimizuotus rezultatus, nereikėtų jų kurti iš naujo.





Norėdami sužinoti MRKL sistemos atkartojimo procesą naudojant agentus LangChain, tiesiog atlikite nurodytus veiksmus:

1 veiksmas: „Frameworks“ diegimas

Visų pirma, įdiekite LangChain eksperimentinius modulius naudodami pip su komanda langchain-experimental:



pip įdiegti langchain-experimental

Įdiekite OpenAI modulį, kad sukurtumėte MRKL sistemos kalbos modelį:

pip install openai

2 veiksmas: OpenAI aplinkos nustatymas

Importuokite OS ir getpass bibliotekas, kad pasiektumėte operacinę sistemą, kad vartotojas būtų paragintas pateikti API raktus OpenAI ir SerpAPi paskyroms:

importuoti tu

importuoti gauti pasą

tu . maždaug [ „OPENAI_API_KEY“ ] = gauti pasą . gauti pasą ( 'OpenAI API raktas:' )

tu . maždaug [ 'SERPAPI_API_KEY' ] = gauti pasą . gauti pasą ( 'Serpapi API raktas:' )

3 veiksmas: bibliotekų importavimas

Naudokite priklausomybes iš LangChain, kad importuotumėte reikiamas bibliotekas kalbos modeliui, įrankiams ir agentams kurti:

langchain. grandines importuoti LLMMathChain

langchain. llms importuoti OpenAI

langchain. Komunalinės paslaugos importuoti SerpAPIWrapper

langchain. Komunalinės paslaugos importuoti SQL duomenų bazė

langchain_experimental. sql importuoti SQLDatabaseChain

langchain. agentai importuoti inicijuoti_agentą , Įrankis

langchain. agentai importuoti Agento tipas

4 veiksmas: sukurkite duomenų bazę

MRKL naudoja išorinius žinių šaltinius, kad gautų informaciją iš duomenų. Šiame įraše naudojama SQLite, kurią galima atsisiųsti naudojant tai vadovas sukurti duomenų bazę. Ši komanda patvirtina SQLite atsisiuntimo procesą rodydama įdiegtą versiją:

sqlite3

Norėdami sukurti duomenų bazę naudodami komandų eilutę, naudokite šias komandas kataloge:

cd Darbalaukis

cd mydb

sqlite3 Chinook. db

Atsisiųskite Duomenų bazė failą ir išsaugokite jį kataloge, kad sukurtumėte „ .db “ failas:

. skaityti Chinook_Sqlite. sql

PASIRINKTI * IŠ Atlikėjo LIMIT 10 ;

5 veiksmas: įkelkite duomenų bazę

Sėkmingai sukūrę duomenų bazę, įkelkite failą į „Google“ bendradarbiavimą:

google. ET AL importuoti failus

įkeltas = failus. įkelti ( )

Vartotojas gali pasiekti įkeltą failą bloknote ir nukopijuoti jo kelią iš jo išskleidžiamojo meniu:

6 veiksmas: įrankių konfigūravimas

Sukūrę duomenų bazę, sukonfigūruokite agentų kalbos modelį, įrankius ir grandines:

Paieška = SerpAPIWrapper ( )
llm = OpenAI ( temperatūros = 0 )
llm_math_chain = LLMMathChain ( llm = llm , žodinis = Tiesa )
db = SQL duomenų bazė. iš_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_chain = SQLDatabaseChain. iš_llm ( llm , db , žodinis = Tiesa )
įrankiai = [
Įrankis (
vardas = 'Paieška' ,
func = Paieška. paleisti ,
apibūdinimas = „Klauskite tikslinių raginimų, kad gautumėte atsakymus apie naujausius reikalus“
) ,
Įrankis (
vardas = 'Skaičiuoklė' ,
func = llm_math_chain. paleisti ,
apibūdinimas = 'naudinga atsakant / sprendžiant matematines problemas'
) ,
Įrankis (
vardas = „FooBar DB“ ,
func = db_chain. paleisti ,
apibūdinimas = 'naudingas atsakant į užklausas iš duomenų bazės ir įvesties klausimas turi turėti visą kontekstą'
)
]
  • Apibrėžkite llm kintamasis naudojant OpenAI() būdas gauti kalbos modelį.
  • The Paieška yra įrankis, kuris skambina SerpAPIWrapper() būdas pasiekti savo aplinką.
  • The LLMMathChain() metodas naudojamas atsakymams, susijusiems su matematiniais uždaviniais, gauti.
  • Apibrėžkite db kintamasis su failo keliu viduje SQL duomenų bazė () metodas.
  • The SQLDatabaseChain() metodas gali būti naudojamas norint gauti informaciją iš duomenų bazės.
  • Apibrėžkite tokius įrankius kaip Paieška , skaičiuotuvas , ir FooBar DB Norėdami sukurti agentą duomenims iš skirtingų šaltinių gauti:

7 veiksmas: agento kūrimas ir išbandymas

Inicijuokite MRKL sistemą naudodami įrankius, llm ir agentą, kad gautumėte atsakymus į vartotojo užduotus klausimus:

mrkl = inicijuoti_agentą ( įrankiai , llm , agentas = Agento tipas. ZERO_SHOT_REACT_DESCRIPTION , žodinis = Tiesa )

Vykdykite MRKL sistemą naudodami run() metodą su klausimu kaip argumentu:

mrkl. paleisti ( „Koks dabartinis Leo DiCaprio ir jo merginos amžius taip pat rodo jų amžiaus skirtumą“ )

Išvestis

Agentas pateikė galutinį atsakymą su visu keliu, kurį sistema naudoja galutiniam atsakymui išgauti:

8 veiksmas: pakartokite MRKL sistemą

Dabar tiesiog naudokite mrkl raktinis žodis naudojant run() metodą, kad gautumėte atsakymus iš įvairių šaltinių, pvz., duomenų bazių:

mrkl. paleisti ( „Koks pilnas atlikėjo, kurio albumas „The Storm Before the Calm“ neseniai išleistas, vardas ir ar jie yra „FooBar“ duomenų bazėje, taip pat kurie jų albumai yra duomenų bazėje? )

Agentas automatiškai transformavo klausimą į SQL užklausą, kad gautų atsakymą iš duomenų bazės. Agentas ieško teisingo šaltinio, kad gautų atsakymą, tada surenka užklausą, kad gautų informaciją:

9 veiksmas: „ChatModel“ naudojimas

Vartotojas gali tiesiog pakeisti kalbos modelį naudodamas ChatOpenAI() metodą, kad jis taptų ChatModel ir su juo naudotųsi MRKL sistema:

langchain. pokalbių_modeliai importuoti ChatOpenAI

Paieška = SerpAPIWrapper ( )
llm = ChatOpenAI ( temperatūros = 0 )
llm1 = OpenAI ( temperatūros = 0 )
llm_math_chain = LLMMathChain ( llm = llm1 , žodinis = Tiesa )
db = SQL duomenų bazė. iš_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_chain = SQLDatabaseChain. iš_llm ( llm1 , db , žodinis = Tiesa )
įrankiai = [
Įrankis (
vardas = 'Paieška' ,
func = Paieška. paleisti ,
apibūdinimas = „Klauskite tikslinių raginimų, kad gautumėte atsakymus apie naujausius reikalus“
) ,
Įrankis (
vardas = 'Skaičiuoklė' ,
func = llm_math_chain. paleisti ,
apibūdinimas = 'naudinga atsakant / sprendžiant matematines problemas'
) ,
Įrankis (
vardas = „FooBar DB“ ,
func = db_chain. paleisti ,
apibūdinimas = 'naudingas atsakant į užklausas iš duomenų bazės ir įvesties klausimas turi turėti visą kontekstą'
)
]

10 veiksmas: patikrinkite MRKL agentą

Po to sukurkite agentą ir inicijuokite jį mrkl kintamajame naudodami inicializacijos_agentas() metodą. Pridėkite metodo parametrą, kad integruotumėte tokius komponentus kaip įrankiai, llm, agentas ir verbose, kad išvestyje būtų pateiktas visas procesas:

mrkl = inicijuoti_agentą ( įrankiai , llm , agentas = Agento tipas. CHAT_ZERO_SHOT_REACT_DESCRIPTION , žodinis = Tiesa )

Vykdykite klausimą paleisdami mrkl sistemą, kaip parodyta šioje ekrano kopijoje:

mrkl. paleisti ( 'Kas yra Leo DiCaprio mergina? Koks jų amžius dabar' )

Išvestis

Šiame fragmente rodomas galutinis agento ištrauktas atsakymas:

11 veiksmas: pakartokite MRKL sistemą

Norėdami gauti informaciją iš duomenų bazės, naudokite MRKL sistemą, iškviesdami run() metodą su klausimu natūralia kalba:

mrkl. paleisti ( „Koks pilnas atlikėjo, kurio albumas „The Storm Before the Calm“ neseniai išleistas, vardas ir ar jie yra „FooBar“ duomenų bazėje, taip pat kurie jų albumai yra duomenų bazėje? )

Išvestis

Agentas parodė galutinį atsakymą, ištrauktą iš duomenų bazės, kaip parodyta šioje ekrano kopijoje:

Tai viskas apie MRKL sistemos atkartojimo procesą naudojant agentus LangChain:

Išvada

Norėdami kopijuoti MRKL sistemą naudodami agentus LangChain, įdiekite modulius, kad gautumėte bibliotekų importavimo priklausomybes. Bibliotekos turi sukurti kalbos modelį arba pokalbių modelį, kad gautų atsakymus iš kelių šaltinių naudojant įrankius. Agentai sukonfigūruoti naudoti įrankius, skirtus išvestims iš įvairių šaltinių, pvz., interneto, duomenų bazių ir pan., išgauti. Šiame vadove išsamiai aprašomas MRKL sistemos atkartojimo procesas naudojant agentus LangChain.