Hur implementerar man ReAct-logiken med hjälp av en agent i LangChain?

Hur Implementerar Man React Logiken Med Hjalp Av En Agent I Langchain



LangChain är ramverket för att bygga språkmodeller och chatbots som kan förstå och generera text på mänskligt språk. Modellens prestanda är baserad på förståelsen av språket och dess komplexitet under utbildningsfasen av processen. Nästa fas är att generera data eller text på det naturliga språket som kan vara lätt att läsa och förstå. Dessa faser kallas ' Resonemang ' och ' Verkande ” respektive i domänen Natural Language Processing.

Snabb översikt

Det här inlägget kommer att visa:

Hur implementerar man ReAct-logiken med hjälp av en agent i LangChain?

den ' Reagera ” är kombinationen av Reason- och Action-faserna för att förbättra prestandan hos språkmodellen som ” Re ' hänvisar till förnuft och ' spela teater ” till handling. En ReAct-logik anses ofta vara den mest optimerade för att bygga LLM:er eller chatbots för att förstå och generera text. Agenten är beslutsfattaren som bestämmer vilka åtgärder som ska utföras och i vilken ordning som ska utföras.







För att lära dig processen att implementera ReAct-logiken med hjälp av en agent i LangChain, gå helt enkelt igenom följande guide:



Steg 1: Installera ramverk

Först av allt, installera LangChain för att komma igång med processen att implementera ReAct-logik:



pip installera langkedja





Installera google-search-results-modulen för att få beroenden för att bygga agenten som kan hämta sökresultaten från google:

pip installera openai google-search-results



Därefter installerar du OpenAI-modulerna som kan användas för att ladda de stora språkmodellerna eller LLM:erna för att implementera ReAct-logik:

pip installera openai

När du har fått alla nödvändiga moduler ställer du bara in OpenAI-miljö för att bygga LLM och SerpAPI miljö för att använda agenten i modellen:

importera du

importera getpass

du . ungefär [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'OpenAI API Key:' )

du . ungefär [ 'SERPAPI_API_KEY' ] = getpass . getpass ( 'Serpapi API Key:' )

Steg 2: Laddar språkmodell

Nästa steg är att ladda språkmodellerna genom att importera de nödvändiga biblioteken med hjälp av LangChain-ramverket:

från långkedja. agenter importera load_tools

från långkedja. agenter importera initialize_agent

från långkedja. agenter importera AgentType

från långkedja. llms importera OpenAI

Använd metoden OpenAI() för att bygga språkmodellen (llm) och konfigurera sedan verktygen för agenterna med SerpAPI:

llm = OpenAI ( temperatur = 0 )

verktyg = ladda_verktyg ( [ 'serpapi' , 'llm-matte' ] , llm = llm )

Metod 1: Använda LandChain Expression Language

LCEL är processen att integrera eller komponera kedjor tillsammans samtidigt som man bygger språkmodellerna i LangChain. Starta processen genom att installera LangChainHub för att få dess beroenden för att bygga och använda ReAct-logik med agenter i LangChain:

pip installera langchainhub

Importera biblioteken från LangChain som ReActSingleInputOutputParser för att bygga modellen som kan använda ReAct-modellen:

från långkedja. verktyg . framställa importera render_text_description

från långkedja. agenter . output_parsers importera ReActSingleInputOutputParser

från långkedja. agenter . format_scratchpad importera format_log_to_str

från långkedja importera nav

Ladda språkmodellen för att designa ReAct-logiken med metoden pull() och lagra den i promptvariabeln. Definiera några verktyg som kan användas för att implementera logiken på den laddade datamängden för att implementera dess arbete med en agent:

prompt = nav. dra ( 'hwchase17/react' )

prompt = prompt. partiell (

verktyg = render_text_description ( verktyg ) ,

verktygsnamn = ', ' . Ansluta sig ( [ t. namn för t i verktyg ] ) ,

)

Byggnadsagent

Konfigurera nu agenten och dess verktyg genom att integrera den med språkmodellen som laddas i steg 2 i den här guiden:

llm_with_stop = llm. binda ( sluta = [ ' \n Observation' ] )

Definiera en agentvariabel för att tillhandahålla argument och verktyg för att konfigurera agenten som förklarar dess funktion. De tidigare konfigurerade delarna som llm_with_stop och ReActSingleInputOutputParser()-metoden integreras med agenten:

ombud = {

'inmatning' : lambda x: x [ 'inmatning' ] ,

'agent_scratchpad' : lambda x: format_log_to_str ( x [ 'mellansteg' ] )

} | uppmaning | llm_with_stop | ReActSingleInputOutputParser ( )

