Hurtig disposition
Dette indlæg vil demonstrere:
- Sådan implementeres ReAct-logikken ved hjælp af en agent i LangChain
- Installation af Frameworks
- Indlæser sprogmodel
- Metode 1: Brug af LandChain Expression Language
- Bygningsagent
- Metode 2: Brug af ZeroShotReactAgent
- Metode 3: Brug af chatmodeller
- Opbygning af agenten
- Metode 4: Brug af ChatZeroShotReactAgent
- Konklusion
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 duimportere 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øjerfra 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_descriptionfra 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 AgentExecutoragent_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 ChatOpenAIByg 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 ReActJsonSingleInputOutputParserByg 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.