Kuinka kopioida MRKL-järjestelmä agenttien avulla LangChainissa?

Kuinka Kopioida Mrkl Jarjestelma Agenttien Avulla Langchainissa



MRKL (Modular Reasoning, Knowledge ja Language) -järjestelmä on arkkitehtuuri, joka voi poimia vastauksia varmennussyineen. Se yhdistää kielimallit, diskreetin päättelyn ja ulkoiset tietolähteet. Kielimallit tuottavat tekstin ihmiskielillä käyttäjän esittämien kyselyjen mukaan. MRKL (lausutaan: ihme) lisää perusteluja tuottaessaan vastauksia, jotta vastaus olisi oikea ja pätevä.

Quick Outline

Tämä viesti osoittaa seuraavaa:







Kuinka kopioida MRKL-järjestelmä agenttien avulla LangChainissa



Johtopäätös



Kuinka kopioida MRKL-järjestelmä agenttien avulla LangChainissa?

LangChainin avulla käyttäjä voi rakentaa agentteja, joita voidaan käyttää useiden kielimallien tai chatbottien tehtävien suorittamiseen. Agentit tallentavat työnsä kaikkien vaiheiden kanssa kielimalliin liitettyyn muistiin. Näitä malleja käyttämällä agentti voi toistaa minkä tahansa järjestelmän, kuten MRKL:n, toiminnan saadakseen optimoidut tulokset ilman, että niitä tarvitsee rakentaa uudelleen.





Jos haluat oppia MRKL-järjestelmän replikointiprosessin LangChainin agenttien avulla, käy läpi luetellut vaiheet:

Vaihe 1: Kehysten asentaminen

Ensinnäkin, asenna LangChain-kokeelliset moduulit pip-komennolla langchain-experimental-komennolla:



pip install langchain-experimental

Asenna OpenAI-moduuli rakentaaksesi kielimallin MRKL-järjestelmään:

pip install openai

Vaihe 2: OpenAI-ympäristön asettaminen

Tuo käyttöjärjestelmä- ja getpass-kirjastot, jotta voit käyttää toimintoa ja pyytää käyttäjää antamaan API-avaimet OpenAI- ja SerpAPi-tilejä varten:

tuonti sinä

tuonti getpass

sinä . suunnilleen [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'OpenAI API Key:' )

sinä . suunnilleen [ 'SERPAPI_API_KEY' ] = getpass . getpass ( 'Serpapi API Key:' )

Vaihe 3: Kirjastojen tuonti

Käytä LangChainin riippuvuuksia tuodaksesi tarvittavat kirjastot kielimallin, työkalujen ja agenttien rakentamiseen:

alkaen langchain. ketjut tuonti LLMMathChain

alkaen langchain. llms tuonti OpenAI

alkaen langchain. apuohjelmia tuonti SerpAPIWrapper

alkaen langchain. apuohjelmia tuonti SQL-tietokanta

alkaen langchain_experimental. sql tuonti SQLDatabaseChain

alkaen langchain. agentit tuonti alustusagentti , Työkalu

alkaen langchain. agentit tuonti AgentType

Vaihe 4: Tietokannan luominen

MRKL käyttää ulkoisia tietolähteitä tiedon poimimiseen tiedoista. Tämä viesti käyttää SQLitea, joka voidaan ladata tämän avulla opas tietokannan rakentamiseen. Seuraava komento vahvistaa SQLiten latausprosessin näyttämällä sen asennetun version:

sqlite3

Luo tietokanta komentokehotteen avulla käyttämällä seuraavia komentoja hakemiston sisällä:

CD Työpöytä

CD mydb

sqlite3 Chinook. db

Lataa Tietokanta tiedosto ja tallenna se hakemistoon käyttääksesi seuraavaa komentoa ' .db 'tiedosto:

. lukea Chinook_Sqlite. sql

SELECT * FROM Artist LIMIT 10 ;

Vaihe 5: Tietokannan lataaminen

Kun tietokanta on luotu onnistuneesti, lataa tiedosto Googlen yhteistyöhön:

alkaen Google. ET AL tuonti tiedostot

ladattu = tiedostot. lataa ( )

Käyttäjä voi käyttää muistikirjaan ladattua tiedostoa kopioidakseen sen polun sen avattavasta valikosta:

Vaihe 6: Määritä työkalut

Kun olet luonut tietokannan, määritä agenttien kielimalli, työkalut ja ketjut:

Hae = SerpAPIWrapper ( )
llm = OpenAI ( lämpötila = 0 )
llm_math_chain = LLMMathChain ( llm = llm , monisanainen = Totta )
db = SQL-tietokanta. from_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_ketju = SQLDatabaseChain. from_llm ( llm , db , monisanainen = Totta )
työkaluja = [
Työkalu (
nimi = 'Hae' ,
func = Hae. juosta ,
kuvaus = 'Kysy kohdistetuilta kehotteilta saadaksesi vastauksia viimeaikaisista asioista'
) ,
Työkalu (
nimi = 'Laskin' ,
func = llm_math_chain. juosta ,
kuvaus = 'hyödyllinen matemaattisten ongelmien ratkaisemiseen'
) ,
Työkalu (
nimi = 'FooBar DB' ,
func = db_ketju. juosta ,
kuvaus = 'hyödyllinen tietokannan kyselyihin vastaamiseen ja syötekysymyksellä on oltava täydellinen konteksti'
)
]
  • Määrittele llm muuttuja käyttämällä OpenAI() tapa saada kielimalli.
  • The Hae on työkalu, joka kutsuu SerpAPIWrapper() tapa päästä ympäristöönsä.
  • The LLMMathChain() menetelmää käytetään matemaattisiin ongelmiin liittyvien vastausten saamiseksi.
  • Määrittele db muuttuja tiedoston polun kanssa SQLDatabase() menetelmä.
  • The SQLDatabaseChain() menetelmää voidaan käyttää tietojen saamiseksi tietokannasta.
  • Määrittele työkalut, kuten Hae , laskin , ja FooBar DB agentin rakentaminen tietojen poimimiseksi eri lähteistä:

