¿Cómo replicar el sistema MRKL utilizando agentes en LangChain?

Como Replicar El Sistema Mrkl Utilizando Agentes En Langchain



El sistema Modular de Razonamiento, Conocimiento y Lenguaje (MRKL) es una arquitectura que puede extraer respuestas con los motivos de su verificación. Integra modelos de lenguaje, razonamiento discreto y fuentes de conocimiento externas. Los modelos de lenguaje producen el texto en lenguajes humanos de acuerdo con las consultas realizadas por el usuario. MRKL (pronunciado: milagro) agrega razonamiento mientras produce las respuestas para que la respuesta sea precisa y válida.

Esquema rápido

Esta publicación demostrará lo siguiente:







Cómo replicar el sistema MRKL usando agentes en LangChain



Conclusión



¿Cómo replicar el sistema MRKL utilizando agentes en LangChain?

LangChain permite al usuario crear agentes que se pueden utilizar para realizar múltiples tareas para los modelos de lenguaje o chatbots. Los agentes almacenan su trabajo con todos los pasos en la memoria adjunta al modelo de lenguaje. Usando estas plantillas, el agente puede replicar el funcionamiento de cualquier sistema como MRKL para obtener resultados optimizados sin tener que construirlos nuevamente.





Para conocer el proceso de replicación del sistema MRKL utilizando agentes en LangChain, simplemente siga los pasos enumerados:

Paso 1: instalar marcos

En primer lugar, instale los módulos experimentales de LangChain usando el pip con el comando langchain-experimental:



instalación de pip langchain-experimental

Instale el módulo OpenAI para crear el modelo de lenguaje para el sistema MRKL:

instalación de pip en openai

Paso 2: configurar el entorno OpenAI

Importe las bibliotecas os y getpass para acceder a la operación y solicitar al usuario que proporcione las claves API para las cuentas OpenAI y SerpAPi:

importar

importar conseguir pase

. alrededor de [ 'OPENAI_API_KEY' ] = conseguir pase . conseguir pase ( 'Clave API de OpenAI:' )

. alrededor de [ 'SERPAPI_API_KEY' ] = conseguir pase . conseguir pase ( 'Clave API de Serpapi:' )

Paso 3: Importar bibliotecas

Utilice las dependencias de LangChain para importar las bibliotecas necesarias para crear el modelo de lenguaje, las herramientas y los agentes:

de cadena larga. cadenas importar LLMMathChain

de cadena larga. llms importar AbiertoAI

de cadena larga. utilidades importar SerpAPIWrapper

de cadena larga. utilidades importar Base de datos SQL

de langchain_experimental. SQL importar Cadena de base de datos SQL

de cadena larga. agentes importar agente_inicializar , Herramienta

de cadena larga. agentes importar Tipo de agente

Paso 4: crear una base de datos

El MRKL utiliza fuentes de conocimiento externas para extraer información de los datos. Esta publicación usa SQLite que se puede descargar usando este guía para construir la base de datos. El siguiente comando confirma el proceso de descarga de SQLite mostrando su versión instalada:

sqlite3

Utilice los siguientes comandos dentro de un directorio para crear la base de datos utilizando el símbolo del sistema:

cd Escritorio

cd mibd

sqlite3 Chinook. base de datos

Descargar el Base de datos archivo y guárdelo en el directorio para usar el siguiente comando para crear el ' .db ' archivo:

. leer Chinook_Sqlite. SQL

SELECCIONAR * DEL Artista LÍMITE 10 ;

Paso 5: cargar la base de datos

Una vez creada la base de datos exitosamente, cargue el archivo en el colaboratorio de Google:

de Google. Y AL importar archivos

subido = archivos. subir ( )

El usuario puede acceder al archivo cargado en el cuaderno para copiar su ruta desde su menú desplegable:

Paso 6: Configurar herramientas

Después de crear la base de datos, configure el modelo de lenguaje, las herramientas y las cadenas para los agentes:

buscar = SerpAPIWrapper ( )
llm = AbiertoAI ( temperatura = 0 )
llm_math_chain = LLMMathChain ( llm = llm , verboso = Verdadero )
base de datos = Base de datos SQL. de_uri ( 'sqlite:///../../../../../content/Chinook.db' )
cadena_db = SQLDatabaseChain. de_llm ( llm , base de datos , verboso = Verdadero )
herramientas = [
Herramienta (
nombre = 'Buscar' ,
función = buscar. correr ,
descripción = 'Pregunte a las indicaciones específicas para obtener respuestas sobre asuntos recientes'
    ) ,
Herramienta (
nombre = 'Calculadora' ,
función = llm_math_chain. correr ,
descripción = 'útil para responder/resolver problemas matemáticos'
    ) ,
Herramienta (
nombre = 'FooBar DB' ,
función = cadena_db. correr ,
descripción = 'útil para responder consultas de una base de datos y la pregunta de entrada debe tener el contexto completo'
    )
]
  • Definir el llm variable utilizando el AbrirAI() Método para obtener el modelo de lenguaje.
  • El buscar es la herramienta que llama al SerpAPIWrapper() método para acceder a su entorno.
  • El LLMMathChain() El método se utiliza para obtener respuestas relacionadas con problemas matemáticos.
  • Definir el base de datos variable con la ruta del archivo dentro del Base de datos SQL() método.
  • El SQLDatabaseChain() El método se puede utilizar para obtener la información de la base de datos.
  • Definir herramientas como buscar , calculadora , y FooBar DB para construir el agente para extraer datos de diferentes fuentes:

