Hvordan implementerer man ReAct-logikken ved hjælp af en agent i LangChain?

Hvordan Implementerer Man React Logikken Ved Hjaelp Af En Agent I Langchain



LangChain er rammen for opbygning af sprogmodeller og chatbots, der kan forstå og generere tekst på menneskeligt sprog. Modellens præstation er baseret på forståelsen af ​​sproget og dets kompleksitet under træningsfasen af ​​processen. Den næste fase er at generere data eller tekst i det naturlige sprog, der kan være let læseligt og forståeligt. Disse faser omtales som ' Ræsonnement ' og ' Skuespiller ” henholdsvis i Natural Language Processing-domænet.

Hurtig disposition

Dette indlæg vil demonstrere:

Hvordan implementerer man ReAct-logikken ved hjælp af en agent i LangChain?

Det ' Reagere ” er kombinationen af ​​årsags- og handlingsfaserne for at forbedre præstationen af ​​sprogmodellen som ” Vedr ' henviser til fornuft og ' Handling ” til handling. En ReAct-logik anses ofte for at være den mest optimerede til at bygge LLM'er eller chatbots til at forstå og generere tekst. Agenten er beslutningstageren, der beslutter, hvilke handlinger der skal udføres og i hvilken rækkefølge der skal udføres.







For at lære processen med at implementere ReAct-logikken ved hjælp af en agent i LangChain, skal du blot gennemgå følgende guide:



Trin 1: Installation af Frameworks

Først og fremmest skal du installere LangChain for at komme i gang med processen med at implementere ReAct-logik:



pip installer langkæde





Installer google-search-results-modulet for at få afhængighederne til at bygge den agent, der kan hente søgeresultaterne fra google:

pip installer openai google-search-resultater



Installer derefter OpenAI-modulerne, som kan bruges til at indlæse de store sprogmodeller eller LLM'er for at implementere ReAct-logik:

pip installer openai

Når du har fået alle de nødvendige moduler, skal du blot konfigurere OpenAI miljø til opbygning af LLM og SerpAPI miljø for at bruge agenten i modellen:

importere du

importere getpass

du . rundt regnet [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'OpenAI API-nøgle:' )

du . rundt regnet [ 'SERPAPI_API_KEY' ] = getpass . getpass ( 'Serpapi API-nøgle:' )

Trin 2: Indlæser sprogmodel

Det næste trin er at indlæse sprogmodellerne ved at importere de nødvendige biblioteker ved hjælp af LangChain-rammerne:

fra langkæde. agenter importere indlæs_værktøjer

fra langkæde. agenter importere initialize_agent

fra langkæde. agenter importere AgentType

fra langkæde. llms importere OpenAI

Brug OpenAI()-metoden til at bygge sprogmodellen (llm) og konfigurer derefter værktøjerne til agenterne ved hjælp af SerpAPI:

llm = OpenAI ( temperatur = 0 )

værktøjer = indlæs_værktøjer ( [ 'serpapi' , 'llm-matematik' ] , llm = llm )

Metode 1: Brug af LandChain Expression Language

LCEL er processen med at integrere eller komponere kæder sammen, mens man bygger sprogmodellerne i LangChain. Start processen ved at installere LangChainHub for at få dens afhængigheder til at bygge og bruge ReAct-logik med agenter i LangChain:

pip installer langchainhub

Import af bibliotekerne fra LangChain som ReActSingleInputOutputParser for at bygge modellen, der kan bruge ReAct-modellen:

fra langkæde. værktøjer . gengive importere render_text_description

fra langkæde. agenter . output_parsere importere ReActSingleInputOutputParser

fra langkæde. agenter . format_scratchpad importere format_log_to_str

fra langkæde importere nav

Indlæs sprogmodellen for at designe ReAct-logikken ved hjælp af pull()-metoden og gem den i promptvariablen. Definer nogle værktøjer, der kan bruges til at implementere logikken på det indlæste datasæt for at implementere dets arbejde med en agent:

hurtig = nav. trække ( 'hwchase17/react' )

hurtig = hurtig. delvis (

værktøjer = render_text_description ( værktøjer ) ,

værktøjsnavne = ', ' . tilslutte ( [ t. navn til t i værktøjer ] ) ,

)

Bygningsagent

Konfigurer nu agenten og dens værktøjer ved at integrere den med sprogmodellen indlæst i trin 2 i denne vejledning:

llm_with_stop = llm. binde ( hold op = [ ' \n Observation' ] )

Definer en agentvariabel for at give argumenter og værktøjer til at konfigurere agenten, der forklarer dens funktion. De tidligere konfigurerede dele som llm_with_stop og ReActSingleInputOutputParser()-metoden integreres med agenten:

agent = {

'input' : lambda x: x [ 'input' ] ,

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

} | prompt | llm_med_stop | ReActSingleInputOutputParser ( )

