Contenido del curso
Chat Models y Prompt templates
- 5

Flujo de conversación con trim_message en LangChain
09:35 min - 6

Conexión y uso de modelos de chat con LangChain y OpenAI
07:51 min - 7

Uso de Modelos de Google AI Gemini en LangChain
03:39 min - 8

Creación de Plantillas de Prompts en LangChain
08:45 min - 9

Técnicas de Few-Shot Prompting en Modelos de Lenguaje
12:18 min
Cadenas en LangChain
- 10

Creación de Cadenas en LangChain con String Output Parser
04:53 min - 11

Gestión de Historial de Chat con LangChain
07:52 min - 12

Integración de Herramientas Claves en LangChain: Runnable, OutputParser, Streaming
14:08 min - 13

Creación de Chatbots Inteligentes con Memoria Conversacional
13:55 min - 14

Cadena de Procesos para Memoria Conversacional con GPT-3.5 Turbo
07:37 min
Carga de documentos en LangChain
Retrieval-augmented generation (RAG)
- 18

Gestión de Vectores de Texto con Chroma y LangChain
05:46 min - 19

Embeddings y su aplicación en modelos de lenguaje y RAG
08:19 min - 20

Pinecone como vector store con LangChain
14:16 min - 21

Creación de Chatbot RAG con LangChain y ChromaDB
12:52 min - 22

Construcción de un Asistente Conversacional con LangChain y RAG
13:44 min
Agentes en LangChain
Ecosistema de LangChain
Cómo dividir textos largos con LangChain
Resumen
Cuando trabajas con documentos largos en LangChain, los text splitters se vuelven una herramienta clave para dividir el contenido en fragmentos manejables sin perder coherencia. Esta guía te muestra qué son, por qué importan y cómo aplicarlos paso a paso si construyes aplicaciones con modelos de lenguaje como GPT.
Por qué necesitas dividir textos largos al usar modelos de lenguaje
Los modelos como GPT tienen un límite máximo de tokens que pueden procesar de una sola vez. Si intentas pasarle un libro completo, una transcripción extensa o un artículo largo, te vas a topar con la pared del contexto.
Aquí es donde entran los text splitters. Su trabajo es tomar un volumen grande de texto y partirlo en piezas más pequeñas, llamadas chunks, que sí caben dentro del límite del modelo.
¿Qué es un text splitter? Es una utilidad de LangChain que divide textos largos en fragmentos más pequeños llamados chunks, respetando límites de tokens y manteniendo coherencia semántica.
Hay tres razones principales por las que necesitas dividir el texto:
- Límite de tokens: cada modelo acepta un número máximo de tokens por entrada, y los splitters ajustan los fragmentos a esa restricción.
- Contexto entre fragmentos: aplicando superposiciones (overlap) entre chunks evitas perder información relevante en los cortes.
- Coherencia semántica: no se trata solo de cortar por tamaño, sino de asegurar que cada fragmento tenga sentido por sí mismo.
Cómo funciona el RecursiveCharacterTextSplitter en LangChain
El splitter más común para empezar es el que recorre el texto recursivamente carácter por carácter. Para usarlo, primero cargas tu archivo de texto y luego configuras el objeto splitter con sus parámetros [2:00].
El flujo básico se ve así:
- Abres el archivo, por ejemplo un
example.txtcon contenido tipo Lorem Ipsum, y lo guardas en una variable. - Lees el contenido y lo asignas a una variable como
estado_de_la_union. - Importas el splitter recursivo por caracteres y configuras sus parámetros.
- Creas el documento llamando al método que recibe una lista con tu texto.
Una vez creado el objeto, puedes acceder a cada fragmento por su índice. Por ejemplo, pedir el fragmento cero te devuelve el primer chunk que se generó.
Qué significan chunk size, overlap y length function
Estos tres parámetros definen cómo se corta tu texto y son los que más vas a tocar al ajustar resultados [2:30].
El chunk size establece cuántos caracteres tendrá cada fragmento. Si tu documento tiene 1.000 caracteres y eliges un chunk size de 100, obtendrás aproximadamente 10 fragmentos.
El overlap define cuántos caracteres se superponen entre un chunk y el siguiente. Si trabajas con chunks de 100 caracteres y un overlap de 20, cada fragmento incluirá los últimos 20 caracteres del anterior. Esto preserva continuidad y evita que una idea se rompa a la mitad.
La length function indica cómo se mide la longitud para hacer la división. Puedes medir por caracteres, por tokens o por la regla que necesites según tu caso.
¿Para qué sirve el overlap en un text splitter? Permite que cada chunk comparta caracteres con el anterior, manteniendo el contexto entre fragmentos para que el modelo no pierda información en los cortes.
Cómo usar separadores regex para dividir por patrones
Además de cortar por longitud, puedes pasarle un separador regex al splitter. Esto le dice que use una expresión regular para identificar dónde dividir, lo cual es útil cuando tu documento tiene patrones específicos como saltos de línea, encabezados o marcadores personalizados.
Con esta opción ganas control fino sobre los cortes y puedes adaptarlos a la estructura real del texto que estás procesando.
Cómo acceder a los fragmentos generados por el splitter
Después de crear el documento, cada chunk queda accesible como un objeto independiente. Puedes pedir el contenido completo o navegar fragmento por fragmento usando índices [4:30].
En una prueba con chunk size de 10 y overlap de 2, al pedir el fragmento cero el resultado fue simplemente la palabra Lorem. Cambiando el chunk size a 100, ese mismo fragmento contiene mucho más contenido. Esa es la flexibilidad que te da ajustar los parámetros: decides el nivel de granularidad según tu aplicación.
Explorar cada fragmento te permite verificar que la división tenga sentido antes de pasar los chunks al modelo o a un sistema de embeddings.
Qué otros text splitters puedes explorar en LangChain
El splitter recursivo por caracteres es solo el punto de partida. Dependiendo de tu caso, conviene probar otras variantes:
- Splitters por tokens: dividen tomando como unidad los tokens del modelo, lo que se alinea mejor con los límites reales de procesamiento.
- Splitters semánticos: cortan respetando el significado, agrupando frases o párrafos relacionados.
- Splitters con separadores personalizados: ideales cuando tu texto tiene una estructura clara como capítulos, secciones o marcadores.
El reto ahora es tuyo: prueba dividir un mismo documento con distintos splitters, compara los resultados y comparte tus hallazgos en los comentarios.