Skip to main content

[ ![🦜️🔗 Langchain](/img/brand/wordmark.png) ![🦜️🔗
Langchain](/img/brand/wordmark-dark.png) ](/) [ Docs
](/docs/get_started/introduction) [ Use cases ](/docs/use_cases) [
Integrations ](/docs/integrations/platforms/) [ Guides
](/docs/guides/debugging) [ API  ](https://api.python.langchain.com)

More

  * [ People ](/docs/people/)
  * [ Versioning ](/docs/packages)
  * [ Changelog ](/docs/changelog)
  * [ Contributing ](/docs/contributing)
  * [ Templates ](/docs/templates/)
  * [ Cookbooks  ](https://github.com/langchain-ai/langchain/blob/master/cookbook/README.md)
  * [ Tutorials ](/docs/additional_resources/tutorials)
  * [ YouTube ](/docs/additional_resources/youtube)

🦜️🔗

  * [ LangSmith  ](https://smith.langchain.com)
  * [ LangSmith Docs  ](https://docs.smith.langchain.com/)
  * [ LangServe GitHub  ](https://github.com/langchain-ai/langserve)
  * [ Templates GitHub  ](https://github.com/langchain-ai/langchain/tree/master/templates)
  * [ Templates Hub  ](https://templates.langchain.com)
  * [ LangChain Hub  ](https://smith.langchain.com/hub)
  * [ JS/TS Docs  ](https://js.langchain.com)

[ 💬  ](https://chat.langchain.com) [ ](https://github.com/langchain-
ai/langchain)

Search

  * [ Get started ](/docs/get_started)

    * [ Introduction ](/docs/get_started/introduction)
    * [ Installation ](/docs/get_started/installation)
    * [ Quickstart ](/docs/get_started/quickstart)
    * [ Security ](/docs/security)
  * [ LangChain Expression Language ](/docs/expression_language/)

    * [ Get started ](/docs/expression_language/get_started)
    * [ Why use LCEL ](/docs/expression_language/why)
    * [ Interface ](/docs/expression_language/interface)
    * [ Streaming ](/docs/expression_language/streaming)
    * [ How to ](/docs/expression_language/how_to/)

    * [ Cookbook ](/docs/expression_language/cookbook/)

    * [ LangChain Expression Language (LCEL) ](/docs/expression_language/)
  * [ Modules ](/docs/modules/)

    * [ Model I/O ](/docs/modules/model_io/)

    * [ Retrieval ](/docs/modules/data_connection/)

      * [ Document loaders ](/docs/modules/data_connection/document_loaders/)

      * [ Text Splitters ](/docs/modules/data_connection/document_transformers/)

      * [ Retrieval ](/docs/modules/data_connection/)
      * [ Text embedding models ](/docs/modules/data_connection/text_embedding/)

      * [ Vector stores ](/docs/modules/data_connection/vectorstores/)
      * [ Retrievers ](/docs/modules/data_connection/retrievers/)

      * [ Indexing ](/docs/modules/data_connection/indexing)
    * [ Agents ](/docs/modules/agents/)

    * [ Chains ](/docs/modules/chains)
    * [ More ](/docs/modules/memory/)

  * [ LangServe ](/docs/langserve)
  * [ LangSmith ](/docs/langsmith/)

  * [ LangGraph ](/docs/langgraph)

  * [ ](/)
  * [ Modules  ](/docs/modules/)
  * Retrieval 

#  Retrieval

Many LLM applications require user-specific data that is not part of the
model's training set. The primary way of accomplishing this is through
Retrieval Augmented Generation (RAG). In this process, external data is
_retrieved_ and then passed to the LLM when doing the _generation_ step.

LangChain provides all the building blocks for RAG applications - from simple
to complex. This section of the documentation covers everything related to the
_retrieval_ step - e.g. the fetching of the data. Although this sounds simple,
it can be subtly complex. This encompasses several key modules.

![Illustrative diagram showing the data connection process with steps: Source,
Load, Transform, Embed, Store, and
Retrieve.](/assets/images/data_connection-95ff2033a8faa5f3ba41376c0f6dd32a.jpg)

**[ Document loaders ](/docs/modules/data_connection/document_loaders/) **

**Document loaders** load documents from many different sources. LangChain
provides over 100 different document loaders as well as integrations with
other major providers in the space, like AirByte and Unstructured. LangChain
provides integrations to load all types o