Hitri oris
Ta objava bo pokazala:
- Kako implementirati logiko ReAct z uporabo agenta v LangChain
- Namestitev okvirjev
- Nalaganje jezikovnega modela
- 1. način: Uporaba izraznega jezika LandChain
- Gradbeni agent
- 2. način: uporaba ZeroShotReactAgent
- 3. način: Uporaba modelov klepeta
- Gradnja agenta
- 4. način: Uporaba ChatZeroShotReactAgent
- Zaključek
Kako implementirati logiko ReAct z uporabo agenta v LangChainu?
' ReAct « je kombinacija faz razloga in dejanja za izboljšanje učinkovitosti jezikovnega modela kot » Re ' se nanaša na razum in ' dejanje ” k dejanjem. Logika ReAct se pogosto šteje za najbolj optimizirano za izdelavo LLM-jev ali chatbotov za razumevanje in ustvarjanje besedila. Agent je odločevalec, ki se odloči, katera dejanja bo izvedel in v kakšnem vrstnem redu bo izveden.
Če se želite naučiti postopka izvajanja logike ReAct z uporabo agenta v LangChainu, preprosto preglejte ta vodnik:
1. korak: Namestitev ogrodij
Najprej namestite LangChain, da začnete s postopkom izvajanja logike ReAct:
pip namestite langchain
Namestite modul google-search-results, da pridobite odvisnosti za gradnjo agenta, ki lahko pridobi rezultate iskanja iz Googla:
pip namestite openai google-search-results
Po tem namestite module OpenAI, ki jih lahko uporabite za nalaganje velikih jezikovnih modelov ali LLM-jev za implementacijo logike ReAct:
pip namestite openai
Ko dobite vse zahtevane module, preprosto nastavite okolje OpenAI za gradnjo LLM in okolje SerpAPI za uporabo agenta v modelu:
uvoz tiuvoz getpass
ti . približno [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'Ključ API OpenAI:' )
ti . približno [ 'SERPAPI_API_KEY' ] = getpass . getpass ( 'Ključ API Serpapi:' )
2. korak: Nalaganje jezikovnega modela
Naslednji korak je nalaganje jezikovnih modelov z uvozom zahtevanih knjižnic z uporabo ogrodja LangChain:
od Langchain. zastopniki uvoz load_toolsod Langchain. zastopniki uvoz inicializiraj_agent
od Langchain. zastopniki uvoz AgentType
od Langchain. llms uvoz OpenAI
Uporabite metodo OpenAI(), da zgradite jezikovni model (llm) in nato konfigurirate orodja za agente z uporabo SerpAPI:
llm = OpenAI ( temperaturo = 0 )orodja = load_tools ( [ 'serpapi' , 'llm-matematika' ] , llm = llm )
1. način: Uporaba izraznega jezika LandChain
LCEL je proces integracije ali sestavljanja verig med gradnjo jezikovnih modelov v LangChain. Začnite postopek z namestitvijo LangChainHub, da dobite njegove odvisnosti za gradnjo in uporabo logike ReAct z agenti v LangChain:
pip namestite langchainhub
Uvažanje knjižnic iz LangChaina, kot je ReActSingleInputOutputParser, za izdelavo modela, ki lahko uporablja model ReAct:
od Langchain. orodja . upodabljati uvoz render_text_descriptionod Langchain. zastopniki . izhodni_razčlenjevalniki uvoz ReActSingleInputOutputParser
od Langchain. zastopniki . format_scratchpad uvoz format_log_to_str
od Langchain uvoz vozlišče
Naložite jezikovni model za oblikovanje logike ReAct z uporabo metode pull() in ga shranite v spremenljivko poziva. Določite nekaj orodij, ki jih je mogoče uporabiti za implementacijo logike na naloženem nizu podatkov za implementacijo njegovega dela s agentom:
poziv = vozlišče. potegni ( 'hwchase17/react' )poziv = poziv. delno (
orodja = render_text_description ( orodja ) ,
imena_orodij = ', ' . pridruži se ( [ t. ime za t v orodja ] ) ,
)
Gradbeni agent
Zdaj konfigurirajte posrednika in njegova orodja tako, da jih integrirate z jezikovnim modelom, naloženim v 2. koraku tega vodnika:
llm_with_stop = llm. vezati ( stop = [ ' \n Opazovanje' ] )Definirajte spremenljivko agenta, da zagotovite argumente in orodja za konfiguracijo agenta, ki pojasnjujejo njegovo delovanje. Prej konfigurirani deli, kot sta llm_with_stop in metoda ReActSingleInputOutputParser(), se integrirajo z agentom:
agent = {'vnos' : lambda x: x [ 'vnos' ] ,
'agent_scratchpad' : lambda x: format_log_to_str ( x [ 'vmesni_koraki' ] )
} | hitro | llm_z_ustavitvijo | ReActSingleInputOutputParser ( )
Pridobite knjižnico AgentExecutor in konfigurirajte njeno metodo z uporabo argumentov, kot so agent, tools in verbose, da dobite bolj berljiv rezultat:
od Langchain. zastopniki uvoz AgentExecutoragent_izvršitelj = AgentExecutor ( agent = agent , orodja = orodja , verbose = Prav )
Prikličite metodo agent_executor() s poizvedbo niza kot vhodom, ki bo agentu sprožil ekstrahiranje izhoda:
agent_izvršitelj. priklicati ( { 'vnos' : 'Kdo je dekle Lea DiCapria' } )Izhod
Naslednji posnetek zaslona prikazuje, da je agent pridobil informacije z logiko ReAct in ustvaril besedilo v naravnem jeziku:
2. način: uporaba ZeroShotReactAgent
Logiko ReAct je mogoče implementirati tudi z uporabo drugega agenta, kot je ZeroShotReactAgent, med konfiguriranjem spremenljivke agent_executor. Po tem preprosto pokličite spremenljivko agent_executor z vprašanjem kot vhodom za priklic agenta:
agent_izvršitelj = inicializiraj_agent ( orodja , llm , agent = AgentType. ZERO_SHOT_REACT_DESCRIPTION , verbose = Prav )agent_izvršitelj. priklicati ( { 'vnos' : 'Kolikšna je starost dekleta Lea DiCapria, povečana na 0,21 potenco' } )
Izhod
Agent je pridobil informacije na podlagi vnosa, ki je bil vprašan med priklicem agent_executor:
3. način: Uporaba modelov klepeta
Drug postopek, ki ga je mogoče uporabiti za implementacijo logike ReAct z uporabo modelov klepeta po uvozu knjižnice ChatOpenAI:
od Langchain. chat_models uvoz ChatOpenAIZgradite model klepeta z metodo ChatOpenAI() z vrednostjo temperature enako 0, ki lahko nadzira naključnost v rezultatih modela:
chat_model = ChatOpenAI ( temperaturo = 0 )Naložite model, na katerem lahko uporabnik implementira logiko ReAct, da ga shranite v spremenljivko poziva in konfigurirajte orodja, ki bodo uporabljena v procesu:
poziv = vozlišče. potegni ( 'hwchase17/react-json' )poziv = poziv. delno (
orodja = render_text_description ( orodja ) ,
imena_orodij = ', ' . pridruži se ( [ t. ime za t v orodja ] ) ,
)
Gradnja agenta
Uporabite model klepeta za shranjevanje opažanj ali nedavnih sporočil, ko model preneha ustvarjati besedilo:
chat_model_with_stop = chat_model. vezati ( stop = [ ' \n Opazovanje' ] )Pridobite knjižnico ReActJsonSingleInputOutputParser za implementacijo logike ReAct in ustvarjanje rezultatov v formatu JSON:
od Langchain. zastopniki . izhodni_razčlenjevalniki uvoz ReActJsonSingleInputOutputParserZgradite in konfigurirajte agenta z uporabo spremenljivke chat_model in metode za ustvarjanje rezultatov s klicem agenta:
agent = {'vnos' : lambda x: x [ 'vnos' ] ,
'agent_scratchpad' : lambda x: format_log_to_str ( x [ 'vmesni_koraki' ] )
} | hitro | chat_model_with_stop | ReActJsonSingleInputOutputParser ( )
Konfigurirajte agent_executor in ga zaženite, da dobite rezultate na podlagi poizvedbe v vhodni spremenljivki:
agent_izvršitelj = AgentExecutor ( agent = agent , orodja = orodja , verbose = Prav )agent_izvršitelj. priklicati ( { 'vnos' : 'Kolikšna je starost dekleta Lea DiCapria, povečana na 0,21 potenco' } )
Izhod
Agent je izvlekel izhod, kot je prikazan na naslednjem posnetku zaslona:
4. način: Uporaba ChatZeroShotReactAgent
Spreminjanje vrednosti agenta se lahko uporabi tudi za implementacijo logike ReAct z ogrodjem LangChain:
agent = inicializiraj_agent ( orodja , chat_model , agent = AgentType. CHAT_ZERO_SHOT_REACT_DESCRIPTION , verbose = Prav )agent. teči ( 'Kolikšna je starost dekleta Lea DiCapria, povečana na 0,21 potenco' )
Izhod
Izhodna struktura vsebuje podrobne informacije o delovanju agenta iz žetonov in modela, uporabljenega za pridobivanje informacij:
To je vse o procesu izvajanja logike ReAct z uporabo agenta v LangChainu.
Zaključek
Če želite implementirati logiko ReAct z agentom, ki uporablja ogrodje LangChain, namestite module, kot je google-search-results, da konfigurirate agenta. Po tem nastavite okolje s poverilnicami OpenAI in SerpAPI iz njihovih računov, da začnete uporabljati model. Logiko ReAct je mogoče implementirati z uporabo LCEL in modelov klepeta z več agenti, ki jih ponuja modul LangChain. Ta priročnik je podrobneje predstavil implementacijo logike ReAct z uporabo agenta v LangChain.