- 1

Creación de un sistema de preguntas y respuestas con LangChain
13:08 - 2

Estructura y Uso de Langchain en Python
05:24 - 3

Carga de Modelos Open Source con Langchain y Hugging Face
13:13 - 4

Uso de Modelos OpenAI con LangChain: Guía Práctica para Principiantes
07:51 - 5

Creación de Prompts Dinámicos con LangChain
08:59 - 6

Uso de Cadenas en Modelos de Lenguaje con Language Chain
01:54 - 7

Procesamiento de PDFs y creación de resúmenes con LangChain
11:49 - 8

Creación de Cadenas de Preguntas y Respuestas con Modelos de Lenguaje
04:54 - 9

Creación de cadenas secuenciales en Python para procesamiento de texto
14:31 Quiz: Introducción a LangChain
Procesamiento de PDFs y creación de resúmenes con LangChain
Clase 7 de 37 • Curso de LangChain
Contenido del curso
- 12

Carga de Documentos en Langchain para Creación de Índices
02:58 - 13

Fundamentos de la Clase Document en Langchain
04:38 - 14

Carga y Transformación de Documentos No Estructurados con Landship
06:30 - 15
Lectura de CSV y conversión a DataFrame de Pandas y LangChain
01:19 - 16

Creación de un Cargador de JSON-Lines Personalizado en Python
08:37 - 17

Fragmentación de Documentos con TextSplitter en Langsteam
08:14 - 18

Creación de un Chatbot con Documentación de Hugging Face
07:34 - 19

Creación de Índice Vectorial con Langchain y Embeddings
07:21 Quiz: Manejo de documentos con índices
- 20

Creación de Índices con Embeddings y Bases de Datos Vectoriales
03:42 - 21

Creación y uso de embeddings con OpenAI y Lanchain
05:31 - 22

Modelos de Embeddings Open Source en Español con Sentence Transformers
09:51 - 23

Creación y Gestión de Bases de Datos Vectoriales con Chroma
09:25 - 24

Creación y manejo de bases de datos vectoriales con OpenAI Embeddings
09:20 - 25

Creación y Uso de un Retriever en Chroma para Consultas Avanzadas
07:57 - 26

Modelo de Chat para Preguntas y Respuestas con LangChain y Chroma
08:17 - 27

Creación de un Chatbot para Preguntas con Bases de Datos Vectoriales
05:31 Quiz: Embeddings y bases de datos vectoriales
- 28

Memoria de Corto Plazo en Chatbots: Implementación y Optimización
04:10 - 29

Creación y Uso de Modelos de Chat con OpenAI y LangChain
06:48 - 30

Creación de Plantillas Dinámicas para Prompts de Chat en Langstead
07:12 - 31

Memoria en chatbots: Implementación con ConversationBufferMemory
06:40 - 32

Configuración de ConversationBufferWindowMemory en Chatbots
05:51 - 33

Memoria de Resumen de Conversaciones con Chat GPT-3.5
05:14 - 34
Gestión de Memoria en Chatbots con ConversationSummaryBufferMemory
04:14 - 35

Memoria de Entidades en Chatbots para Soporte de Ventas
12:11 - 36

Implementación de Chatbot con Memoria en Python usando Langchain
12:36 Quiz: Chats y memoria con LangChain
¿Cómo trabajar con cadenas en procesamiento de lenguaje?
Las cadenas son fundamentales en LangChain, ya que permiten crear flujos de trabajo donde cada paso es un proceso diferente. Se ingresa un texto al inicio de la cadena y se transforma a través de diversos eslabones hasta obtener una respuesta utilizando un modelo de lenguaje. En esta guía, nos enfocaremos en las cadenas fundacionales y de utilidad, y en cómo cargarlas y procesarlas con ayuda de herramientas esenciales.
¿Cómo se carga un PDF para procesar con LangChain?
Para manejar documentos no estructurados como PDFs, debes instalar librerías especializadas:
- OnStructure: Permite a LangChain trabajar con diversos tipos de documentos no estructurados.
- PyPDF: Utilizada por LangChain para cargar y adecuar PDFs.
- ChromaDB: Una base de datos vectorial eficiente para gestionar embeddings.
Después de instalar estas herramientas, utiliza la librería requests para descargar un PDF desde una URL específica. Al abrirlo, guárdalo localmente para su posterior tratamiento.
import requests
# Obtención del PDF desde la URL
url = "URL_DEL_PDF"
r = requests.get(url)
with open("publickeycryptography.pdf", "wb") as f:
f.write(r.content)
¿Cómo se procesa un PDF con PyPDFLoader en LangChain?
Para utilizar LangChain, necesitas su módulo DocumentLoaders y específicamente PyPDFLoader:
from langchain.document_loaders import PyPDFLoader
# Carga del PDF en el formato adecuado
loader = PyPDFLoader("publickeycryptography.pdf")
data = loader.load()
¿Cómo se integran los Embeddings con OpenAI y ChromaDB?
Una vez procesado el PDF, OpenAI embeddings deben importarse para convertir los datos al formato numérico requerido:
from langchain.embeddings import OpenAIEmbeddings
# Conversión del PDF en un formato embebido
embeddings = OpenAIEmbeddings()
embeddings_data = embeddings.embed_documents(data)
Finalmente, almacena estos embeddings en ChromaDB para utilizarlos con las cadenas de utilidad:
from langchain.vectorstores import Chroma
# Almacenamiento de embeddings en ChromaDB
vector_store = Chroma.from_embeddings(embeddings_data)
¿Cómo resumir un texto extenso con LoadSummarizeChain?
LangChain permite resumir documentos largos con herramientas adecuadas, como LoadSummarizeChain. Esta cadena puede manejar documentos extensos dividiéndolos en partes manejables y resumiéndolos individualmente, combinando los resúmenes individuales en uno final usando un enfoque MapReduce:
from langchain.chains import load_summarize_chain
# Configuración y ejecución de la cadena que resume
summary_chain = load_summarize_chain(
model=LLM_DaVinci,
chain_type="MapReduce"
)
summary = summary_chain.run(data)
¿Qué beneficios ofrece el uso de prompts?
El uso de prompts personalizados permite mejores resultados en los resúmenes generados. Puedes definir un prompt estilo mexicano, por ejemplo:
from langchain.prompts import PromptTemplate
template_text = "Escribe un resumen bien chido del siguiente rollo: {text}. Resumen corto con slang mexicano."
prompt_template = PromptTemplate(template=template_text, input_variables=["text"])
Con el chain tipo Stuff, utilizas este prompt para generar resúmenes más adaptados culturalmente:
informal_chain = load_summarize_chain(
model=LLM_DaVinci,
chain_type="Stuff",
prompt_template=prompt_template,
verbose=True
)
# Ejecución de la cadena con un extracto del PDF
resumen_mx = informal_chain.run(data[:2])
En esencia, el tipo Stuff limita el contexto al tamaño del prompt, lo que significa que grandes documentos deben ser acortados antes de ingresar al modelo. Sin embargo, permite la creación de recomendaciones culturalmente apropiadas y específicas.
En resumen, LangChain abre la puerta a una eficiente navegación y procesamiento de grandes cantidades de texto con un grado de personalización notorio, permitiendo a los usuarios crear flujos de trabajo precisos y culturalmente sensibles.