Brzi pregled
Ovaj post će pokazati:
- Kako implementirati ReAct logiku pomoću agenta u LangChainu
- Instalacija Frameworks
- Učitavanje jezičnog modela
- Metoda 1: Korištenje LandChain Expression Language
- Agent za izgradnju
- Metoda 2: Korištenje ZeroShotReactAgent
- Metoda 3: Korištenje modela razgovora
- Izgradnja agenta
- Metoda 4: Korištenje ChatZeroShotReactAgent
- Zaključak
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 vasuvoz 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_alataiz 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_descriptioniz 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šiteljagent_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 ChatOpenAIIzgradite 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 ReActJsonSingleInputOutputParserIzgradite 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.