Vaihe 7: Agentin luominen ja testaus

Alusta MRKL-järjestelmä työkaluilla, llm:llä ja agentilla saadaksesi vastaukset käyttäjän esittämiin kysymyksiin:

mrkl = alustusagentti ( työkaluja , llm , agentti = AgentType. ZERO_SHOT_REACT_DESCRIPTION , monisanainen = Totta )

Suorita MRKL-järjestelmä run()-menetelmällä, jonka argumentti on kysymys:

mrkl. juosta ( 'Mikä on Leo DiCaprion ja hänen tyttöystävänsä nykyinen ikä, kertoo myös heidän ikäeron' )

Lähtö

Agentti on tuottanut lopullisen vastauksen täydellisellä polulla, jota järjestelmä käyttää lopullisen vastauksen poimimiseen:

Vaihe 8: Toista MRKL-järjestelmä

Käytä nyt yksinkertaisesti mrkl avainsana run()-menetelmällä saadaksesi vastauksia eri lähteistä, kuten tietokannoista:

mrkl. juosta ( 'Mikä on artistin koko nimi, jonka albumi nimeltä The Storm Before the Calm julkaistiin äskettäin ja ovatko he FooBar-tietokannassa myös mitkä heidän albumeistaan ​​ovat tietokannassa' )

Agentti on automaattisesti muuttanut kysymyksen SQL-kyselyksi hakeakseen vastauksen tietokannasta. Agentti etsii oikeaa lähdettä saadakseen vastauksen ja kokoaa sitten kyselyn poimiakseen tiedot:

Vaihe 9: ChatModelin käyttäminen

Käyttäjä voi yksinkertaisesti muuttaa kielimallia käyttämällä ChatOpenAI()-menetelmää ja tehdä siitä ChatModelin ja käyttää MRKL-järjestelmää sen kanssa:

alkaen langchain. chat_models tuonti ChatOpenAI

Hae = SerpAPIWrapper ( )
llm = ChatOpenAI ( lämpötila = 0 )
llm1 = OpenAI ( lämpötila = 0 )
llm_math_chain = LLMMathChain ( llm = llm1 , monisanainen = Totta )
db = SQL-tietokanta. from_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_ketju = SQLDatabaseChain. from_llm ( llm1 , db , monisanainen = Totta )
työkaluja = [
Työkalu (
nimi = 'Hae' ,
func = Hae. juosta ,
kuvaus = 'Kysy kohdistetuilta kehotteilta saadaksesi vastauksia viimeaikaisista asioista'
) ,
Työkalu (
nimi = 'Laskin' ,
func = llm_math_chain. juosta ,
kuvaus = 'hyödyllinen matemaattisten ongelmien ratkaisemiseen'
) ,
Työkalu (
nimi = 'FooBar DB' ,
func = db_ketju. juosta ,
kuvaus = 'hyödyllinen tietokannan kyselyihin vastaamiseen ja syötekysymyksellä on oltava täydellinen konteksti'
)
]

Vaihe 10: Testaa MRKL-agentti

Rakenna sen jälkeen agentti ja alusta se mrkl-muuttujassa käyttämällä inicializaatioagent()-metodia. Lisää menetelmän parametri integroidaksesi komponentit, kuten työkalut, llm, agentti ja verbose saadaksesi koko prosessin tulosteeseen:

mrkl = alustusagentti ( työkaluja , llm , agentti = AgentType. CHAT_ZERO_SHOT_REACT_DESCRIPTION , monisanainen = Totta )

Suorita kysymys ajamalla mrkl-järjestelmä seuraavan kuvakaappauksen mukaisesti:

mrkl. juosta ( 'Kuka on Leo DiCaprion tyttöystävä? Mikä on heidän ikänsä tällä hetkellä' )

Lähtö

Seuraava koodinpätkä näyttää agentin poimiman lopullisen vastauksen:

Vaihe 11: Toista MRKL-järjestelmä

Käytä MRKL-järjestelmää kutsumalla run()-menetelmää kysymyksellä luonnollisella kielellä poimimaan tietoa tietokannasta:

mrkl. juosta ( 'Mikä on artistin koko nimi, jonka albumi nimeltä The Storm Before the Calm julkaistiin äskettäin ja ovatko he FooBar-tietokannassa myös mitkä heidän albumeistaan ​​ovat tietokannassa' )

Lähtö

Agentti on näyttänyt tietokannasta poimitun lopullisen vastauksen seuraavan kuvakaappauksen mukaisesti:

Siinä kaikki MRKL-järjestelmän kopiointiprosessissa LangChainin agenttien avulla:

Johtopäätös

Jos haluat replikoida MRKL-järjestelmän LangChainin agenttien avulla, asenna moduulit saadaksesi riippuvuudet kirjastojen tuontia varten. Kirjastojen on rakennettava kielimalli tai chat-malli saadakseen vastauksia useista lähteistä työkalujen avulla. Agentit on määritetty käyttämään työkaluja tulosteiden poimimiseen eri lähteistä, kuten Internetistä, tietokannoista jne. Tässä oppaassa on käsitelty MRKL-järjestelmän replikointiprosessia LangChainin agenttien avulla.