Introducción a LangChain

1

Creación de un sistema de preguntas y respuestas con LangChain

2

Estructura y Uso de Langchain en Python

3

Carga de Modelos Open Source con Lanchain y Hugging Face

4

Uso de Modelos OpenAI con LangChain: Guía Práctica para Principiantes

5

Creación de Prompts Dinámicos con LangChain

6

Uso de Cadenas en Modelos de Lenguaje con Language Chain

7

Procesamiento de PDFs y creación de resúmenes con LangChain

8

Creación de Cadenas de Preguntas y Respuestas con Modelos de Lenguaje

9

Creación de cadenas secuenciales en Python para procesamiento de texto

Quiz: Introducción a LangChain

Casos de uso de LangChain

10

Aplicaciones y Beneficios de Lancheng en el Manejo de LLMs

11

Implementación de Lanchain y LLMs: Costos, Privacidad y Buenas Prácticas

Quiz: Casos de uso de LangChain

Manejo de documentos con índices

12

Carga de Documentos en Langchain para Creación de Índices

13

Fundamentos de la Clase Document en Langchain

14

Carga y Transformación de Documentos No Estructurados con Landship

15

Lectura de CSV y conversión a DataFrame de Pandas y LangChain

16

Creación de un Cargador de JSON-Lines Personalizado en Python

17

Fragmentación de Documentos con TextSplitter en Langsteam

18

Creación de un Chatbot con Documentación de Hugging Face

19

Creación de Índice Vectorial con Langchain y Embeddings

Quiz: Manejo de documentos con índices

Embeddings y bases de datos vectoriales

20

Creación de Índices con Embeddings y Bases de Datos Vectoriales

21

Creación y uso de embeddings con OpenAI y Lanchain

22

Modelos de Embeddings Open Source en Español con Sentence Transformers

23

Creación y Gestión de Bases de Datos Vectoriales con Chroma

24

Creación y manejo de bases de datos vectoriales con OpenAI Embeddings

25

Creación y Uso de un Retriever en Chroma para Consultas Avanzadas

26

Modelo de Chat para Preguntas y Respuestas con LangChain y Chroma

27

Creación de un Chatbot para Preguntas con Bases de Datos Vectoriales

Quiz: Embeddings y bases de datos vectoriales

Chats y memoria con LangChain

28

Memoria de Corto Plazo en Chatbots: Implementación y Optimización

29

Creación y Uso de Modelos de Chat con OpenAI y LangChain

30

Creación de Plantillas Dinámicas para Prompts de Chat en Langstead

31

Memoria en chatbots: Implementación con ConversationBufferMemory

32

Configuración de ConversationBufferWindowMemory en Chatbots

33

Memoria de Resumen de Conversaciones con Chat GPT-3.5

34

Gestión de Memoria en Chatbots con ConversationSummaryBufferMemory

35

Memoria de Entidades en Chatbots para Soporte de Ventas

36

Implementación de Chatbot con Memoria en Python usando Langchain

Quiz: Chats y memoria con LangChain

Evolución del uso de LLM

37

Creación de Chatbots con Modelos de Lenguaje y Bases de Datos Vectoriales

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de LangChain

Curso de LangChain

Omar Espejel

Omar Espejel

Memoria de Corto Plazo en Chatbots: Implementación y Optimización

28/37
Recursos

¿Cómo implementar memoria en chatbots con IA?

Los sistemas de chat basados en Inteligencia Artificial (IA) requieren recordar interacciones pasadas para ofrecer respuestas coherentes. Mientras muchos se entrenan con datos permanentes, integrar una memoria de corto plazo se vuelve crucial en el desarrollo de chatbots eficaces. Aquí exploramos cómo puedes lograrlo, partiendo desde los conceptos básicos hasta la implementación técnica.

¿Qué es la memoria de corto plazo en chatbots?

La memoria de corto plazo en chatbots permite recordar interacciones recientes dentro de una conversación. A diferencia de la memoria de largo plazo, utilizada para retener información de entrenamiento del modelo, la memoria de corto plazo se enfoca en mantener la coherencia en el diálogo reciente. Se sustenta en dos principales aspectos:

  • Información del retriever: Almacena datos claves desde un índice, necesario para contestar una pregunta.
  • Historial de interacciones: Puede ser un registro literal de preguntas y respuestas o un resumen condicional de lo conversado.

