Kuidas rakendada ReAct-loogikat, kasutades agenti LangChainis?

Kuidas Rakendada React Loogikat Kasutades Agenti Langchainis



LangChain on raamistik keelemudelite ja vestlusrobotite loomiseks, mis suudavad mõista ja genereerida inimkeelset teksti. Mudeli jõudlus põhineb keele ja selle keerukuse mõistmisel protsessi koolitusfaasis. Järgmine etapp on andmete või teksti loomine loomulikus keeles, mis on kergesti loetav ja arusaadav. Neid etappe nimetatakse ' Arutluskäik ” ja „ Näitlemine ” vastavalt loomuliku keele töötlemise domeenis.

Kiire ülevaade

See postitus näitab:

Kuidas rakendada ReAct-loogikat, kasutades agenti LangChainis?

' ReAct ” on põhjuse ja tegevuse faaside kombinatsioon keelemudeli toimivuse parandamiseks kui „ Re ' viitab mõistusele ja ' seadus ” tegudele. ReActi loogikat peetakse sageli kõige optimeeritumaks LLM-ide või vestlusrobotite loomiseks teksti mõistmiseks ja genereerimiseks. Agent on otsustaja, kes otsustab, milliseid toiminguid teha ja millises järjekorras tehakse.







ReActi loogika juurutamise protsessi õppimiseks LangChainis agendi abil lugege lihtsalt läbi järgmine juhend:



1. samm: raamistike installimine

Kõigepealt installige LangChain, et alustada ReActi loogika juurutamise protsessiga:



pip install langchain





Installige moodul google-search-results, et hankida sõltuvused agendi loomiseks, mis saab Google'ist otsingutulemusi hankida:

pip install openai google-search-results



Pärast seda installige OpenAI moodulid, mida saab kasutada suurte keelemudelite või LLM-ide laadimiseks ReActi loogika rakendamiseks:

pip install openai

Pärast kõigi vajalike moodulite saamist seadistage lihtsalt OpenAI keskkond LLM ehitamiseks ja SerpAPI keskkond agendi kasutamiseks mudelis:

importida sina

importida saada pass

sina . umbes [ 'OPENAI_API_KEY' ] = saada pass . saada pass ( 'OpenAI API võti:' )

sina . umbes [ 'SERPAPI_API_KEY' ] = saada pass . saada pass ( 'Serpapi API võti:' )

2. samm: keelemudeli laadimine

Järgmine samm on keelemudelite laadimine, importides LangChaini raamistiku abil vajalikud teegid:

alates langchain. agendid importida load_tools

alates langchain. agendid importida initsialiseeri_agent

alates langchain. agendid importida Agendi tüüp

alates langchain. llms importida OpenAI

Kasutage OpenAI() meetodit keelemudeli (llm) koostamiseks ja seejärel agentide tööriistade konfigureerimiseks SerpAPI abil:

llm = OpenAI ( temperatuuri = 0 )

tööriistad = load_tools ( [ 'serpapi' , 'llm-matemaatika' ] , llm = llm )

1. meetod: LandChaini väljenduskeele kasutamine

LCEL on ahelate integreerimise või koostamise protsess LangChainis keelemudelite koostamise ajal. Alustage protsessi, installides LangChainHubi, et saada selle sõltuvused LangChainis agentidega ReAct-loogika koostamiseks ja kasutamiseks:

pip installi langchainhub

Teekide importimine LangChainist nagu ReActSingleInputOutputParser, et luua ReActi mudelit kasutav mudel:

alates langchain. tööriistad . renderdama importida render_text_description

alates langchain. agendid . väljund_parserid importida ReActSingleInputOutputParser

alates langchain. agendid . format_scratchpad importida format_log_to_str

alates langchain importida jaotur

Laadige keelemudel ReActi loogika kujundamiseks meetodi pull() abil ja salvestage see viipamuutujas. Määratlege mõned tööriistad, mida saab kasutada laaditud andmestiku loogika rakendamiseks, et rakendada selle töö agendiga:

viip = jaotur. tõmba ( 'hwchase17/react' )

viip = viip. osaline (

tööriistad = render_text_description ( tööriistad ) ,

tööriista_nimed = ', ' . liituda ( [ t. nimi jaoks t sisse tööriistad ] ) ,

)

Ehitusagent

Nüüd konfigureerige agent ja selle tööriistad, integreerides selle selle juhendi 2. sammus laaditud keelemudeliga.

llm_with_stop = llm. siduda ( peatus = [ ' \n Vaatlus' ] )

Määratlege agendi muutuja, et pakkuda agendi toimimist selgitavaid argumente ja tööriistu. Varem konfigureeritud osad nagu llm_with_stop ja meetod ReActSingleInputOutputParser() integreeritakse agendiga:

agent = {

'sisend' : lambda x: x [ 'sisend' ] ,

'agent_scratchpad' : lambda x: formaat_logi_str ( x [ 'intermediate_steps' ] )

} | viipa | llm_peatusega | ReActSingleInputOutputParser ( )

Hankige AgentExecutori teek ja konfigureerige selle meetod, kasutades selliseid argumente nagu agent, tööriistad ja paljusõnaline, et saada loetavam väljund:

