Com replicar el sistema MRKL mitjançant agents a LangChain?

Com Replicar El Sistema Mrkl Mitjancant Agents A Langchain



El sistema Modular Reasoning, Knowledge, and Language (MRKL) és una arquitectura que pot extreure respostes amb els motius de la seva verificació. Integra models lingüístics, raonament discret i fonts de coneixement externes. Els models lingüístics produeixen el text en llengües humanes segons les consultes que fa l'usuari. MRKL (pronunciat: miracle) afegeix raonaments mentre produeix les respostes per fer que la resposta sigui precisa i vàlida.

Esquema ràpid

Aquesta publicació demostrarà el següent:







Com replicar el sistema MRKL mitjançant agents a LangChain



Conclusió



Com replicar el sistema MRKL mitjançant agents a LangChain?

LangChain permet a l'usuari crear agents que es poden utilitzar per realitzar múltiples tasques per als models d'idioma o els chatbots. Els agents emmagatzemen el seu treball amb tots els passos a la memòria adjunta al model de llenguatge. Amb aquestes plantilles, l'agent pot replicar el funcionament de qualsevol sistema com MRKL per obtenir els resultats optimitzats sense haver de construir-los de nou.





Per conèixer el procés de replicació del sistema MRKL mitjançant agents a LangChain, només cal seguir els passos indicats:

Pas 1: instal·lació de marcs

En primer lloc, instal·leu els mòduls experimentals LangChain utilitzant el pip amb l'ordre langchain-experimental:



pip install langchain-experimental

Instal·leu el mòdul OpenAI per crear el model d'idioma per al sistema MRKL:

pip install openai

Pas 2: Configuració de l'entorn OpenAI

Importeu les biblioteques OS i getpass per accedir a l'operativa per demanar a l'usuari que proporcioni les claus API per als comptes OpenAI i SerpAPi:

importar vostè

importar getpass