Implementación de memoria en Python

Una manera efectiva de implementar esta memoria es a través de la programación en Python. Aquí te mostramos un ejemplo básico para empezar:

from library import MemoryChatMessageHistory

# Inicializamos el historial de chat
history = MemoryChatMessageHistory()

# Ejemplo de interacción
user_input = "Hola, soy Omar, me interesan los transformers."
response = chatbot_respond(user_input)
history.add_interaction(user_input, response)

# Añadimos la historia al prompt del chatbot
prompt_with_history = history.get_current_prompt()

En este ejemplo, las interacciones se almacenan en una lista, y se adicionan al inicializar un objeto de historial de chat. Esta historia dinámica se incorpora en los prompts que se envían al chatbot para contextualizar sus respuestas.

¿Qué estrategias de memoria temporal puedes utilizar?

Conforme la conversación progresa, la cantidad de información a manejar se incrementa, presentando ciertos desafíos:

  • Resúmenes: Crear un resumen de interacciones pasadas y proporcionarlo para mantener la relevancia sin saturar el sistema.
  • Interacciones recientes: Conservar solo las interacciones más recientes mientras se resumen o eliminan las más antiguas.
  • Olvido condicionado: Descartar automáticamente un número determinado de mensajes anteriores para evitar problemas de capacidad.

Estas estrategias deben adecuarse al propósito específico de tu chatbot, determinando cómo manejará y priorizará la memoria de sus conversaciones.

¿Cómo personalizas la memoria para tu chatbot?

Cada aplicación puede requerir un enfoque diferente para la gestión de la memoria. Considera los siguientes aspectos:

  • Diseño de la experiencia de usuario: La personalización dependerá de la fluidez y continuidad deseada en las conversaciones.
  • Capacidad del modelo: Asegúrate de que el sistema pueda manejar la carga de memoria sin afectar el rendimiento.
  • Naturaleza del contenido: Decide si ciertas interacciones son más críticas de retener literal o resumidamente.

Implementar memoria temporal es clave para desarrollar chatbots efectivos, brindando además la personalización necesaria para ajustarse a las expectativas de los usuarios. Con prácticas como éstas, se busca crear un diálogo más intuitivo y humano. Así que, ¡anímate a explorar cómo optimizarlo con las técnicas discutidas y a ofrecer una experiencia única para tus usuarios!

Aportes 5

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Omar, Eres el mejor profesor de todo Platzi !

Tenemos dos tipos de memoria, la de corto plazo y largo Plazo.

Largo plazo se refiere a la data con la que fue entrenado el modelo. Se puede inlcuir la data que se uso para hacer fine tuning.

Corto plazo viene en el promp y se dividé en dos:

  • La primera se obtiene del retriever, de nuestro indice. Es la información que se le da para que nos resuelva las preguntas.
  • La segunda es del historial que se a tenido.
Está es una de las mejores clases que he tomado, 10/10.
Profe a mi parecer ya esta deprecado el curso :(

🧠 Memoria (Memory)

Por defecto, las Cadenas no tienen estado, lo que significa que tratan cada consulta entrante de forma independiente (como los propios LLM y modelos de chat subyacentes). En algunas aplicaciones, como los chatbots, es esencial recordar interacciones previas, tanto a corto como a largo plazo.
.
LangChain proporciona componentes de memoria de dos formas:
.

  1. Gestión y manipulación de mensajes de chat anteriores.
  2. Abstracción para la integración a cadenas soportadas por LangChain y personalizadas.

.
La memoria implica mantener un concepto de estado a lo largo de las interacciones de un usuario con un modelo lingüístico, donde las interacciones de un usuario con un modelo lingüístico se capturan en el concepto de ChatMessages, para ingerir, capturar, transformar y extraer conocimiento de una secuencia de mensajes de chat.
.
En general, para cada tipo de memoria hay dos formas de entender el uso de la memoria:
.

  1. Funciones independientes que extraen información de una secuencia de mensajes.
  2. Forma de utilizar este tipo de memoria en una cadena.