Kako implementirati ReAct logiku pomoću agenta u LangChainu?

Kako Implementirati React Logiku Pomocu Agenta U Langchainu



LangChain je okvir za izgradnju jezičnih modela i chatbota koji mogu razumjeti i generirati tekst na ljudskom jeziku. Izvedba modela temelji se na razumijevanju jezika i njegovih složenosti tijekom faze obuke procesa. Sljedeća faza je generiranje podataka ili teksta na prirodnom jeziku koji može biti lako čitljiv i razumljiv. Ove faze se nazivaju ' Rasuđivanje ' i ' gluma ” odnosno u domeni obrade prirodnog jezika.

Brzi pregled

Ovaj post će pokazati:

Kako implementirati ReAct logiku pomoću agenta u LangChainu?

' Reagirati ” kombinacija je faza razloga i radnje za poboljšanje izvedbe jezičnog modela kao “ Ponovno “ odnosi se na razum i “ djelovati ” na akciju. ReAct logika često se smatra najoptimiziranijom za izgradnju LLM-ova ili chatbota za razumijevanje i generiranje teksta. Agent je donositelj odluka koji odlučuje koje radnje treba izvršiti i kojim redoslijedom će se izvršiti.







Da biste naučili proces implementacije ReAct logike pomoću agenta u LangChainu, jednostavno prođite kroz sljedeći vodič:



Korak 1: Instalacija Frameworks

Prije svega, instalirajte LangChain da biste započeli s procesom implementacije ReAct logike:



pip instalirati langchain





Instalirajte modul google-search-results da dobijete ovisnosti za izgradnju agenta koji može dobiti rezultate pretraživanja s googlea:

pip instaliraj openai google-rezultate pretraživanja



Nakon toga instalirajte OpenAI module koji se mogu koristiti za učitavanje velikih jezičnih modela ili LLM-ova za implementaciju ReAct logike:

pip instaliraj openai

Nakon dobivanja svih potrebnih modula, jednostavno postavite OpenAI okruženje za izgradnju LLM i SerpAPI okruženje za korištenje agenta u modelu:

uvoz vas

uvoz getpass

vas . približno [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'OpenAI API ključ:' )

vas . približno [ 'SERPAPI_API_KEY' ] = getpass . getpass ( 'Serpapi API ključ:' )

Korak 2: Učitavanje jezičnog modela

Sljedeći korak je učitavanje jezičnih modela uvozom potrebnih biblioteka pomoću okvira LangChain:

iz langchain. agenti uvoz učitavanje_alata

iz langchain. agenti uvoz inicijalizirati_agent

iz langchain. agenti uvoz AgentType

iz langchain. llms uvoz OpenAI

Upotrijebite metodu OpenAI() za izgradnju jezičnog modela (llm), a zatim konfigurirajte alate za agente koristeći SerpAPI:

llm = OpenAI ( temperatura = 0 )

alata = učitavanje_alata ( [ 'serpapi' , 'llm-matematika' ] , llm = llm )

Metoda 1: Korištenje LandChain Expression Language

LCEL je proces integracije ili sastavljanja lanaca zajedno tijekom izgradnje jezičnih modela u LangChainu. Započnite proces instaliranjem LangChainHuba da dobijete njegove ovisnosti za izgradnju i korištenje ReAct logike s agentima u LangChainu:

pip instaliraj langchainhub

Uvoz biblioteka iz LangChaina kao što je ReActSingleInputOutputParser za izgradnju modela koji može koristiti ReAct model:

iz langchain. alata . prikazati uvoz render_text_description

iz langchain. agenti . izlazni_parseri uvoz ReActSingleInputOutputParser

iz langchain. agenti . format_scratchpad uvoz format_log_u_str

iz langchain uvoz središte

Učitajte jezični model za dizajn ReAct logike pomoću metode pull() i pohranite ga u prompt varijablu. Definirajte neke alate koji se mogu koristiti za implementaciju logike na učitanom skupu podataka za implementaciju njegovog rada s agentom:

potaknuti = središte. Vuci ( 'hwchase17/react' )

potaknuti = potaknuti. djelomičan (

alata = render_text_description ( alata ) ,

imena_alata = ', ' . pridružiti ( [ t. Ime za t u alata ] ) ,

)

Agent za izgradnju

Sada konfigurirajte agenta i njegove alate integracijom s jezičnim modelom učitanim u 2. koraku ovog vodiča:

llm_sa_stopom = llm. vezati ( Stop = [ ' \n promatranje' ] )

Definirajte varijablu agenta kako biste pružili argumente i alate za konfiguraciju agenta koji objašnjavaju njegov rad. Prethodno konfigurirani dijelovi poput metode llm_with_stop i ReActSingleInputOutputParser() integriraju se s agentom:

agent = {

'ulazni' : lambda x: x [ 'ulazni' ] ,

'agent_scratchpad' : lambda x: format_log_to_str ( x [ 'međukoraci' ] )

} | brz | llm_sa_stopom | ReActSingleInputOutputParser ( )

