Hogyan replikálható az MRKL rendszer ügynökök segítségével a LangChainben?

Hogyan Replikalhato Az Mrkl Rendszer Ugynokok Segitsegevel A Langchainben



A Modular Reasoning, Knowledge és Language (MRKL) rendszer egy olyan architektúra, amely válaszokat tud kinyerni az ellenőrzés okaival együtt. Integrálja a nyelvi modelleket, a diszkrét érvelést és a külső tudásforrásokat. A nyelvi modellek emberi nyelven állítják elő a szöveget a felhasználó által feltett kérdések alapján. Az MRKL (ejtsd: csoda) érvelést ad hozzá a válaszok elkészítéséhez, hogy a válasz pontos és érvényes legyen.

Gyors vázlat

Ez a bejegyzés a következőket mutatja be:







Az MRKL rendszer replikálása ügynökök segítségével a LangChainben



Következtetés



Hogyan replikálható az MRKL rendszer ügynökök segítségével a LangChainben?

A LangChain lehetővé teszi a felhasználó számára olyan ügynökök létrehozását, amelyek több feladat végrehajtására használhatók a nyelvi modellekhez vagy chatbotokhoz. Az ügynökök munkájukat az összes lépéssel a nyelvi modellhez csatolt memóriában tárolják. Ezekkel a sablonokkal az ügynök bármely rendszer, például az MRKL működését reprodukálhatja, hogy az optimalizált eredményeket elérje anélkül, hogy újra fel kellene őket építenie.





Az MRKL rendszer LangChain ügynökök segítségével történő replikálásának folyamatának megismeréséhez egyszerűen hajtsa végre a felsorolt ​​lépéseket:

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

Először is telepítse a LangChain kísérleti modulokat a pip használatával a langchain-experimental paranccsal:



pip install langchain-experimental

Telepítse az OpenAI modult az MRKL rendszer nyelvi modelljének létrehozásához:

pip install openai

2. lépés: Az OpenAI környezet beállítása

Importálja az operációs rendszer és a getpass könyvtárakat, hogy hozzáférjen a művelethez, és kérje a felhasználót, hogy adja meg az API-kulcsokat az OpenAI és SerpAPi fiókokhoz:

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:' )

3. lépés: Könyvtárak importálása

Használja a LangChain függőségeit a szükséges könyvtárak importálásához a nyelvi modell, az eszközök és az ügynökök felépítéséhez:

tól től langchain. láncok import LLMMathChain

tól től langchain. llms import OpenAI

tól től langchain. segédprogramok import SerpAPIWrapper

tól től langchain. segédprogramok import SQLDatabase

tól től langchain_experimental. sql import SQLDatabaseChain

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

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

4. lépés: Adatbázis létrehozása

Az MRKL külső tudásforrásokat használ az adatokból való információ kinyerésére. Ez a bejegyzés az SQLite-t használja, amely ezzel letölthető útmutató az adatbázis felépítéséhez. A következő parancs megerősíti az SQLite letöltésének folyamatát a telepített verzió megjelenítésével:

sqlite3

Használja a következő parancsokat egy könyvtárban az adatbázis létrehozásához a parancssor használatával:

CD Asztali

CD mydb

sqlite3 Chinook. db

Töltse le a Adatbázis fájlt, és tárolja a könyvtárban, hogy a következő parancsot használja a ' .db ” fájl:

. olvas Chinook_Sqlite. sql

SELECT * FROM Előadó LIMIT 10 ;

5. lépés: Adatbázis feltöltése

Az adatbázis sikeres létrehozása után töltse fel a fájlt a Google együttműködő programba:

tól től Google. ET AL import fájlokat

feltöltve = fájlokat. feltölteni ( )

A felhasználó elérheti a feltöltött fájlt a notebookon, és a legördülő menüből átmásolhatja annak elérési útját:

6. lépés: Eszközök konfigurálása

Az adatbázis felépítése után konfigurálja az ügynökök nyelvi modelljét, eszközeit és láncait:

keresés = SerpAPIWrapper ( )
llm = OpenAI ( hőfok = 0 )
llm_math_chain = LLMMathChain ( llm = llm , bőbeszédű = Igaz )
db = SQLDatabase. from_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_lánc = SQLDatabaseChain. from_llm ( llm , db , bőbeszédű = Igaz )
eszközöket = [
Eszköz (
név = 'Keresés' ,
func = keresés. fuss ,
leírás = 'Kérje meg a célzott felkéréseket, hogy válaszokat kapjon a közelmúlt ügyeiről'
) ,
Eszköz (
név = 'Számológép' ,
func = llm_math_chain. fuss ,
leírás = 'hasznos matematikai feladatok megválaszolásához/megoldásához'
) ,
Eszköz (
név = 'FooBar DB' ,
func = db_lánc. fuss ,
leírás = 'hasznos az adatbázisból származó lekérdezések megválaszolásához, és a bemeneti kérdésnek teljes kontextussal kell rendelkeznie'
)
]
  • Határozza meg a llm változó segítségével OpenAI() módszer a nyelvi modell megszerzésére.
  • A keresés az az eszköz, amely a SerpAPIWrapper() módszerrel hozzáférhet a környezetéhez.
  • A LLMMathChain() módszerrel kapunk választ a matematikai problémákra.
  • Határozza meg a db változó a fájl elérési útjával SQLDatabase() módszer.
  • A SQLDatabaseChain() módszerrel kinyerhetjük az információkat az adatbázisból.
  • Határozzon meg olyan eszközöket, mint keresés , számológép , és FooBar DB az ügynök felépítéséhez adatok kinyeréséhez különböző forrásokból:

