Kiire ülevaade
See postitus näitab:
- Kuidas rakendada ReAct-loogikat, kasutades agenti LangChainis
- Raamistiku installimine
- Keelemudeli laadimine
- 1. meetod: LandChaini väljenduskeele kasutamine
- Ehitusagent
- 2. meetod: ZeroShotReactAgenti kasutamine
- 3. meetod: vestlusmudelite kasutamine
- Agendi ehitamine
- 4. meetod: ChatZeroShotReactAgenti kasutamine
- Järeldus
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 sinaimportida 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_toolsalates 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_descriptionalates 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 Executoragent_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 ChatOpenAIEhitage 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 ReActJsonSingleInputOutputParserEhitage 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.