Nabavite biblioteku AgentExecutor i konfigurirajte njezinu metodu pomoću argumenata kao što su agent, tools i verbose kako biste dobili čitljiviji izlaz:

iz langchain. agenti uvoz AgentIzvršitelj

agent_izvršitelj = AgentIzvršitelj ( agent = agent , alata = alata , opširno = Pravi )

Pozovite metodu agent_executor() sa string upitom kao ulazom koji će pokrenuti agenta da izdvoji izlaz:

agent_izvršitelj. prizivati ( { 'ulazni' : 'Tko je djevojka Lea DiCaprija' } )

Izlaz

Sljedeća snimka zaslona prikazuje da je agent izdvojio informacije pomoću logike ReAct i generirao tekst na prirodnom jeziku:

Metoda 2: Korištenje ZeroShotReactAgent

Logika ReAct također se može implementirati korištenjem drugog agenta kao što je ZeroShotReactAgent tijekom konfiguriranja varijable agent_executor. Nakon toga jednostavno pozovite varijablu agent_executor s pitanjem kao ulazom za pozivanje agenta:

agent_izvršitelj = inicijalizirati_agent ( alata , llm , agent = AgentType. ZERO_SHOT_REACT_DESCRIPTION , opširno = Pravi )

agent_izvršitelj. zazivati ( { 'ulazni' : 'Koja je dob djevojke Lea DiCaprija podignuta na 0,21 stupanj' } )

Izlaz

Agent je izdvojio informacije na temelju unosa zatraženog prilikom pozivanja agent_executor:

Metoda 3: Korištenje modela razgovora

Drugi proces koji se može koristiti za implementaciju ReAct logike korištenjem modela chata nakon uvoza ChatOpenAI biblioteke:

iz langchain. chat_modeli uvoz ChatOpenAI

Izgradite model chata pomoću metode ChatOpenAI() s vrijednošću temperature jednakom 0 koja može kontrolirati slučajnost u rezultatima modela:

chat_model = ChatOpenAI ( temperatura = 0 )

Učitajte model na kojem korisnik može implementirati ReAct logiku kako bi ga pohranio u prompt varijablu i konfigurirajte alate koji će se koristiti u procesu:

potaknuti = središte. Vuci ( 'hwchase17/react-json' )

potaknuti = potaknuti. djelomičan (

alata = render_text_description ( alata ) ,

imena_alata = ', ' . pridružiti ( [ t. Ime za t u alata ] ) ,

)

Izgradnja agenta

Koristite model chata za pohranjivanje zapažanja ili nedavnih poruka kada model prestane generirati tekst:

chat_model_with_stop = chat_model. vezati ( Stop = [ ' \n promatranje' ] )

Nabavite biblioteku ReActJsonSingleInputOutputParser za implementaciju ReAct logike i proizvodnju rezultata u JSON formatu:

iz langchain. agenti . izlazni_parseri uvoz ReActJsonSingleInputOutputParser

Izgradite i konfigurirajte agenta pomoću varijable chat_model i metode za dobivanje rezultata pozivanjem agenta:

agent = {

'ulazni' : lambda x: x [ 'ulazni' ] ,

'agent_scratchpad' : lambda x: format_log_to_str ( x [ 'međukoraci' ] )

} | brz | chat_model_with_stop | ReActJsonSingleInputOutputParser ( )

Konfigurirajte agent_executor i pokrenite ga da biste dobili rezultate na temelju upita navedenog u ulaznoj varijabli:

agent_izvršitelj = AgentIzvršitelj ( agent = agent , alata = alata , opširno = Pravi )

agent_izvršitelj. zazivati ( { 'ulazni' : 'Koja je dob djevojke Lea DiCaprija podignuta na 0,21 stupanj' } )

Izlaz

Agent je izdvojio izlaz kao što je prikazano na sljedećoj snimci zaslona:

Metoda 4: Korištenje ChatZeroShotReactAgent

Promjena vrijednosti agenta također se može koristiti za implementaciju ReAct logike s okvirom LangChain:

agent = inicijalizirati_agent ( alata , chat_model , agent = AgentType. CHAT_ZERO_SHOT_REACT_DESCRIPTION , opširno = Pravi )

agent. trčanje ( 'Koja je dob djevojke Lea DiCaprija podignuta na 0,21 stupanj' )

Izlaz

Izlazna struktura sadrži detaljne informacije o radu agenta iz tokena i modela korištenog za izdvajanje informacija:

To je sve o procesu implementacije ReAct logike pomoću agenta u LangChainu.

Zaključak

Za implementaciju ReAct logike s agentom koji koristi okvir LangChain, instalirajte module kao što su google-search-results za konfiguraciju agenta. Nakon toga postavite okruženje pomoću vjerodajnica OpenAI i SerpAPI s njihovih računa kako biste počeli koristiti model. ReAct logika može se implementirati korištenjem LCEL i modela chata s više agenata koje nudi modul LangChain. Ovaj vodič razradio je implementaciju ReAct logike pomoću agenta u LangChainu.