Hent AgentExecutor-biblioteket og konfigurer dets metode ved hjælp af argumenter som agent, værktøjer og verbose for at få et mere læsbart output:

fra langkæde. agenter importere AgentExecutor

agent_executor = AgentExecutor ( agent = agent , værktøjer = værktøjer , ordrig = Rigtigt )

Kald metoden agent_executor() med strengforespørgslen som input, som vil udløse agenten til at udtrække output:

agent_executor. påberåbe sig ( { 'input' : 'Hvem er Leo DiCaprios kæreste' } )

Produktion

Følgende skærmbillede viser, at agenten har udtrukket informationen ved hjælp af ReAct-logikken og genereret teksten i naturligt sprog:

Metode 2: Brug af ZeroShotReactAgent

ReAct-logikken kan også implementeres ved at bruge en anden agent som ZeroShotReactAgent, mens du konfigurerer agent_executor-variablen. Derefter skal du blot kalde agent_executor-variablen med spørgsmålet som input for at kalde agenten:

agent_executor = initialize_agent ( værktøjer , llm , agent = AgentType. ZERO_SHOT_REACT_DESCRIPTION , ordrig = Rigtigt )

agent_executor. påberåbe sig ( { 'input' : 'Hvad er Leo DiCaprios kærestealder hævet til 0,21-styrken' } )

Produktion

Agenten har udtrukket oplysningerne baseret på det input, der blev spurgt, mens han påkaldte agent_executor:

Metode 3: Brug af chatmodeller

En anden proces, der kan bruges til at implementere ReAct-logikken ved at bruge chatmodellerne efter import af ChatOpenAI-biblioteket:

fra langkæde. chat_modeller importere ChatOpenAI

Byg chatmodellen ved hjælp af metoden ChatOpenAI() med værdien af ​​temperatur lig med 0, der kan kontrollere tilfældighederne i modellens resultater:

chat_model = ChatOpenAI ( temperatur = 0 )

Indlæs modellen, som brugeren kan implementere ReAct-logikken på for at gemme den i promptvariablen, og konfigurer de værktøjer, der skal bruges i processen:

hurtig = nav. trække ( 'hwchase17/react-json' )

hurtig = hurtig. delvis (

værktøjer = render_text_description ( værktøjer ) ,

værktøjsnavne = ', ' . tilslutte ( [ t. navn til t i værktøjer ] ) ,

)

Opbygning af agenten

Brug chatmodellen til at gemme observationerne eller de seneste beskeder, når modellen holder op med at generere teksten:

chat_model_med_stop = chat_model. binde ( hold op = [ ' \n Observation' ] )

Hent ReActJsonSingleInputOutputParser-biblioteket til at implementere ReAct-logikken og producere resultaterne i JSON-formatet:

fra langkæde. agenter . output_parsere importere ReActJsonSingleInputOutputParser

Byg og konfigurer agenten ved hjælp af chat_model-variablen og -metoden til at producere resultater ved at kalde agenten:

agent = {

'input' : lambda x: x [ 'input' ] ,

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

} | prompt | chat_model_with_stop | ReActJsonSingleInputOutputParser ( )

Konfigurer agent_executor og kør den for at få resultaterne baseret på forespørgslen i inputvariablen:

agent_executor = AgentExecutor ( agent = agent , værktøjer = værktøjer , ordrig = Rigtigt )

agent_executor. påberåbe sig ( { 'input' : 'Hvad er Leo DiCaprios kærestealder hævet til 0,21-styrken' } )

Produktion

Agenten har udtrukket output som vist på følgende skærmbillede:

Metode 4: Brug af ChatZeroShotReactAgent

Ændring af værdien af ​​agenten kan også bruges til at implementere ReAct-logikken med LangChain-rammeværket:

agent = initialize_agent ( værktøjer , chat_model , agent = AgentType. CHAT_ZERO_SHOT_REACT_DESCRIPTION , ordrig = Rigtigt )

agent. løb ( 'Hvad er Leo DiCaprios kærestealder hævet til 0,21-styrken' )

Produktion

Outputstrukturen indeholder detaljerede oplysninger om agentens funktion fra de tokens og modellen, der bruges til at udtrække informationen:

Det handler om processen med at implementere ReAct-logikken ved hjælp af en agent i LangChain.

Konklusion

For at implementere ReAct-logikken med en agent ved hjælp af LangChain-rammeværket, skal du installere moduler som google-search-results for at konfigurere agenten. Derefter skal du konfigurere miljøet ved hjælp af OpenAI- og SerpAPI-legitimationsoplysningerne fra deres konti for at begynde at bruge modellen. ReAct-logikken kan implementeres ved hjælp af LCEL- og chatmodellerne med flere agenter, der tilbydes af LangChain-modulet. Denne guide har uddybet implementeringen af ​​ReAct-logikken ved hjælp af agenten i LangChain.