Paso 7: crear y probar el agente

Inicialice el sistema MRKL utilizando las herramientas, llm y agente para obtener las respuestas a las preguntas del usuario:

mrkl = agente_inicializar ( herramientas , llm , agente = Tipo de agente. ZERO_SHOT_REACT_DESCRIPTION , verboso = Verdadero )

Ejecute el sistema MRKL usando el método run() con la pregunta como argumento:

mrkl. correr ( '¿Cuál es la edad actual de Leo DiCaprio y su novia? También indica su diferencia de edad' )

Producción

El agente ha producido la respuesta final con la ruta completa utilizada por el sistema para extraer la respuesta final:

Paso 8: replicar el sistema MRKL

Ahora simplemente usa el mrkl palabra clave con el método run() para obtener respuestas de diferentes fuentes como bases de datos:

mrkl. correr ( '¿Cuál es el nombre completo del artista cuyo álbum llamado 'The Storm Before the Calm' se lanzó recientemente? ¿Están en la base de datos de FooBar y cuáles de sus álbumes están en la base de datos?' )

El agente ha transformado automáticamente la pregunta en una consulta SQL para obtener la respuesta de la base de datos. El agente busca la fuente correcta para obtener la respuesta y luego ensambla la consulta para extraer la información:

Paso 9: Usar ChatModel

El usuario puede simplemente cambiar el modelo de lenguaje usando el método ChatOpenAI() para convertirlo en ChatModel y usar el sistema MRKL con él:

de cadena larga. modelos_chat importar ChatOpenAI

buscar = SerpAPIWrapper ( )
llm = ChatOpenAI ( temperatura = 0 )
llm1 = Abierto AI ( temperatura = 0 )
llm_math_chain = LLMMathChain ( llm = llm1 , verboso = Verdadero )
base de datos = Base de datos SQL. de_uri ( 'sqlite:///../../../../../content/Chinook.db' )
cadena_db = SQLDatabaseChain. de_llm ( llm1 , base de datos , verboso = Verdadero )
herramientas = [
Herramienta (
nombre = 'Buscar' ,
función = buscar. correr ,
descripción = 'Pregunte a las indicaciones específicas para obtener respuestas sobre asuntos recientes'
    ) ,
Herramienta (
nombre = 'Calculadora' ,
función = llm_math_chain. correr ,
descripción = 'útil para responder/resolver problemas matemáticos'
    ) ,
Herramienta (
nombre = 'FooBar DB' ,
función = cadena_db. correr ,
descripción = 'útil para responder consultas de una base de datos y la pregunta de entrada debe tener el contexto completo'
    )
]

Paso 10: Pruebe el agente MRKL

Después de eso, cree el agente e inicialícelo en la variable mrkl usando el método inicialize_agent(). Agregue el parámetro del método para integrar los componentes como herramientas, llm, agente y detallado para obtener el proceso completo en el resultado:

mrkl = agente_inicializar ( herramientas , llm , agente = Tipo de agente. CHAT_ZERO_SHOT_REACT_DESCRIPTION , verboso = Verdadero )

Ejecute la pregunta ejecutando el sistema mrkl como se muestra en la siguiente captura de pantalla:

mrkl. correr ( '¿Quién es la novia de Leo DiCaprio? ¿Cuál es su edad actual?' )

Producción

El siguiente fragmento muestra la respuesta final extraída por el agente:

Paso 11: replicar el sistema MRKL

Utilice el sistema MRKL llamando al método run() con la pregunta en lenguaje natural para extraer información de la base de datos:

mrkl. correr ( '¿Cuál es el nombre completo del artista cuyo álbum llamado 'The Storm Before the Calm' se lanzó recientemente? ¿Están en la base de datos de FooBar y cuáles de sus álbumes están en la base de datos?' )

Producción

El agente ha mostrado la respuesta final extraída de la base de datos como se muestra en la siguiente captura de pantalla:

Se trata del proceso de replicar el sistema MRKL utilizando agentes en LangChain:

Conclusión

Para replicar el sistema MRKL usando agentes en LangChain, instale los módulos para obtener las dependencias para importar las bibliotecas. Las bibliotecas deben crear el modelo de lenguaje o el modelo de chat para obtener respuestas de múltiples fuentes utilizando las herramientas. Los agentes están configurados para utilizar las herramientas para extraer resultados de diferentes fuentes como Internet, bases de datos, etc. Esta guía ha detallado el proceso de replicación del sistema MRKL utilizando agentes en LangChain.