alates langchain. agendid importida Agent Executor

agent_täitja = Agent Executor ( agent = agent , tööriistad = tööriistad , paljusõnaline = Tõsi )

Käivitage meetod agent_executor() stringi päringuga sisendiks, mis käivitab agendi väljundi ekstraktimiseks:

agent_täitja. kutsuda ( { 'sisend' : 'Kes on Leo DiCaprio tüdruksõber' } )

Väljund

Järgmine ekraanipilt näitab, et agent on ReActi loogika abil teabe välja võtnud ja loonud teksti loomulikus keeles:

2. meetod: ZeroShotReactAgenti kasutamine

ReActi loogikat saab rakendada ka teise agenti (nt ZeroShotReactAgent) abil muutuja agent_executor konfigureerimisel. Pärast seda kutsuge agendi kutsumiseks lihtsalt muutuja agent_executor, mille sisendiks on küsimus:

agent_täitja = initsialiseeri_agent ( tööriistad , llm , agent = Agendi tüüp. ZERO_SHOT_REACT_DESCRIPTION , paljusõnaline = Tõsi )

agent_täitja. kutsuda ( { 'sisend' : 'Mis on Leo DiCaprio tüdruksõbra vanus tõstetud 0,21 astmeni' } )

Väljund

Agent on ekstraheerinud teabe agent_executor kutsumisel küsitud sisendi põhjal:

3. meetod: vestlusmudelite kasutamine

Veel üks protsess, mida saab kasutada vestlusmudelite abil ReActi loogika juurutamiseks pärast ChatOpenAI teegi importimist:

alates langchain. chat_models importida ChatOpenAI

Ehitage ChatOpenAI() meetodiga vestlusmudel temperatuuri väärtusega 0, mis suudab kontrollida mudeli tulemuste juhuslikkust:

vestlus_mudel = ChatOpenAI ( temperatuuri = 0 )

Laadige mudel, millel kasutaja saab rakendada ReActi loogikat, et see viipamuutujas salvestada ja konfigureerida protsessis kasutatavad tööriistad:

viip = jaotur. tõmba ( 'hwchase17/react-json' )

viip = viip. osaline (

tööriistad = render_text_description ( tööriistad ) ,

tööriista_nimed = ', ' . liituda ( [ t. nimi jaoks t sisse tööriistad ] ) ,

)

Agendi ehitamine

Kasutage vestlusmudelit tähelepanekute või hiljutiste sõnumite salvestamiseks, kui mudel lõpetab teksti loomise:

chat_model_with_stopp = vestlus_mudel. siduda ( peatus = [ ' \n Vaatlus' ] )

Hankige ReAct-loogika juurutamiseks ja JSON-vormingus tulemuste saamiseks teek ReActJsonSingleInputOutputParser:

alates langchain. agendid . väljund_parserid importida ReActJsonSingleInputOutputParser

Ehitage ja konfigureerige agent, kasutades muutujat chat_model ja meetodit, et saada agendile helistades tulemusi:

agent = {

'sisend' : lambda x: x [ 'sisend' ] ,

'agent_scratchpad' : lambda x: formaat_logi_str ( x [ 'intermediate_steps' ] )

} | viipa | chat_model_with_stopp | ReActJsonSingleInputOutputParser ( )

Konfigureerige agent_executor ja käivitage see, et saada sisendmuutujas esitatud päringule vastavad tulemused:

agent_täitja = Agent Executor ( agent = agent , tööriistad = tööriistad , paljusõnaline = Tõsi )

agent_täitja. kutsuda ( { 'sisend' : 'Mis on Leo DiCaprio tüdruksõbra vanus tõstetud 0,21 astmeni' } )

Väljund

Agent on ekstraktinud väljundi, nagu on näidatud järgmisel ekraanipildil:

4. meetod: ChatZeroShotReactAgenti kasutamine

Agendi väärtuse muutmist saab kasutada ka ReActi loogika rakendamiseks LangChaini raamistikuga:

agent = initsialiseeri_agent ( tööriistad , vestlus_mudel , agent = Agendi tüüp. CHAT_ZERO_SHOT_REACT_DESCRIPTION , paljusõnaline = Tõsi )

agent. jooksma ( 'Mis on Leo DiCaprio tüdruksõbra vanus tõstetud 0,21 astmeni' )

Väljund

Väljundstruktuur sisaldab üksikasjalikku teavet agendi töö kohta teabe eraldamiseks kasutatud žetoonidest ja mudelist:

See kõik puudutab ReActi loogika juurutamist, kasutades agenti LangChainis.

Järeldus

ReActi loogika rakendamiseks LangChaini raamistikku kasutava agendiga installige agendi konfigureerimiseks moodulid, nagu google-search-results. Pärast seda seadistage mudeli kasutamise alustamiseks keskkond, kasutades nende kontodel olevaid OpenAI ja SerpAPI mandaate. ReActi loogikat saab rakendada LCEL-i ja vestlusmudelite abil, kus on mitu LangChaini mooduli pakutavat agenti. Selles juhendis on käsitletud ReActi loogika rakendamist, kasutades agenti LangChainis.