Quick Outline
Tämä viesti osoittaa seuraavaa:
Kuinka kopioida MRKL-järjestelmä agenttien avulla LangChainissa
- Vaihe 1: Kehysten asentaminen
- Vaihe 2: OpenAI-ympäristön asettaminen
- Vaihe 3: Kirjastojen tuonti
- Vaihe 4: Tietokannan luominen
- Vaihe 5: Tietokannan lataaminen
- Vaihe 6: Työkalujen määrittäminen
- Vaihe 7: Agentin luominen ja testaus
- Vaihe 8: Toista MRKL-järjestelmä
- Vaihe 9: ChatModelin käyttäminen
- Vaihe 10: Testaa MRKL-agenttia
- Vaihe 11: Toista MRKL-järjestelmä
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 LLMMathChainalkaen 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. sqlSELECT * FROM Artist LIMIT 10 ;
Vaihe 5: Tietokannan lataaminen
Kun tietokanta on luotu onnistuneesti, lataa tiedosto Googlen yhteistyöhön:
alkaen Google. ET AL tuonti tiedostotladattu = 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 ChatOpenAIHae = 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.