- 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
Creación de Índice Vectorial con Langchain y Embeddings
Clase 19 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 se crea un índice de Chroma a partir de documentos JSON-L?
Comenzar con un proyecto de indexación de documentos puede parecer una tarea compleja, pero con las herramientas adecuadas, se puede simplificar en gran medida. La meta es transformar una base de datos JSON-L en un índice de Chroma que pueda procesar consultas de usuario de manera eficiente. ¡Veamos cómo hacerlo!
¿Cómo preparar los documentos?
En primer lugar, es esencial tener un ambiente de programación listo y la base de datos, en este caso, un archivo JSON-L. Nuestro primer paso es convertir este archivo en un formato que Langchain pueda procesar.
- Conversión a formato Langchain: Esto se logra mediante una función de Python que cargue los documentos desde un path especificado. Supongamos que llamamos a esta función
loadDocuments. Esta función utilizadocs.json.lloaderpara convertir cada línea del JSON-L en un document de Langchain.
def loadDocuments(filePath):
from utils import docs.json.loader
loader = docs.json.loader(filePath)
data = loader.load()
return data
¿Cómo dividir los documentos?
Una vez que los documentos están en formato adecuado, es necesario dividirlos en fragmentos más pequeños. Esto se hace para que puedan ser procesados por embeddings, que convertirán los documentos en números.
- Uso de un text splitter: Utilizamos
recursive character text splitterde Langchain. Este nos permite establecer unchunk_sizeadecuado, que para embeddings grandes como los de OpenAI puede ser de 1600 caracteres.
from langchain.textsplitters import recursive_character_text_splitter
text_splitter = recursive_character_text_splitter(chunk_size=1600, chunk_overlap=160)
split_documents = text_splitter.split_documents(data)
¿Cómo obtener el path correcto de los documentos?
Para facilitar el proceso, podemos definir una función que obtenga automáticamente el path correcto hacia nuestros documentos. Esta puede ser una función simple de utils, por ejemplo, getFilePath.
from utils import getFilePath
file_path = getFilePath()
print("Path to documents:", file_path)
¿Cómo verificar el proceso?
Es importante verificar cuántos fragmentos de documentos tenemos y cómo se ve uno en detalle. Esto nos ayuda a entender que el proceso de división se ha llevado a cabo correctamente.
def main():
# Cargar y dividir documentos
documents = loadDocuments(getFilePath())
split_documents = split_documents(documents)
# Imprimir resultados
print("Número total de documentos:", len(split_documents))
print("Primer documento:", split_documents[0])
A través de estos pasos, pasamos de tener un archivo JSON-L grande a más de 1800 fragmentos de documentos, cada uno con información clave como el contenido de la página y metadatos sobre el creador y el repositorio asociado. Este proceso nos prepara para la próxima etapa que incluye la conversión de esos documentos en embeddings y su almacenamiento en una base de datos vectorial como Chroma.
¿Está todo listo? ¡Es hora de seguir explorando y avanzar hacia la creación de un modelo de chat efectivo!