7. lépés: Az ügynök létrehozása és tesztelése

Inicializálja az MRKL rendszert az eszközök, az llm és az ügynök segítségével, hogy megkapja a választ a felhasználó által feltett kérdésekre:

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

Futtassa le az MRKL rendszert a run() metódussal a kérdés argumentumával:

mrkl. fuss ( 'Leo DiCaprio és barátnője jelenlegi kora az is megmutatja a korkülönbséget' )

Kimenet

Az ügynök elkészítette a végső választ a teljes elérési úttal, amelyet a rendszer a végső válasz kinyeréséhez használt:

8. lépés: Az MRKL rendszer megismétlése

Most egyszerűen használja a mrkl kulcsszó a run() metódussal, hogy válaszokat kapjon különböző forrásokból, például adatbázisokból:

mrkl. fuss ( 'Mi a teljes neve annak az előadónak, akinek a közelmúltban megjelent a 'The Storm Before the Calm' című albuma, és benne vannak-e a FooBar adatbázisában, és melyik albumuk van az adatbázisban?' )

Az ügynök automatikusan átalakította a kérdést SQL-lekérdezéssé, hogy lekérje a választ az adatbázisból. Az ügynök megkeresi a megfelelő forrást, hogy megkapja a választ, majd összeállítja a lekérdezést az információ kinyeréséhez:

9. lépés: A ChatModel használata

A felhasználó egyszerűen megváltoztathatja a nyelvi modellt a ChatOpenAI() metódussal, hogy azt ChatModellé alakítsa, és az MRKL rendszert használja vele:

tól től langchain. chat_models import ChatOpenAI

keresés = SerpAPIWrapper ( )
llm = ChatOpenAI ( hőfok = 0 )
llm1 = OpenAI ( hőfok = 0 )
llm_math_chain = LLMMathChain ( llm = llm1 , bőbeszédű = Igaz )
db = SQLDatabase. from_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_lánc = SQLDatabaseChain. from_llm ( llm1 , db , bőbeszédű = Igaz )
eszközöket = [
Eszköz (
név = 'Keresés' ,
func = keresés. fuss ,
leírás = 'Kérje meg a célzott felkéréseket, hogy válaszokat kapjon a közelmúlt ügyeiről'
) ,
Eszköz (
név = 'Számológép' ,
func = llm_math_chain. fuss ,
leírás = 'hasznos matematikai feladatok megválaszolásához/megoldásához'
) ,
Eszköz (
név = 'FooBar DB' ,
func = db_lánc. fuss ,
leírás = 'hasznos az adatbázisból származó lekérdezések megválaszolásához, és a bemeneti kérdésnek teljes kontextussal kell rendelkeznie'
)
]

10. lépés: Tesztelje az MRKL Agentet

Ezt követően állítsa össze az ügynököt, és inicializálja az mrkl változóban az inicializálás_agent() metódussal. Adja hozzá a metódus paraméterét az olyan összetevők integrálásához, mint az tools, llm, agent és verbose, hogy a teljes folyamatot a kimenetben kapja meg:

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

Hajtsa végre a kérdést az mrkl rendszer futtatásával a következő képernyőképen látható módon:

mrkl. fuss ( 'Ki Leo DiCaprio barátnője? Mennyi a jelenlegi életkoruk' )

Kimenet

A következő részlet az ügynök által kivont végső választ jeleníti meg:

11. lépés: Replikálja az MRKL rendszert

Használja az MRKL rendszert a run() metódus meghívásával a természetes nyelvű kérdéssel, hogy információkat nyerjen ki az adatbázisból:

mrkl. fuss ( 'Mi a teljes neve annak az előadónak, akinek a közelmúltban megjelent a 'The Storm Before the Calm' című albuma, és benne vannak-e a FooBar adatbázisában, és melyik albumuk van az adatbázisban?' )

Kimenet

Az ügynök megjelenítette az adatbázisból kivont végső választ a következő képernyőképen látható módon:

Ez minden az MRKL rendszer replikálásának folyamatáról a LangChain ügynökeivel:

Következtetés

Az MRKL rendszer LangChain ügynökök segítségével történő replikálásához telepítse a modulokat a függőségek lekéréséhez a könyvtárak importálásához. A könyvtáraknak létre kell hozniuk a nyelvi modellt vagy a chat-modellt, hogy az eszközök segítségével több forrásból is megkapják a válaszokat. Az ügynökök úgy vannak beállítva, hogy a különböző forrásokból, például az internetről, adatbázisokból stb. származó kimenetek kinyerésére szolgáló eszközöket használják. Ez az útmutató az MRKL rendszer replikálásának folyamatát dolgozta ki a LangChain ügynökei segítségével.