Hogyan valósítsuk meg a ReAct logikát ügynök használatával a LangChainben?

Hogyan Valositsuk Meg A React Logikat Ugynok Hasznalataval A Langchainben



A LangChain olyan nyelvi modellek és chatbotok felépítésének keretrendszere, amelyek képesek megérteni és létrehozni az emberi nyelvű szöveget. A modell teljesítménye a nyelv és annak összetettségeinek megértésén alapul a folyamat képzési szakaszában. A következő fázis az adatok vagy szövegek előállítása természetes nyelven, amely könnyen olvasható és érthető. Ezeket a fázisokat ' Érvelés ” és „ Ható ”, illetve a Natural Language Processing tartományban.

Gyors vázlat

Ez a bejegyzés bemutatja:

Hogyan valósítsuk meg a ReAct logikát ügynök használatával a LangChainben?

A ' Reagál ” az Ok és a Cselekvés fázis kombinációja a nyelvi modell teljesítményének javítása érdekében, mint „ Újra ' az értelemre utal és a ' törvény ” cselekvésre. A ReAct logikát gyakran tartják a leginkább optimalizáltnak az LLM-ek vagy chatbotok felépítéséhez a szöveg megértéséhez és generálásához. Az ügynök a döntéshozó, aki eldönti, hogy mely műveleteket és milyen sorrendben hajtsa végre.







A ReAct logika LangChain ügynök segítségével történő megvalósításának folyamatának megismeréséhez egyszerűen kövesse az alábbi útmutatót:



1. lépés: Keretrendszerek telepítése

Először is telepítse a LangChaint a ReAct logika megvalósításának megkezdéséhez:



pip install langchain





Telepítse a google-search-results modult, hogy megkapja a függőségeket az ügynök felépítéséhez, amely lekérheti a keresési eredményeket a google-tól:

pip install openai google-search-results



Ezt követően telepítse az OpenAI modulokat, amelyek a nagy nyelvi modellek vagy LLM-ek betöltésére használhatók a ReAct logika megvalósításához:

pip install openai

Miután megszerezte az összes szükséges modult, egyszerűen állítsa be a OpenAI környezet LLM építésére és SerpAPI környezet az ügynök használatához a modellben:

import te

import getpass

te . hozzávetőlegesen, körülbelül [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'OpenAI API kulcs:' )

te . hozzávetőlegesen, körülbelül [ 'SERPAPI_API_KEY' ] = getpass . getpass ( 'Serpapi API kulcs:' )

2. lépés: Nyelvi modell betöltése

A következő lépés a nyelvi modellek betöltése a szükséges könyvtárak importálásával a LangChain keretrendszer segítségével:

tól től langchain. ügynökök import load_tools

tól től langchain. ügynökök import inicializálás_ügynök

tól től langchain. ügynökök import AgentType

tól től langchain. llms import OpenAI

Használja az OpenAI() metódust a nyelvi modell (llm) létrehozásához, majd konfigurálja az eszközöket az ügynökökhöz a SerpAPI használatával:

llm = OpenAI ( hőfok = 0 )

eszközöket = load_tools ( [ 'serpapi' , 'llm-math' ] , llm = llm )

1. módszer: LandChain kifejezési nyelv használata

Az LCEL a láncok integrálásának vagy összeállításának folyamata a LangChain nyelvi modelljei felépítése közben. Indítsa el a folyamatot a LangChainHub telepítésével, hogy megkapja a függőségeit a ReAct logika létrehozásához és használatához a LangChain ügynökeivel:

pip telepítése langchainhub

A könyvtárak importálása a LangChainből, például a ReActSingleInputOutputParser a ReAct modellt használó modell felépítéséhez:

tól től langchain. eszközöket . Vakol import render_text_description

tól től langchain. ügynökök . output_parsers import ReActSingleInputOutputParser

tól től langchain. ügynökök . format_scratchpad import format_log_to_str

tól től langchain import kerékagy

Töltse be a nyelvi modellt a ReAct logika megtervezéséhez a pull() metódussal, és tárolja azt a prompt változóban. Határozzon meg néhány eszközt, amelyek segítségével megvalósítható a logika a betöltött adatkészletben, hogy megvalósítsa annak ügynökkel való együttműködését:

gyors = kerékagy. Húzni ( 'hwchase17/react' )

gyors = gyors. részleges (

eszközöket = render_text_description ( eszközöket ) ,

tool_names = ', ' . csatlakozik ( [ t. név számára t ban ben eszközöket ] ) ,

)

Építőipari ügynök

Most konfigurálja az ügynököt és eszközeit az útmutató 2. lépésében betöltött nyelvi modellel való integrálásával:

llm_with_stop = llm. kötni ( állj meg = [ ' \n Megfigyelés' ] )

Határozzon meg egy ügynökváltozót, hogy biztosítsa a működését magyarázó argumentumokat és eszközöket az ügynök konfigurálásához. A korábban beállított részek, például az llm_with_stop és a ReActSingleInputOutputParser() metódus integrálva vannak az ügynökkel:

ügynök = {

'bemenet' : lambda x: x [ 'bemenet' ] ,

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

} | felszólítás | llm_with_stop | ReActSingleInputOutputParser ( )

