Jak implementovat logiku ReAct pomocí agenta v LangChain?

Jak Implementovat Logiku React Pomoci Agenta V Langchain



LangChain je rámec pro vytváření jazykových modelů a chatbotů, kteří dokážou porozumět a generovat text v lidské řeči. Výkon modelu je založen na porozumění jazyku a jeho složitosti během tréninkové fáze procesu. Další fází je generování dat nebo textu v přirozeném jazyce, který může být snadno čitelný a srozumitelný. Tyto fáze se označují jako „ Uvažování ' a ' Herectví ” respektive v doméně Zpracování přirozeného jazyka.

Rychlý přehled

Tento příspěvek ukáže:

Jak implementovat logiku ReAct pomocí agenta v LangChain?

' Reagovat “ je kombinací fází Reason a Action pro zvýšení výkonu jazykového modelu jako „ Re “ odkazuje na rozum a “ Akt “k akci. Logika ReAct je často považována za nejoptimalizovanější pro vytváření LLM nebo chatbotů pro porozumění a generování textu. Agent je osoba s rozhodovací pravomocí, která rozhoduje o tom, jaké akce se mají provést a v jakém pořadí budou provedeny.







Chcete-li se naučit proces implementace logiky ReAct pomocí agenta v LangChain, jednoduše si projděte následující průvodce:



Krok 1: Instalace frameworků

Nejprve nainstalujte LangChain, abyste mohli začít s procesem implementace logiky ReAct:



pip install langchain





Nainstalujte modul google-search-results, abyste získali závislosti pro vytvoření agenta, který může získat výsledky vyhledávání z google:

pip install openai google-search-results



Poté nainstalujte moduly OpenAI, které lze použít k načtení velkých jazykových modelů nebo LLM k implementaci logiky ReAct:

pip install openai

Po získání všech požadovaných modulů jednoduše nastavte Prostředí OpenAI pro budování LLM a Prostředí SerpAPI pro použití agenta v modelu:

import vy

import getpass

vy . přibližně [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'Klíč OpenAI API:' )

vy . přibližně [ 'SERPAPI_API_KEY' ] = getpass . getpass ( 'Serpapi API Key:' )

Krok 2: Načtení jazykového modelu

Dalším krokem je načtení jazykových modelů importem požadovaných knihoven pomocí rámce LangChain:

z langchain. agenti import load_tools

z langchain. agenti import inicializovat_agenta

z langchain. agenti import Typ agenta

z langchain. llms import OpenAI

Použijte metodu OpenAI() k vytvoření jazykového modelu (llm) a poté nakonfigurujte nástroje pro agenty pomocí SerpAPI:

llm = OpenAI ( teplota = 0 )

nástroje = load_tools ( [ 'serpapi' , 'llm-matematika' ] , llm = llm )

Metoda 1: Použití jazyka LandChain Expression Language

LCEL je proces integrace nebo skládání řetězců dohromady při vytváření jazykových modelů v LangChain. Začněte proces instalací LangChainHub, abyste získali jeho závislosti pro vytváření a používání logiky ReAct s agenty v LangChain:

pip nainstalujte langchainhub

Import knihoven z LangChain jako ReActSingleInputOutputParser k vytvoření modelu, který může používat model ReAct:

z langchain. nástroje . poskytnout import render_text_description

z langchain. agenti . výstupní_analyzátory import ReActSingleInputOutputParser

z langchain. agenti . format_scratchpad import format_log_to_str

z langchain import rozbočovač

Načtěte jazykový model pro návrh logiky ReAct pomocí metody pull() a uložte jej do proměnné prompt. Definujte některé nástroje, které lze použít k implementaci logiky na načtené datové sadě pro implementaci její práce s agentem:

výzva = rozbočovač. SEM ( 'hwchase17/react' )

výzva = výzva. částečný (

nástroje = render_text_description ( nástroje ) ,

názvy_nástrojů = ',' . připojit ( [ t. název pro t v nástroje ] ) ,

)

Stavební agent

Nyní nakonfigurujte agenta a jeho nástroje integrací s jazykovým modelem načteným v kroku 2 této příručky:

llm_with_stop = llm. svázat ( stop = [ ' \n Pozorování' ] )

Definujte proměnnou agenta, která poskytuje argumenty a nástroje pro konfiguraci agenta, které vysvětlují jeho fungování. Dříve nakonfigurované části jako llm_with_stop a metoda ReActSingleInputOutputParser() jsou integrovány s agentem:

činidlo = {

'vstup' : lambda x: x [ 'vstup' ] ,

'agent_scratchpad' : lambda x: format_log_to_str ( X [ 'intermediate_steps' ] )

} | výzva | llm_with_stop | ReActSingleInputOutputParser ( )

Získejte knihovnu AgentExecutor a nakonfigurujte její metodu pomocí argumentů, jako je agent, nástroje a podrobné informace, abyste získali čitelnější výstup:

