Kako implementirati logiko ReAct z uporabo agenta v LangChainu?

Kako Implementirati Logiko React Z Uporabo Agenta V Langchainu



LangChain je ogrodje za gradnjo jezikovnih modelov in klepetalnih robotov, ki lahko razumejo in ustvarjajo besedilo v človeškem jeziku. Delovanje modela temelji na razumevanju jezika in njegovih zapletenosti med fazo usposabljanja procesa. Naslednja faza je generiranje podatkov ali besedila v naravnem jeziku, ki je lahko berljiv in razumljiv. Te faze se imenujejo ' Utemeljitev « in » Igrati ” v domeni obdelave naravnega jezika.

Hitri oris

Ta objava bo pokazala:

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 ti

uvoz 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_tools

od 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_description

od 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 AgentExecutor

agent_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 ChatOpenAI

Zgradite 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 ReActJsonSingleInputOutputParser

Zgradite 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.