vostè . aproximadament [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'Clau de l'API OpenAI:' )

vostè . aproximadament [ 'SERPAPI_API_KEY' ] = getpass . getpass ( 'Clau de l'API Serpapi:' )

Pas 3: importació de biblioteques

Utilitzeu les dependències de LangChain per importar les biblioteques necessàries per crear el model de llenguatge, les eines i els agents:

des de langchain. cadenes importar LLMMathChain

des de langchain. llms importar OpenAI

des de langchain. utilitats importar SerpAPIWrapper

des de langchain. utilitats importar Base de dades SQL

des de langchain_experimental. sql importar SQLDatabaseChain

des de langchain. agents importar initialize_agent , Eina

des de langchain. agents importar Tipus d'agent

Pas 4: Creació de la base de dades

El MRKL utilitza fonts de coneixement externes per extreure informació de les dades. Aquesta publicació utilitza SQLite que es pot descarregar amb això guia per construir la base de dades. L'ordre següent confirma el procés de descàrrega de SQLite mostrant la seva versió instal·lada:

sqlite3

Utilitzeu les ordres següents dins d'un directori per crear la base de dades mitjançant l'indicador d'ordres:

cd Escriptori

cd mydb

sqlite3 Chinook. db

Descarrega't el Base de dades fitxer i deseu-lo al directori per utilitzar l'ordre següent per crear el ' .db ' dossier:

. llegir Chinook_Sqlite. sql

SELECCIONA * DEL LÍMIT DE L'ARTISTA 10 ;

Pas 5: càrrega de la base de dades

Un cop creada la base de dades correctament, carregueu el fitxer a la col·laboració de Google:

des de Google. ET AL importar Fitxers

carregat = Fitxers. carregar ( )

L'usuari pot accedir al fitxer penjat a la llibreta per copiar-ne el camí des del seu menú desplegable:

Pas 6: Configuració d'eines

Després de crear la base de dades, configureu el model d'idioma, les eines i les cadenes per als agents:

cerca = SerpAPIWrapper ( )
llm = OpenAI ( temperatura = 0 )
llm_cadena_matemàtiques = LLMMathChain ( llm = llm , verbosa = És cert )
db = Base de dades SQL. de_uri ( 'sqlite:///../../../../../content/Chinook.db' )
cadena_db = SQLDatabaseChain. de_llm ( llm , db , verbosa = És cert )
eines = [
Eina (
nom = 'Cerca' ,
func = cerca. correr ,
descripció = 'Pregunteu a les indicacions dirigides per obtenir respostes sobre assumptes recents'
) ,
Eina (
nom = 'Calculadora' ,
func = llm_cadena_matemàtiques. correr ,
descripció = 'Útil per respondre/resoldre problemes matemàtics'
) ,
Eina (
nom = 'FooBar DB' ,
func = cadena_db. correr ,
descripció = 'Útil per respondre consultes d'una base de dades i la pregunta d'entrada ha de tenir el context complet'
)
]
  • Definiu el llm variable utilitzant la OpenAI() mètode per obtenir el model lingüístic.
  • El cerca és l'eina que anomena SerpAPIWrapper() mètode per accedir al seu entorn.
  • El LLMMathChain() S'utilitza el mètode per obtenir les respostes relacionades amb problemes matemàtics.
  • Definiu el db variable amb la ruta del fitxer dins del fitxer Base de dades SQL() mètode.
  • El SQLDatabaseChain() Es pot utilitzar el mètode per obtenir la informació de la base de dades.
  • Definir eines com cerca , calculadora , i FooBar DB per crear l'agent per extreure dades de diferents fonts:

Pas 7: Creació i prova de l'agent

Inicieu el sistema MRKL utilitzant les eines, llm i l'agent per obtenir les respostes a les preguntes formulades per l'usuari:

mrkl = initialize_agent ( eines , llm , agent = Tipus d'agent. ZERO_SHOT_REACT_DESCRIPTION , verbosa = És cert )

Executeu el sistema MRKL mitjançant el mètode run() amb la pregunta com a argument:

mrkl. correr ( 'Quina és l'edat actual de Leo DiCaprio i la seva xicota també diuen la seva diferència d'edat' )

Sortida

L'agent ha produït la resposta final amb el camí complet utilitzat pel sistema per extreure la resposta final:

Pas 8: Replica el sistema MRKL

Ara, només cal que utilitzeu mrkl paraula clau amb el mètode run() per obtenir respostes de diferents fonts com bases de dades:

mrkl. correr ( 'Quin és el nom complet de l'artista l'àlbum del qual s'anomena 'The Storm Before the Calm' ha publicat recentment i estan a la base de dades FooBar i quins dels seus àlbums estan a la base de dades? )

L'agent ha transformat automàticament la pregunta en la consulta SQL per obtenir la resposta de la base de dades. L'agent cerca la font correcta per obtenir la resposta i després munta la consulta per extreure la informació:

Pas 9: Ús de ChatModel

L'usuari simplement pot canviar el model d'idioma utilitzant el mètode ChatOpenAI() per convertir-lo en un ChatModel i utilitzar el sistema MRKL amb ell:

des de langchain. chat_models importar ChatOpenAI

cerca = SerpAPIWrapper ( )
llm = ChatOpenAI ( temperatura = 0 )
llm1 = OpenAI ( temperatura = 0 )
llm_cadena_matemàtiques = LLMMathChain ( llm = llm1 , verbosa = És cert )
db = Base de dades SQL. de_uri ( 'sqlite:///../../../../../content/Chinook.db' )
cadena_db = SQLDatabaseChain. de_llm ( llm1 , db , verbosa = És cert )
eines = [
Eina (
nom = 'Cerca' ,
func = cerca. correr ,
descripció = 'Pregunteu a les indicacions dirigides per obtenir respostes sobre assumptes recents'
) ,
Eina (
nom = 'Calculadora' ,
func = llm_cadena_matemàtiques. correr ,
descripció = 'Útil per respondre/resoldre problemes matemàtics'
) ,
Eina (
nom = 'FooBar DB' ,
func = cadena_db. correr ,
descripció = 'Útil per respondre consultes d'una base de dades i la pregunta d'entrada ha de tenir el context complet'
)
]

Pas 10: prova l'agent MRKL

Després d'això, creeu l'agent i inicialitzeu-lo a la variable mrkl mitjançant el mètode initialize_agent(). Afegiu el paràmetre del mètode per integrar els components com ara eines, llm, agent i verbose per obtenir el procés complet a la sortida:

mrkl = initialize_agent ( eines , llm , agent = Tipus d'agent. XAT_ZERO_SHOT_REACT_DESCRIPTION , verbosa = És cert )

Executeu la pregunta executant el sistema mrkl tal com es mostra a la captura de pantalla següent:

mrkl. correr ( 'Qui és la xicota de Leo DiCaprio? Quina és la seva edat actual' )

Sortida

El fragment següent mostra la resposta final extreta per l'agent:

Pas 11: Replica el sistema MRKL

Utilitzeu el sistema MRKL cridant al mètode run() amb la pregunta en llenguatge natural per extreure informació de la base de dades:

mrkl. correr ( 'Quin és el nom complet de l'artista l'àlbum del qual s'anomena 'The Storm Before the Calm' ha publicat recentment i estan a la base de dades FooBar i quins dels seus àlbums estan a la base de dades? )

Sortida

L'agent ha mostrat la resposta final extreta de la base de dades tal com es mostra a la captura de pantalla següent:

Això és tot sobre el procés de replicació del sistema MRKL mitjançant agents a LangChain:

Conclusió

Per replicar el sistema MRKL mitjançant agents a LangChain, instal·leu els mòduls per obtenir les dependències per importar les biblioteques. Les biblioteques han de crear el model d'idioma o el model de xat per obtenir les respostes de diverses fonts utilitzant les eines. Els agents estan configurats per utilitzar les eines per extreure resultats de diferents fonts com Internet, bases de dades, etc. Aquesta guia ha elaborat el procés de replicació del sistema MRKL mitjançant agents a LangChain.