z langchain. agenti import AgentExecutor

agent_exekutor = AgentExecutor ( činidlo = činidlo , nástroje = nástroje , podrobný = Skutečný )

Vyvolejte metodu agent_executor() s řetězcovým dotazem jako vstupem, který spustí agenta, aby extrahoval výstup:

agent_exekutor. vyvolat ( { 'vstup' : „Kdo je přítelkyně Lea DiCapria“ } )

Výstup

Následující snímek obrazovky ukazuje, že agent extrahoval informace pomocí logiky ReAct a vygeneroval text v přirozeném jazyce:

Metoda 2: Použití ZeroShotReactAgent

Logiku ReAct lze také implementovat pomocí jiného agenta, jako je ZeroShotReactAgent, při konfiguraci proměnné agent_executor. Poté jednoduše zavolejte proměnnou agent_executor s otázkou jako vstupem pro vyvolání agenta:

agent_exekutor = inicializovat_agenta ( nástroje , llm , činidlo = Typ agenta. ZERO_SHOT_REACT_DESCRIPTION , podrobný = Skutečný )

agent_exekutor. vyvolat ( { 'vstup' : 'Jaký je věk přítelkyně Leo DiCaprio zvýšen na 0,21' } )

Výstup

Agent extrahoval informace na základě vstupu dotazovaného při vyvolání agent_executor:

Metoda 3: Použití modelů konverzace

Další proces, který lze použít k implementaci logiky ReAct pomocí modelů chatu po importu knihovny ChatOpenAI:

z langchain. chat_models import ChatOpenAI

Sestavte model chatu pomocí metody ChatOpenAI() s hodnotou teploty rovnou 0, která může řídit náhodnost výsledků modelu:

chat_model = ChatOpenAI ( teplota = 0 )

Načtěte model, na kterém může uživatel implementovat logiku ReAct, uložte ji do proměnné výzvy a nakonfigurujte nástroje, které se mají v procesu použít:

výzva = rozbočovač. SEM ( 'hwchase17/react-json' )

výzva = výzva. částečný (

nástroje = render_text_description ( nástroje ) ,

názvy_nástrojů = ',' . připojit ( [ t. název pro t v nástroje ] ) ,

)

Budování agenta

Použijte model chatu k uložení pozorování nebo nedávných zpráv, když model přestane generovat text:

chat_model_with_stop = chat_model. svázat ( stop = [ ' \n Pozorování' ] )

Získejte knihovnu ReActJsonSingleInputOutputParser pro implementaci logiky ReAct a vytváření výsledků ve formátu JSON:

z langchain. agenti . výstupní_analyzátory import ReActJsonSingleInputOutputParser

Sestavte a nakonfigurujte agenta pomocí proměnné a metody chat_model, abyste získali výsledky voláním agenta:

činidlo = {

'vstup' : lambda x: x [ 'vstup' ] ,

'agent_scratchpad' : lambda x: format_log_to_str ( X [ 'intermediate_steps' ] )

} | výzva | chat_model_with_stop | ReActJsonSingleInputOutputParser ( )

Nakonfigurujte agent_executor a spusťte jej, abyste získali výsledky na základě dotazu poskytnutého ve vstupní proměnné:

agent_exekutor = AgentExecutor ( činidlo = činidlo , nástroje = nástroje , podrobný = Skutečný )

agent_exekutor. vyvolat ( { 'vstup' : 'Jaký je věk přítelkyně Leo DiCaprio zvýšen na 0,21' } )

Výstup

Agent extrahoval výstup, jak je zobrazeno na následujícím snímku obrazovky:

Metoda 4: Použití ChatZeroShotReactAgent

Změnu hodnoty agenta lze také použít k implementaci logiky ReAct s rámcem LangChain:

činidlo = inicializovat_agenta ( nástroje , chat_model , činidlo = Typ agenta. CHAT_ZERO_SHOT_REACT_DESCRIPTION , podrobný = Skutečný )

činidlo. běh ( 'Jaký je věk přítelkyně Leo DiCaprio zvýšen na 0,21' )

Výstup

Výstupní struktura obsahuje podrobné informace o práci agenta z tokenů a modelu použitého k extrakci informací:

To je vše o procesu implementace logiky ReAct pomocí agenta v LangChain.

Závěr

Chcete-li implementovat logiku ReAct s agentem pomocí rámce LangChain, nainstalujte moduly jako google-search-results pro konfiguraci agenta. Poté nastavte prostředí pomocí přihlašovacích údajů OpenAI a SerpAPI z jejich účtů, abyste mohli začít model používat. Logiku ReAct lze implementovat pomocí LCEL a chatovacích modelů s více agenty, které nabízí modul LangChain. Tato příručka se zabývá implementací logiky ReAct pomocí agenta v LangChain.