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 11
Preguntas 2
Utilizar un LLM de forma aislada está bien para aplicaciones sencillas, pero las aplicaciones más complejas requieren encadenar LLM, ya sea entre sí o con otros componentes.
.
LangChain proporciona la interfaz Chain para generar aplicaciones más específicas. Ya que la idea de componer componentes en cadena, simplifica drásticamente su especificación, haciendo más modular la implementación de aplicaciones complejas, lo que a su vez facilita mucho la depuración, el mantenimiento y la mejora de nuestras aplicaciones.
.
Se puede utilizar una cadena de resumen para resumir (summarize) múltiples documentos. Una forma es introducir múltiples documentos más pequeños, después de haberlos dividido en trozos, y operar sobre ellos con una MapReduceDocumentsChain
. También puede elegir que la cadena que realiza el resumen sea una cadena StuffDocumentsChain
o una cadena RefineDocumentsChain
.
.
Supongamos una conversación en formato .txt
:
Elena: Perfect, Carlos, Ana, Juan, thank you for your feedback. Regarding priorities, we continue to focus on completing the search functionality as it is essential for the launch. Carlos, can you talk to Ana later to review the design changes?
Carlos: Of course, Elena, I will be happy to do that.
Ana: Carlos, I will send you a meeting request for that.
Juan: Regarding the implementation of the search function, I have some doubts about the integration with the third-party API we discussed yesterday. Could we go over that before we start?
Elena: Certainly, Juan. What time would be convenient for you?
Juan: Could it be at 10:30? I would have time to review the documentation before the meeting.
Elena: Sure, lets schedule the meeting for 10:30 then. Also, remember that today at 3 PM, we will have our weekly project update meeting, so lets make sure we are prepared to update the whole team.
Ana: Understood, I will be ready for that meeting.
Carlos: Same here, I will be ready to provide a solid update.
Juan: I will be ready too and hope to have some answers about the integration by then.
Elena: Perfect, that sounds great. In summary, today we will focus on the search functionality, review the design changes, and clarify any doubts about the integration with the third-party API. Lets work with energy and efficiency, team!
import { PromptTemplate } from 'langchain/prompts'
const llm = new OpenAI({
// code ...
})
const chain = loadSummarizationChain(llm, { type: 'map_reduce' })
const summarize = await chain.call({
input_documents: docs,
})
console.log(summarize)
{
text: "Elena, Carlos, Ana, and Juan discussed their ongoing project, focusing on the completion of the search functionality. Carlos agreed to review design changes with Ana, while Juan expressed concerns about integrating a third-party API. A meeting was scheduled for 10:30 to discuss this. Elena reminded the team about a project update meeting at 3 PM, and everyone confirmed their readiness to provide updates. The team agreed to focus on the search functionality, design changes, and API integration issues.",
__run: undefined
}
Aqune algo complejo, veo mucho potencial en lo que podemos lograr con LangChain 🦜⛓
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?