En comparación con ConverssationBufferWindowMemory, esta memoria envía resumenes de la conversación haciendo más barata la interacción
Introducción a LangChain
Desarrollo de aplicaciones con LLM utilizando LangChain
Estructura y módulos de LangChain
Uso de modelos Open Source de Hugging Face
Uso de modelos de OpenAI API
Prompt templates de LangChain
Cadenas en LangChain
Utility chains
RetrievalQA chain
Foundational chains
Quiz: Introducción a LangChain
Casos de uso de LangChain
Casos de uso de LangChain
¿Cómo utilizar LangChain en mi equipo?
Quiz: Casos de uso de LangChain
Manejo de documentos con índices
¿Cómo manejar documentos con índices en LangChain?
La clase Document
Document Loaders: PDF
Document Loaders: CSV con Pandas DataFrames
Document Loaders: JSONL
Document Transformers: TextSplitters
Proyecto de Chatbot: configuración de entorno para LangChain y obtención de datos
Proyecto de Chatbot: creación de documents de Hugging Face
Quiz: Manejo de documentos con índices
Embeddings y bases de datos vectoriales
Uso de embeddings y bases de datos vectoriales con LangChain
¿Cómo usar embeddings de OpenAI en LangChain?
¿Cómo usar embeddings de Hugging Face en LangChaing?
Chroma vector store en LangChain
Proyecto de Chatbot: ingesta de documents en Chroma
RetrievalQA: cadena para preguntar
Proyecto de Chatbot: cadena de conversación
Proyecto de Chatbot: RetrievalQA chain
Quiz: Embeddings y bases de datos vectoriales
Chats y memoria con LangChain
¿Para qué sirve la memoria en cadenas y chats?
Uso de modelos de chat con LangChain
Chat prompt templates
ConversationBufferMemory
ConversationBufferWindowMemory
ConversationSummaryMemory
ConversationSummaryBufferMemory
Entity memory
Proyecto de Chatbot: chat history con ConversationalRetrievalChain
Quiz: Chats y memoria con LangChain
Evolución del uso de LLM
LangChain y LLM en evolución constante
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Omar Espejel
Aportes 3
Preguntas 0
En comparación con ConverssationBufferWindowMemory, esta memoria envía resumenes de la conversación haciendo más barata la interacción
Esta guía proporciona un caso de uso sobre “Conversation Summary Memory”, un tipo de memorización basada en la generación de un resumen del historial para proveer de contexto.
.
La memoria de resumen de conversación resumirá lo que hemos hablado con el modelo de manera concisa y lo inyectará al prompt, esto puede hacer que se pierdan ligeros pedazos de información pero permitirá que arrastremos muchisimo más contexto en menos tokens.
.
Esta estrategia de memoria permite equilibrar entre mantener un resumen completo de la conversación y reducir el uso de tokens para un funcionamiento más eficiente.
.
Enlaces auxiliares:
.
LangChain provee de un par de implementación para este tipo de resumen de la conversación.
.
Por una parte, tendremos el uso mediante algún LLM genérico y un Chat model especializado. Su elección y uso, será debido al refinamiento del proceso según sea la especificación.
Por ejemplo, mediante un Chat Model:
import { ChatOpenAI } from 'langchain/chat_models/openai'
import { ConversationSummaryMemory } from 'langchain/memory'
const memory = new ConversationSummaryMemory({
llm: new ChatOpenAI({
maxTokens: -1,
modelName: 'gpt-4',
temperature: 0,
openAIApiKey: API_TOKEN,
}),
})
Con ello, cada interacción sera guiada por un resumen para proveer de un contexto a la conversación como memorización.
import { ConversationChain } from 'langchain/chains'
import { ChatOpenAI } from 'langchain/chat_models/openai'
const chain = new ConversationChain({
llm: new ChatOpenAI({
maxTokens: -1,
modelName: 'gpt-4',
temperature: 0,
openAIApiKey: API_TOKEN,
}),
memory,
})
ConversationSummaryMemory
crea un resumen de la conversación a lo largo del tiempo. Esto puede ser útil para condensar información de la conversación en el tiempo.
.
La memoria del resumen de conversación, minimiza la conversación a medida que ocurre, almacenando el contexto en la memoria. Esta memoria se puede utilizar entonces para inyectar el resumen de la conversación, por ejemplo en un prompt.
.
Esta memoria es muy útil para conversaciones largas, en las que mantener el historial de mensajes pasados en el aviso al pie de la letra ocuparía demasiados tokens.
import { ConversationChain } from 'langchain/chains'
import { ChatOpenAI } from 'langchain/chat_models/openai'
import { ConversationSummaryMemory } from 'langchain/memory'
const API_TOKEN = // 👈 Enter the API Token from OpenAI
const memory = new ConversationSummaryMemory({
llm: new ChatOpenAI({
maxTokens: -1,
modelName: 'gpt-4',
temperature: 0,
openAIApiKey: API_TOKEN,
}),
})
const chain = new ConversationChain({
llm: new ChatOpenAI({
maxTokens: -1,
modelName: 'gpt-4',
temperature: 0,
openAIApiKey: API_TOKEN,
}),
memory,
})
let response = await chain.call({
input: "Hello, I'm Jim.",
})
console.log(response, await memory.loadMemoryVariables({}))
response = await chain.call({ input: "What's my name?" })
console.log(response, await memory.loadMemoryVariables({}))
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?