Esta guía ilustrará el proceso de agregar memoria a una cadena con múltiples entradas en LangChain.
¿Cómo agregar memoria a una cadena con múltiples entradas en LangChain?
La memoria se puede agregar a los LLM o chatbots para almacenar los mensajes o datos más recientes para que el modelo pueda comprender el contexto del comando. Para conocer el proceso de agregar memoria a una cadena con múltiples entradas en LangChain, simplemente siga los siguientes pasos:
Paso 1: instalar módulos
Primero, instale el marco LangChain, ya que tiene una variedad de dependencias para crear modelos de lenguaje:
pip instalar cadena larga
Instale chromadb para almacenar los datos utilizados por la memoria en el almacén de vectores Chroma:
pip instala cromadb
Tiktoken es el tokenizador que se utiliza para crear pequeños fragmentos de documentos grandes para que puedan administrarse fácilmente:
instalar pip tiktoken
OpenAI es el módulo que se puede utilizar para crear cadenas y LLM utilizando el método OpenAI():
instalación de pip en openai
Paso 2: configurar el entorno y cargar datos
El siguiente paso después de instalar todos los módulos necesarios para este proceso es configurando el ambiente usando la clave API de la cuenta OpenAI:
importar túimportar conseguir pase
tú . alrededor de [ 'OPENAI_API_KEY' ] = conseguir pase . conseguir pase ( 'Clave API de OpenAI:' )
Cargue los documentos usando la biblioteca de archivos para construir las cadenas en el marco LangChain:
de Google. Y AL importar archivossubido = archivos. subir ( )
Paso 3: importar bibliotecas
Una vez que el documento se haya cargado correctamente, simplemente importe las bibliotecas requeridas desde el módulo Langchain:
de cadena larga. incrustaciones . abierto importar Incrustaciones de OpenAIde cadena larga. incrustaciones . adherirse importar CohereIncrustaciones
de cadena larga. divisor de texto importar Divisor De Texto De Carácter
de cadena larga. vectorestiendas . búsqueda_vectorial_elástica importar Búsqueda de vectores elásticos
de cadena larga. vectorestiendas importar croma
de cadena larga. tienda de documentos . documento importar Documento
Paso 4: crear memoria utilizando la base de datos Chroma
Ahora, comience a construir el espacio vectorial para almacenar las incrustaciones y tokens del documento subido anteriormente:
con abierto ( 'estado_de_la_unión.txt' ) como F:Estado de la unión = F. leer ( )
divisor de texto = Divisor De Texto De Carácter ( tamaño de porción = 1000 , trozo_superposición = 0 )
textos = divisor de texto. texto_dividido ( Estado de la unión )
incrustaciones = Incrustaciones de OpenAI ( )
Configure la base de datos Chroma para almacenar el texto y las incrustaciones del documento:
búsqueda de documentos = Croma. de_textos (textos , incrustaciones , metadatos = [ { 'fuente' : i } para i en rango ( solo ( textos ) ) ]
)
Pruebe la memoria solicitando el comando en la variable de consulta y luego ejecute el método similarity_search():
consulta = '¿Cuándo se formó la OTAN?'documentos = búsqueda de documentos. búsqueda_similitud ( consulta )
Paso 5: Configurar la plantilla de aviso
Este paso explica el proceso de configuración de la plantilla para las indicaciones importando las siguientes bibliotecas:
de cadena larga. cadenas . pregunta_respuesta importar cadena_qa_cargade cadena larga. llms importar AbiertoAI
de cadena larga. indicaciones importar Plantilla de aviso
de cadena larga. memoria importar ConversaciónBufferMemoria
Después de eso, simplemente configure la plantilla o estructura para la consulta y ejecute la cadena una vez que se agregue la memoria al modelo:
plantilla = '''Eres una modelo conversando con un humano.Teniendo en cuenta los fragmentos extraídos de un documento extenso y una pregunta, cree una respuesta final.
{contexto}
{historia}
Humano: {entrada}
Chatbot:'''
inmediato = Plantilla de aviso (
variables_entrada = [ 'historia' , 'aporte' , 'contexto' ] , plantilla = plantilla
)
memoria = ConversaciónBufferMemoria ( clave_memoria = 'historia' , clave_entrada = 'aporte' )
cadena = cadena_qa_carga (
AbiertoAI ( temperatura = 0 ) , tipo_cadena = 'cosa' , memoria = memoria , inmediato = inmediato
)
Paso 6: probar la memoria
Este es el momento de probar el modelo haciendo la pregunta usando la variable de consulta y luego ejecutando el método chain() con sus parámetros:
consulta = '¿Cuándo se formó la OTAN?'cadena ( { 'documentos_de entrada' : documentos , 'aporte' : consulta } , retorno_solo_salidas = Verdadero )
Imprima los datos almacenados en la memoria intermedia ya que la respuesta dada por el modelo se almacena recientemente en la memoria:
imprimir ( cadena. memoria . buffer )
Se trata de agregar memoria a una cadena con múltiples entradas en LangChain.
Conclusión
Para agregar memoria a una cadena con múltiples entradas en LangChain, simplemente instale los módulos y el almacén de vectores para almacenar el texto y las incrustaciones. Después de eso, cargue los datos/documento desde el sistema local y luego importe las bibliotecas necesarias para almacenar los datos para crear la memoria para el LLM. Configure la plantilla de aviso para almacenar los mensajes más recientes en la memoria intermedia y luego envíe un mensaje de texto a la cadena. Esta guía ha detallado el proceso de agregar memoria a una cadena con múltiples entradas en LangChain.