Inicio / Artículos

LangChain TextLoader: convertir archivos .txt simples en objetos Documento

LangChain TextLoader lee archivos .txt y los convierte en documentos con metadatos de origen, sin dividirlos en fragmentos, y autodetect_encoding permite procesar archivos en formato Shift-JIS y otros que no son UTF-8.

Editor: REACTAPP.TOP3 min de lectura727 palabras

Fuentes: How to Use TextLoader in LangChain to Load .txt File

En un pipeline RAG, la carga es el primer paso. Las fuentes llegan en formato .txt, .csv, .pdf, .md y otros. Esta nota se centra en TextLoader: el cargador de LangChain diseñado para archivos simples .txt.

Un cargador de documentos lee una fuente y la convierte en uno o más objetos Document. Un Document es la unidad de contenido estándar de LangChain. Tiene dos campos:

  • page_content — el texto en sí
  • metadata — un diccionario con información de origen (a menudo solo la ruta)

TextLoader toma una ruta, lee el archivo y devuelve Documents. No realiza particionamiento, limpieza, OCR ni transformaciones; solo carga el contenido. El particionamiento debe realizarse con un divisor posterior, mientras que la limpieza corresponde a un preprocesador. Mantener estas etapas separadas facilita el reemplazo de cada paso.

Cuándo es adecuado TextLoader

  • El contenido es texto plano: .txt, registros, notas exportadas, datos extraídos
  • Cargas un archivo o varios archivos con la misma estructura de texto
  • Solo necesitas metadatos básicos como la ruta del archivo
  • Deseas el paso inicial más económico antes de integrar el contenido

Cuándo elegir otra opción

  • Formatos mixtos (PDF, DOCX, HTML, CSV) en una sola pasada
  • Necesitas números de página, encabezados, nombres de hojas o metadatos sobre el autor
  • El archivo es binario o está en formato contenedor y requiere un analizador especializado

Experimento: de archivo a documento

1. Prepare un archivo de ejemplo

Guarde el texto del artículo como Sample.txt en el proyecto para que el cargador tenga algo concreto que leer. Cualquier texto UTF-8 funciona; los archivos más largos hacen que el comportamiento de “un documento por archivo” sea más evidente.

2. Construya el cargador

Note on Package Location

TextLoader is currently available through langchain_community.document_loaders.
However, LangChain is moving integrations into standalone packages, and this import path may change.
The import shown above works with langchain-community 0.4.2. For new projects, check the current LangChain documentation for the recommended import path.

La construcción aún no afecta al disco. TextLoader solo almacena la ruta (y las banderas de codificación opcionales) que se le proporcionaron. Esa construcción diferida es útil cuando se crea una lista de cargadores y se ejecutan posteriormente en un trabajo por lotes.

3. Llame a .load()

load() lee el archivo y devuelve una lista. Cada cargador de LangChain devuelve una lista, incluso cuando hay un solo documento. Los divisores y almacenes de vectores posteriores esperan esa estructura de lista, por lo que los cargadores mantienen coherencia entre diferentes tipos de archivos.

4. Verifique la longitud de la lista

Para Sample.txt la lista contiene exactamente un elemento. Un archivo de texto plano siempre genera un Documento, sin importar cuán largo sea el archivo. Los saltos de línea y los párrafos no crean Documentos adicionales; todo el archivo constituye un único bloque de page_content. Si necesita unidades más pequeñas, agregue un divisor de texto después de cargarlo.

5. Inspeccionar el Documento

docs[0] es un Documento. page_content alberga el texto completo. metadata suele contener únicamente source (la ruta). TextLoader no inventa títulos, autores ni fechas. Si necesita metadatos más detallados, átelos usted mismo después de cargar o elija un cargador que extraiga la estructura.

Parámetros del constructor

TextLoader(file_path, encoding=None, autodetect_encoding=False)
  1. file_path — ruta hacia el archivo .txt
  2. encoding — códec explícito para la lectura (UTF-8, latin-1, …)
  • autodetect_encoding — intentar de nuevo con el códec detectado si la primera decodificación falla
  • Puntos críticos relacionados con la codificación en corpus mixtos

    Si se omite la codificación, TextLoader utiliza el valor predeterminado de la plataforma (generalmente UTF-8). Un archivo Sample.txt en formato UTF-8 se carga sin problemas y sin necesidad de flags adicionales.

    Cree un archivo sample2.txt guardado en formato Shift-JIS con algunas líneas en japonés:

    今日は良い天気です。
    私は毎日プログラミングを勉強しています。
    Pythonを使って新しいアプリを作っています。
    

    Intentar cargar el archivo sin especificar la codificación fallará, ya que una decodificación en UTF-8 no puede manejar los bytes de Shift-JIS. Es necesario pasar autodetect_encoding=True. TextLoader utiliza chardet para intentar adivinar el códec tras el fracaso del intento con UTF-8 y luego vuelve a intentarlo con esa suposición. Esto es importante al procesar archivos provenientes de fuentes mixtas o desconocidas, donde una codificación incorrecta podría interrumpir todo el proceso.

    Resumen

    TextLoader es el cargador más pequeño y útil para texto plano en LangChain RAG: se ingresa la ruta del archivo, se obtiene una lista de documentos y se incluye un mínimo de metadatos; además, permite la detección automática de codificación cuando el corpus es desordenado. Úsalo cuando el archivo ya sea texto; opta por cargadores más avanzados cuando haya necesidad de manejar estructuras o formatos binarios.