Skaffa AgentExecutor-biblioteket och konfigurera dess metod med hjälp av argument som agent, verktyg och verbose för att få en mer läsbar utdata:

från långkedja. agenter importera AgentExecutor

agent_exekutor = AgentExecutor ( ombud = ombud , verktyg = verktyg , mångordig = Sann )

Anropa metoden agent_executor() med strängfrågan som indata som kommer att trigga agenten att extrahera utdata:

agent_exekutor. åberopa ( { 'inmatning' : 'Vem är Leo DiCaprios flickvän' } )

Produktion

Följande skärmdump visar att agenten har extraherat informationen med hjälp av ReAct-logiken och genererat texten på naturligt språk:

Metod 2: Använd ZeroShotReactAgent

ReAct-logiken kan också implementeras genom att använda en annan agent som ZeroShotReactAgent samtidigt som variabeln agent_executor konfigureras. Efter det, anropa variabeln agent_executor med frågan som indata för att anropa agenten:

agent_exekutor = initialize_agent ( verktyg , llm , ombud = AgentType. ZERO_SHOT_REACT_DESCRIPTION , mångordig = Sann )

agent_exekutor. åberopa ( { 'inmatning' : 'Vad är Leo DiCaprios flickvänålder upphöjd till 0,21' } )

Produktion

Agenten har extraherat informationen baserat på indata som frågade när han anropade agent_executor:

Metod 3: Använda chattmodeller

En annan process som kan användas för att implementera ReAct-logiken genom att använda chattmodellerna efter import av ChatOpenAI-biblioteket:

från långkedja. chat_modeller importera ChatOpenAI

Bygg chattmodellen med metoden ChatOpenAI() med värdet på temperaturen lika med 0 som kan styra slumpen i resultaten av modellen:

chat_model = ChatOpenAI ( temperatur = 0 )

Ladda modellen på vilken användaren kan implementera ReAct-logiken för att lagra den i promptvariabeln och konfigurera verktygen som ska användas i processen:

prompt = nav. dra ( 'hwchase17/react-json' )

prompt = prompt. partiell (

verktyg = render_text_description ( verktyg ) ,

verktygsnamn = ', ' . Ansluta sig ( [ t. namn för t i verktyg ] ) ,

)

Bygger agenten

Använd chattmodellen för att lagra observationerna eller de senaste meddelandena när modellen slutar generera texten:

chattmodell_med_stopp = chat_model. binda ( sluta = [ ' \n Observation' ] )

Skaffa ReActJsonSingleInputOutputParser-biblioteket för att implementera ReAct-logiken och producera resultaten i JSON-formatet:

från långkedja. agenter . output_parsers importera ReActJsonSingleInputOutputParser

Bygg och konfigurera agenten med chat_model-variabeln och metoden för att producera resultat genom att anropa agenten:

ombud = {

'inmatning' : lambda x: x [ 'inmatning' ] ,

'agent_scratchpad' : lambda x: format_log_to_str ( x [ 'mellansteg' ] )

} | uppmaning | chat_model_with_stop | ReActJsonSingleInputOutputParser ( )

Konfigurera agent_executor och kör den för att få resultaten baserat på frågan i indatavariabeln:

agent_exekutor = AgentExecutor ( ombud = ombud , verktyg = verktyg , mångordig = Sann )

agent_exekutor. åberopa ( { 'inmatning' : 'Vad är Leo DiCaprios flickvänålder upphöjd till 0,21' } )

Produktion

Agenten har extraherat utdata som visas i följande skärmdump:

Metod 4: Använd ChatZeroShotReactAgent

Att ändra värdet på agenten kan också användas för att implementera ReAct-logiken med LangChain-ramverket:

ombud = initialize_agent ( verktyg , chat_model , ombud = AgentType. CHAT_ZERO_SHOT_REACT_DESCRIPTION , mångordig = Sann )

ombud. springa ( 'Vad är Leo DiCaprios flickvänålder upphöjd till 0,21' )

Produktion

Utdatastrukturen innehåller detaljerad information om hur agenten fungerar från tokens och modellen som används för att extrahera informationen:

Det handlar om processen att implementera ReAct-logiken med hjälp av en agent i LangChain.

Slutsats

För att implementera ReAct-logiken med en agent som använder LangChain-ramverket, installera moduler som google-search-results för att konfigurera agenten. Efter det ställer du in miljön med OpenAI- och SerpAPI-uppgifterna från deras konton för att börja använda modellen. ReAct-logiken kan implementeras med hjälp av LCEL- och chattmodellerna med flera agenter som erbjuds av LangChain-modulen. Den här guiden har utvecklat implementeringen av ReAct-logiken med hjälp av agenten i LangChain.