Szerezze be az AgentExecutor könyvtárat, és állítsa be metódusát olyan argumentumokkal, mint az ügynök, az eszközök és a verbose, hogy olvashatóbb kimenetet kapjon:

tól től langchain. ügynökök import AgentExecutor

ügynök_végrehajtó = AgentExecutor ( ügynök = ügynök , eszközöket = eszközöket , bőbeszédű = Igaz )

Hívja meg az agent_executor() metódust a string lekérdezéssel, amely elindítja az ügynököt a kimenet kibontására:

ügynök_végrehajtó. hivatkozni ( { 'bemenet' : 'Ki Leo DiCaprio barátnője?' } )

Kimenet

A következő képernyőképen látható, hogy az ügynök a ReAct logika segítségével kinyerte az információkat, és természetes nyelven generálta a szöveget:

2. módszer: A ZeroShotReactAgent használata

A ReAct logika egy másik ügynök, például a ZeroShotReactAgent használatával is megvalósítható az agent_executor változó konfigurálásakor. Ezután egyszerűen hívja meg az agent_executor változót a kérdés bemeneteként az ügynök meghívásához:

ügynök_végrehajtó = inicializálás_ügynök ( eszközöket , llm , ügynök = AgentType. ZERO_SHOT_REACT_DESCRIPTION , bőbeszédű = Igaz )

ügynök_végrehajtó. hivatkozni ( { 'bemenet' : 'Hány éves Leo DiCaprio barátnője 0,21-re emelve?' } )

Kimenet

Az ügynök a kért bemenet alapján kinyerte az információkat az agent_executor meghívásakor:

3. módszer: Csevegési modellek használata

Egy másik folyamat, amely felhasználható a ReAct logika megvalósítására a chat-modellek használatával a ChatOpenAI könyvtár importálása után:

tól től langchain. chat_models import ChatOpenAI

Építsd meg a chat modellt a ChatOpenAI() metódussal 0-val egyenlő hőmérséklet értékkel, amely szabályozni tudja a modell eredményeinek véletlenszerűségét:

chat_model = ChatOpenAI ( hőfok = 0 )

Töltse be azt a modellt, amelyen a felhasználó megvalósíthatja a ReAct logikát, hogy tárolja azt a prompt változóban, és konfigurálja a folyamatban használandó eszközöket:

gyors = kerékagy. Húzni ( 'hwchase17/react-json' )

gyors = gyors. részleges (

eszközöket = render_text_description ( eszközöket ) ,

tool_names = ', ' . csatlakozik ( [ t. név számára t ban ben eszközöket ] ) ,

)

Az ügynök felépítése

A csevegési modell használatával tárolhatja a megfigyeléseket vagy a legutóbbi üzeneteket, amikor a modell leállítja a szöveg generálását:

chat_model_with_stop = chat_model. kötni ( állj meg = [ ' \n Megfigyelés' ] )

Szerezze be a ReActJsonSingleInputOutputParser könyvtárat a ReAct logika megvalósításához, és az eredményeket JSON formátumban állítja elő:

tól től langchain. ügynökök . output_parsers import ReActJsonSingleInputOutputParser

Építse fel és konfigurálja az ügynököt a chat_model változó és metódus használatával, hogy az ügynök meghívásával eredményeket érjen el:

ügynök = {

'bemenet' : lambda x: x [ 'bemenet' ] ,

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

} | felszólítás | chat_model_with_stop | ReActJsonSingleInputOutputParser ( )

Állítsa be az agent_executort, és futtassa, hogy megkapja az eredményeket a bemeneti változóban megadott lekérdezés alapján:

ügynök_végrehajtó = AgentExecutor ( ügynök = ügynök , eszközöket = eszközöket , bőbeszédű = Igaz )

ügynök_végrehajtó. hivatkozni ( { 'bemenet' : 'Hány éves Leo DiCaprio barátnője 0,21-re emelve?' } )

Kimenet

Az ügynök kicsomagolta a kimenetet a következő képernyőképen látható módon:

4. módszer: A ChatZeroShotReactAgent használata

Az ügynök értékének módosítása a ReAct logika LangChain keretrendszerrel való megvalósítására is használható:

ügynök = inicializálás_ügynök ( eszközöket , chat_model , ügynök = AgentType. CHAT_ZERO_SHOT_REACT_DESCRIPTION , bőbeszédű = Igaz )

ügynök. fuss ( 'Hány éves Leo DiCaprio barátnője 0,21-re emelve?' )

Kimenet

A kimeneti struktúra részletes információkat tartalmaz az ügynök működéséről a tokenekből és az információ kinyeréséhez használt modellből:

Ez minden a ReAct logika megvalósításának folyamatáról szól egy ügynök segítségével a LangChainben.

Következtetés

A ReAct logikának a LangChain keretrendszert használó ügynökkel való megvalósításához telepítsen olyan modulokat, mint a google-search-results az ügynök konfigurálásához. Ezt követően állítsa be a környezetet az OpenAI és a SerpAPI hitelesítő adataival a fiókjukból a modell használatának megkezdéséhez. A ReAct logika a LangChain modul által kínált LCEL és chat modellek segítségével valósítható meg több ügynökkel. Ez az útmutató kidolgozta a ReAct logika megvalósítását a LangChain ügynök használatával.