En este curso hay varias clases con 0 comentarios. Eso significa o que estamos entendiendo todo o no estamos entendiendo nada 😅
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 1
En este curso hay varias clases con 0 comentarios. Eso significa o que estamos entendiendo todo o no estamos entendiendo nada 😅
.
Esta guía proporciona un caso de uso sobre “Memory Context”, cuando es necesario gestionar un historial de mensajes para proveer contexto a un LLM.
.
LangChain proporciona varias utilidades para la memorización. Sin embargo, ChatMessagehistory
es la base sobre la mayoría, ya que abstrae métodos para guardar mensajes Humanos (HumanMessage
) , mensajes AI (AIChatMessage
), mensaje contextuales (SystemMessage
), y luego recuperarlos todos.
.
Posteriormente, el historial puede ser almacenado en diferentes soluciones, como Redis, para mantener una persistencia de cada uno.
.
Enlaces auxiliares:
.
Implementar un “Memory Context” utilizando TypeScript para generar un historial de mensajes para implementar en un asistente de chat.
.
LanChain provee de la clase ChatMessageHistory
para abstraer cada mensaje, según sea el origen de su existencia (Usuario, AI, etc.).
import { ChatMessageHistory } from 'langchain/memory'
import { HumanMessage, AIMessage, SystemMessage } from 'langchain/schema'
const chatHistory = new ChatMessageHistory([
new SystemMessage(
'You are an assistant in a washing machine repair Call Center.',
),
new HumanMessage('How are you? I need some help'),
new AIMessage("I'm fine thanks. How can I help you?"),
new HumanMessage('I want to repair a wash machine'),
])
Dicho historial, es operable mediante una abstracción de memorización. Cada memorización posee su estrategia de diseño según sea el requerimiento.
La memorización BufferMemory
, extrae de ChatMessageHistory
para obtener su contexto para, finalmente, integrarlo en un modelo LLM de nuestra preferencia.
const memory = new BufferMemory({
chatHistory,
})
De manera provisional, no es recomendable compartir el mismo historial o instancia de memoria entre dos cadenas de LangChain, una instancia de memoria representa el historial de una única conversación.
.
Así mismo, para su persistencia, es recomendable emplear una solución de almacenamiento según sea el beneficio de cada motor, por ejemplo Redis para una implementación en caché por sesión.
import { ConversationChain } from 'langchain/chains'
import { ChatOpenAI } from 'langchain/chat_models/openai'
import { BufferMemory, ChatMessageHistory } from 'langchain/memory'
import { HumanMessage, AIMessage, SystemMessage } from 'langchain/schema'
const API_TOKEN = // 👈 Enter the API Token from OpenAI
const llm = new ChatOpenAI({
maxTokens: -1,
modelName: 'gpt-4',
temperature: 0,
openAIApiKey: API_TOKEN,
})
const chatHistory = new ChatMessageHistory([
new SystemMessage(
'You are an assistant in a washing machine repair Call Center.',
),
new HumanMessage('How are you? I need some help'),
new AIMessage("I'm fine thanks. How can I help you?"),
new HumanMessage('I want to repair a wash machine'),
])
const memory = new BufferMemory({
chatHistory,
})
const chain = new ConversationChain({
llm,
memory,
})
const response = await chain.call({ input: 'Why did it break down?' })
console.log(response)
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?