Skip to main content
The unstructured package from Unstructured.IO extracts clean text from raw source documents like PDFs and Word documents. This page covers how to use the unstructured ecosystem within LangChain.

Installation and setup

If you are using a loader that runs locally, use the following steps to get unstructured and its dependencies running.
  • For the smallest installation footprint and to take advantage of features not available in the open-source unstructured package, install the Python SDK with pip install unstructured-client along with pip install langchain-unstructured to use the UnstructuredLoader and partition remotely against the Unstructured API. This loader lives in a LangChain partner repo instead of the langchain-community repo and you will need an api_key. You can generate a free key on the Unstructured API key page.
  • To run everything locally, install the open-source python package with pip install unstructured along with pip install langchain-community and use the same UnstructuredLoader as mentioned above.
    • You can install document specific dependencies with extras, e.g. pip install "unstructured[docx]". Learn more about extras in the full installation documentation.
    • To install the dependencies for all document types, use pip install "unstructured[all-docs]".
  • Install the following system dependencies if they are not already available on your system with e.g. brew install for Mac. Depending on what document types you’re parsing, you may not need all of these.
    • libmagic-dev (filetype detection)
    • poppler-utils (images and PDFs)
    • tesseract-ocr(images and PDFs)
    • qpdf (PDFs)
    • libreoffice (MS Office docs)
    • pandoc (EPUBs)
  • When running locally, Unstructured also recommends using Docker by following this guide to ensure all system dependencies are installed correctly.
The Unstructured API requires API keys to make requests. You can request an API key and start using it today! Check out the Unstructured API README to get started making API calls. We’d love to hear your feedback, let us know how it goes in our community slack. And stay tuned for improvements to both quality and performance! Check out the Docker self-hosting instructions if you’d like to self-host the Unstructured API or run it locally.

Data loaders

The primary usage of Unstructured is in data loaders.

UnstructuredLoader

See a usage example to see how you can use this loader for both partitioning locally and remotely with the serverless Unstructured API.

UnstructuredCHMLoader

CHM means Microsoft Compiled HTML Help.

UnstructuredCSVLoader

A comma-separated values (CSV) file is a delimited text file that uses a comma to separate values. Each line of the file is a data record. Each record consists of one or more fields, separated by commas. See a usage example.

UnstructuredEmailLoader

See a usage example.

UnstructuredEPubLoader

EPUB is an e-book file format that uses the “.epub” file extension. The term is short for electronic publication and is sometimes styled ePub. EPUB is supported by many e-readers, and compatible software is available for most smartphones, tablets, and computers. See a usage example.

UnstructuredExcelLoader

See a usage example.

UnstructuredFileIOLoader

See a usage example.

UnstructuredHTMLLoader

UnstructuredImageLoader

See a usage example.

UnstructuredMarkdownLoader

See a usage example.

UnstructuredODTLoader

The Open Document Format for Office Applications (ODF), also known as OpenDocument, is an open file format for word processing documents, spreadsheets, presentations and graphics and using ZIP-compressed XML files. It was developed with the aim of providing an open, XML-based file format specification for office applications. See a usage example.

UnstructuredOrgModeLoader

An Org Mode document is a document editing, formatting, and organizing mode, designed for notes, planning, and authoring within the free software text editor Emacs. See a usage example.

UnstructuredPDFLoader

UnstructuredPowerPointLoader

See a usage example.

UnstructuredRSTLoader

A reStructured Text (RST) file is a file format for textual data used primarily in the Python programming language community for technical documentation. See a usage example.

UnstructuredRTFLoader

See a usage example in the API documentation.

UnstructuredTSVLoader

A tab-separated values (TSV) file is a simple, text-based file format for storing tabular data. Records are separated by newlines, and values within a record are separated by tab characters. See a usage example.

UnstructuredURLLoader

See a usage example.

UnstructuredWordDocumentLoader

See a usage example.

UnstructuredXMLLoader

See a usage example.