Gyors vázlat
Ez a bejegyzés bemutatja:
- A ReAct logika megvalósítása ügynök használatával a LangChainben
- Keretrendszerek telepítése
- Nyelvi modell betöltése
- 1. módszer: LandChain kifejezési nyelv használata
- Építőipari ügynök
- 2. módszer: A ZeroShotReactAgent használata
- 3. módszer: Csevegési modellek használata
- Az ügynök felépítése
- 4. módszer: A ChatZeroShotReactAgent használata
- Következtetés
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 teimport 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_toolstó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_descriptiontó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.