Rychlý přehled
Tento příspěvek ukáže:
- Jak implementovat logiku ReAct pomocí agenta v LangChain
- Instalace frameworků
- Načítání jazykového modelu
- Metoda 1: Použití jazyka LandChain Expression Language
- Stavební agent
- Metoda 2: Použití ZeroShotReactAgent
- Metoda 3: Použití modelů konverzace
- Budování agenta
- Metoda 4: Použití ChatZeroShotReactAgent
- Závěr
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 vyimport 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_toolsz 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_descriptionz 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 AgentExecutoragent_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 ChatOpenAISestavte 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 ReActJsonSingleInputOutputParserSestavte 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.