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/)

      * [ RunnableParallel: Manipulating data ](/docs/expression_language/how_to/map)
      * [ RunnablePassthrough: Passing data through ](/docs/expression_language/how_to/passthrough)
      * [ RunnableLambda: Run Custom Functions ](/docs/expression_language/how_to/functions)
      * [ RunnableBranch: Dynamically route logic based on input ](/docs/expression_language/how_to/routing)
      * [ Bind runtime args ](/docs/expression_language/how_to/binding)
      * [ Configure chain internals at runtime ](/docs/expression_language/how_to/configure)
      * [ Create a runnable with the `@chain` decorator ](/docs/expression_language/how_to/decorator)
      * [ Add fallbacks ](/docs/expression_language/how_to/fallbacks)
      * [ Stream custom generator functions ](/docs/expression_language/how_to/generators)
      * [ Inspect your runnables ](/docs/expression_language/how_to/inspect)
      * [ Add message history (memory) ](/docs/expression_language/how_to/message_history)
    * [ 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/)

    * [ Agents ](/docs/modules/agents/)

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

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

  * [ LangGraph ](/docs/langgraph)

  * [ ](/)
  * [ LangChain Expression Language  ](/docs/expression_language/)
  * How to 

#  How to

## [ 📄️  RunnableParallel: Manipulating data  manipulating-inputs-output}
](/docs/expression_language/how_to/map) ## [ 📄️  RunnablePassthrough: Passing
data through  RunnablePassthrough allows to pass inputs unchanged or with the
addition  ](/docs/expression_language/how_to/passthrough) ## [ 📄️
RunnableLambda: Run Custom Functions  You can use arbitrary functions in the
pipeline.  ](/docs/expression_language/how_to/functions) ## [ 📄️
RunnableBranch: Dynamically route logic based on input  This notebook covers
how to do routing in the LangChain Expression
](/docs/expression_language/how_to/routing) ## [ 📄️