!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())

[Skip to main content](#__docusaurus_skipToContent_fallback)

LangChain v0.2 is coming soon! Preview the new docs [here](/v0.2/docs/introduction/).

[

![🦜️🔗 Langchain](/v0.1/img/brand/wordmark.png)![🦜️🔗 Langchain](/v0.1/img/brand/wordmark-dark.png)

](/v0.1/)[Docs](/v0.1/docs/get_started/introduction/)[Use cases](/v0.1/docs/use_cases/)[Integrations](/v0.1/docs/integrations/platforms/)[API Reference](https://api.js.langchain.com)

[More](#)

*   [People](/v0.1/docs/people/)
*   [Community](/v0.1/docs/community/)
*   [Tutorials](/v0.1/docs/additional_resources/tutorials/)
*   [Contributing](/v0.1/docs/contributing/)

[v0.1](#)

*   [v0.2](https://js.langchain.com/v0.2/docs/introduction)
*   [v0.1](/v0.1/docs/get_started/introduction/)

[🦜🔗](#)

*   [LangSmith](https://smith.langchain.com)
*   [LangSmith Docs](https://docs.smith.langchain.com)
*   [LangChain Hub](https://smith.langchain.com/hub)
*   [LangServe](https://github.com/langchain-ai/langserve)
*   [Python Docs](https://python.langchain.com/)

[Chat](https://chatjs.langchain.com)[](https://github.com/langchain-ai/langchainjs)

Search

*   [Get started](/v0.1/docs/get_started/)
    
    *   [Introduction](/v0.1/docs/get_started/introduction/)
    *   [Installation](/v0.1/docs/get_started/installation/)
    *   [Quickstart](/v0.1/docs/get_started/quickstart/)
*   [LangChain Expression Language](/v0.1/docs/expression_language/)
    
    *   [Get started](/v0.1/docs/expression_language/get_started/)
    *   [Why use LCEL?](/v0.1/docs/expression_language/why/)
    *   [Interface](/v0.1/docs/expression_language/interface/)
    *   [Streaming](/v0.1/docs/expression_language/streaming/)
    *   [How to](/v0.1/docs/expression_language/how_to/routing/)
        
    *   [Cookbook](/v0.1/docs/expression_language/cookbook/)
        
    *   [LangChain Expression Language (LCEL)](/v0.1/docs/expression_language/)
*   [Modules](/v0.1/docs/modules/)
    
    *   [Model I/O](/v0.1/docs/modules/model_io/)
        
    *   [Retrieval](/v0.1/docs/modules/data_connection/)
        
    *   [Chains](/v0.1/docs/modules/chains/)
    *   [Agents](/v0.1/docs/modules/agents/)
        
    *   [More](/v0.1/docs/modules/memory/)
        
*   [Security](/v0.1/docs/security/)
*   [Guides](/v0.1/docs/guides/)
    
*   [Ecosystem](/v0.1/docs/ecosystem/)
    
    *   [Integrations](/v0.1/docs/ecosystem/integrations/)
        
        *   [Databerry](/v0.1/docs/ecosystem/integrations/databerry/)
        *   [Helicone](/v0.1/docs/ecosystem/integrations/helicone/)
        *   [Lunary](/v0.1/docs/ecosystem/integrations/lunary/)
        *   [Google MakerSuite](/v0.1/docs/ecosystem/integrations/makersuite/)
        *   [Unstructured](/v0.1/docs/ecosystem/integrations/unstructured/)
    *   [Integrating with LangServe](/v0.1/docs/ecosystem/langserve/)
    *   [LangSmith](https://docs.smith.langchain.com)
*   [LangGraph](/v0.1/docs/langgraph/)
*   * * *
    

*   [](/v0.1/)
*   [Ecosystem](/v0.1/docs/ecosystem/)
*   [Integrations](/v0.1/docs/ecosystem/integrations/)
*   Unstructured

On this page

Unstructured
============

This page covers how to use [Unstructured](https://unstructured.io) within LangChain.

What is Unstructured?[​](#what-is-unstructured "Direct link to What is Unstructured?")
--------------------------------------------------------------------------------------

Unstructured is an [open source](https://github.com/Unstructured-IO/unstructured) Python package for extracting text from raw documents for use in machine learning applications. Currently, Unstructured supports partitioning Word documents (in `.doc` or `.docx` format), PowerPoints (in `.ppt` or `.pptx` format), PDFs, HTML files, images, emails (in `.eml` or `.msg` format), epubs, markdown, and plain text files.

`unstructured` is a Python package and cannot be used directly with TS/JS, however Unstructured also maintains a [REST API](https://github.com/Unstructured-IO/unstructured-api) to support pre-processing pipelines written in other programming languages. The endpoint for the hosted Unstructured API is `https://api.unstructured.io/general/v0/general`, or you can run the service locally using the instructions found [here](https://github.com/Unstructured-IO/unstructured-api#dizzy-instructions-for-using-the-docker-image).

Check out the [Unstructured documentation page](https://unstructured-io.github.io/unstructured/) for instructions on how to obtain an API key.

Quick start[​](#quick-start "Direct link to Quick start")
---------------------------------------------------------

You can use Unstructured in `langchain` with the following code. Replace the filename with the file you would like to process. If you are running the container locally, switch the url to `http://127.0.0.1:8000/general/v0/general`. Check out the [API documentation page](https://api.unstructured.io/general/docs) for additional details.

    import { UnstructuredLoader } from "langchain/document_loaders/fs/unstructured";const options = {  apiKey: "MY_API_KEY",};const loader = new UnstructuredLoader(  "src/document_loaders/example_data/notion.md",  options);const docs = await loader.load();

#### API Reference:

*   [UnstructuredLoader](https://api.js.langchain.com/classes/langchain_document_loaders_fs_unstructured.UnstructuredLoader.html) from `langchain/document_loaders/fs/unstructured`

Directories[​](#directories "Direct link to Directories")
---------------------------------------------------------

You can also load all of the files in the directory using `UnstructuredDirectoryLoader`, which inherits from [`DirectoryLoader`](/v0.1/docs/integrations/document_loaders/file_loaders/directory/):

    import { UnstructuredDirectoryLoader } from "langchain/document_loaders/fs/unstructured";const options = {  apiKey: "MY_API_KEY",};const loader = new UnstructuredDirectoryLoader(  "langchain/src/document_loaders/tests/example_data",  options);const docs = await loader.load();

#### API Reference:

*   [UnstructuredDirectoryLoader](https://api.js.langchain.com/classes/langchain_document_loaders_fs_unstructured.UnstructuredDirectoryLoader.html) from `langchain/document_loaders/fs/unstructured`

Currently, the `UnstructuredLoader` supports the following document types:

*   Plain text files (`.txt`/`.text`)
*   PDFs (`.pdf`)
*   Word Documents (`.doc`/`.docx`)
*   PowerPoints (`.ppt`/`.pptx`)
*   Images (`.jpg`/`.jpeg`)
*   Emails (`.eml`/`.msg`)
*   HTML (`.html`)
*   Markdown Files (`.md`)

The output from the `UnstructuredLoader` will be an array of `Document` objects that looks like the following:

    [  Document {    pageContent: `Decoder: The decoder is also composed of a stack of N = 6  identical layers. In addition to the two sub-layers in each encoder layer, the decoder inserts a  third sub-layer, wh  ich performs multi-head attention over the output of the encoder stack. Similar to the encoder, we  employ residual connections around each of the sub-layers, followed by layer normalization. We also  modify the self  -attention sub-layer in the decoder stack to prevent positions from attending to subsequent  positions. This masking, combined with fact that the output embeddings are offset by one position,  ensures that the predic  tions for position i can depend only on the known outputs at positions less than i.`,    metadata: {      page_number: 3,      filename: '1706.03762.pdf',      category: 'NarrativeText'    }  },  Document {    pageContent: '3.2 Attention',    metadata: { page_number: 3, filename: '1706.03762.pdf', category: 'Title'  }]

* * *

#### Help us out by providing feedback on this documentation page:

[

Previous

Google MakerSuite

](/v0.1/docs/ecosystem/integrations/makersuite/)[

Next

Integrating with LangServe

](/v0.1/docs/ecosystem/langserve/)

*   [What is Unstructured?](#what-is-unstructured)
*   [Quick start](#quick-start)
*   [Directories](#directories)

Community

*   [Discord](https://discord.gg/cU2adEyC7w)
*   [Twitter](https://twitter.com/LangChainAI)

GitHub

*   [Python](https://github.com/langchain-ai/langchain)
*   [JS/TS](https://github.com/langchain-ai/langchainjs)

More

*   [Homepage](https://langchain.com)
*   [Blog](https://blog.langchain.dev)

Copyright © 2024 LangChain, Inc.