¿Cómo agregar memoria al agente de funciones OpenAI en LangChain?

Como Agregar Memoria Al Agente De Funciones Openai En Langchain



LangChain es el marco que contiene dependencias para construir modelos de lenguajes grandes o LLM. También proporciona las herramientas para crear agentes que realicen todos los pasos intermedios, desde recibir la consulta del usuario hasta obtener su respuesta. OpenAI es un entorno que proporciona resultados legibles y estructurados desde Internet utilizando el “resultados-de-búsqueda-de-google” módulo.

Esquema rápido

Esta publicación demostrará lo siguiente:

¿Cómo agregar memoria al agente de funciones OpenAI en LangChain?

OpenAI es una organización de Inteligencia Artificial (IA) que se formó en 2015 y al principio era una organización sin fines de lucro. Microsoft ha estado invirtiendo una gran fortuna desde 2020, ya que el procesamiento del lenguaje natural (PNL) con IA ha experimentado un auge con los chatbots y los modelos de lenguaje.







La creación de agentes OpenAI permite a los desarrolladores obtener resultados más legibles y precisos de Internet. Agregar memoria a los agentes les permite comprender mejor el contexto del chat y también almacenar las conversaciones anteriores en su memoria. Para conocer el proceso de agregar memoria al agente de funciones OpenAI en LangChain, simplemente siga los siguientes pasos:



Paso 1: instalar marcos

En primer lugar, instale las dependencias de LangChain desde el “langchain-experimental” marco utilizando el siguiente código:



pip instalar cadena larga - experimental





Instala el “resultados-de-búsqueda-de-google” Módulo para obtener los resultados de búsqueda del servidor de Google:

pip instalar google - buscar - resultados



Además, instale el módulo OpenAI que se puede utilizar para crear modelos de lenguaje en LangChain:

instalación de pip en openai

Paso 2: configurar entornos

Después de obtener los módulos, configure los entornos utilizando las claves API del Abierto AI y SerpAPi cuentas:

importar
importar conseguir pase

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

Ejecute el código anterior para ingresar las claves API para acceder al entorno y presione Intro para confirmar:

Paso 3: Importar bibliotecas

Ahora que la configuración está completa, use las dependencias instaladas desde LangChain para importar las bibliotecas necesarias para crear la memoria y los agentes:

de cadena larga. cadenas importar LLMMathChain
de cadena larga. llms importar Abierto AI
#obtener biblioteca para buscar en Google a través de Internet
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
#obtener biblioteca para crear herramientas para inicializando el agente
de cadena larga. agentes importar Tipo de agente , Herramienta , agente_inicializar
de cadena larga. modelos_chat importar ChatOpenAI

Paso 4: crear una base de datos

Para continuar con esta guía, necesitamos crear la base de datos y conectarnos al agente para extraer respuestas de ella. Para construir la base de datos, es necesario descargar SQLite usando este guía y confirme la instalación usando el siguiente comando:

sqlite3

Ejecutando el comando anterior en el Terminal de Windows muestra la versión instalada de SQLite (3.43.2):

Después de eso, simplemente dirígete al directorio de tu computadora donde se creará y almacenará la base de datos:

CD de escritorio
cd mybd
sqlite3 Chinook. base de datos

El usuario puede simplemente descargar el contenido de la base de datos desde este enlace en el directorio y ejecute el siguiente comando para construir la base de datos:

. leer Chinook_Sqlite. SQL
SELECCIONAR * DEL artista LÍMITE 10 ;

La base de datos se ha creado con éxito y el usuario puede buscar datos en ella mediante diferentes consultas:

Paso 5: cargar la base de datos

Una vez que la base de datos se haya creado correctamente, cargue el “.db” archivo al Google Collaboratory usando el siguiente código:

de Google. Y AL importar archivos
subido = archivos. subir ( )

Elija el archivo del sistema local haciendo clic en el 'Seleccionar archivos' botón después de ejecutar el código anterior:

Una vez cargado el archivo, simplemente copie la ruta del archivo que se utilizará en el siguiente paso:

Paso 6: Configurar el modelo de lenguaje

Cree el modelo de lenguaje, las cadenas, las herramientas y las cadenas utilizando el siguiente código:

llm = ChatOpenAI ( temperatura = 0 , modelo = 'gpt-3.5-turbo-0613' )
buscar = SerpAPIWrapper ( )
llm_math_chain = LLMMathChain. de_llm ( 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 = 'Haga preguntas específicas para obtener respuestas a preguntas 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 preguntas sobre FooBar y la entrada debe realizarse en forma de pregunta que contenga el contexto completo' ,
    ) ,
]
  • El llm La variable contiene las configuraciones del modelo de lenguaje usando el método ChatOpenAI() con el nombre del modelo.
  • La búsqueda La variable contiene el método SerpAPIWrapper() para crear las herramientas para el agente.
  • Construye el llm_math_chain para obtener las respuestas relacionadas con el dominio de Matemáticas utilizando el método LLMMathChain().
  • La variable db contiene la ruta del archivo que tiene el contenido de la base de datos. El usuario necesita cambiar sólo la última parte que es “contenido/Chinook.db” del camino manteniendo el “sqlite:///../../../../../” lo mismo.
  • Cree otra cadena para responder consultas de la base de datos utilizando el cadena_db variable.
  • Configurar herramientas como buscar , calculadora , y FooBar-DB para buscar la respuesta, responder preguntas de matemáticas y consultas de la base de datos respectivamente:

Paso 7: Agregar memoria

Después de configurar las funciones de OpenAI, simplemente cree y agregue la memoria al agente:

de cadena larga. indicaciones importar MensajesMarcador de posición
de cadena larga. memoria importar ConversaciónBufferMemoria

agente_kwargs = {
    'mensajes_prompt_extra' : [ MensajesMarcador de posición ( nombre de la variable = 'memoria' ) ] ,
}
memoria = ConversaciónBufferMemoria ( clave_memoria = 'memoria' , mensajes_devueltos = Verdadero )

Paso 8: inicializando el agente

El último componente que se construye e inicializa es el agente, que contiene todos los componentes como llm , herramienta , OPENAI_FUNCTIONS , y otros que se utilizarán en este proceso:

agente = agente_inicializar (
herramientas ,
llm ,
agente = Tipo de agente. OPENAI_FUNCTIONS ,
verboso = Verdadero ,
agente_kwargs = agente_kwargs ,
memoria = memoria ,
)

Paso 9: probar el agente

Finalmente, pruebe el agente iniciando el chat usando el botón ' Hola ' mensaje:

agente. correr ( 'Hola' )

Agregue información a la memoria ejecutando el agente con ella:

agente. correr ( 'Mi nombre es John Nieve' )

Ahora, prueba la memoria haciendo la pregunta sobre el chat anterior:

agente. correr ( 'Cuál es mi nombre' )

El agente respondió con el nombre obtenido de la memoria, por lo que la memoria se ejecuta correctamente con el agente:

Eso es todo por ahora.

Conclusión

Para agregar la memoria al agente de funciones OpenAI en LangChain, instale los módulos para obtener las dependencias para importar las bibliotecas. Después de eso, simplemente cree la base de datos y cárguela en el cuaderno de Python para poder usarla con el modelo. Configure el modelo, las herramientas, las cadenas y la base de datos antes de agregarlos al agente e inicializarlo. Antes de probar la memoria, constrúyala usando ConversationalBufferMemory() y agréguela al agente antes de probarla. Esta guía ha explicado cómo agregar memoria al agente de funciones OpenAI en LangChain.