diff --git a/docs/docs/how_to/installation.mdx b/docs/docs/how_to/installation.mdx index 9cbbbd4ca42..95c8028b458 100644 --- a/docs/docs/how_to/installation.mdx +++ b/docs/docs/how_to/installation.mdx @@ -2,11 +2,14 @@ sidebar_position: 2 --- -# Installation +# How to install LangChain packages + +The LangChain ecosystem is split into different packages, which allow you to choose exactly which pieces of +functionality to install. ## Official release -To install LangChain run: +To install the main LangChain package, run: import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -21,11 +24,24 @@ import CodeBlock from "@theme/CodeBlock"; -This will install the bare minimum requirements of LangChain. -A lot of the value of LangChain comes when integrating it with various model providers, datastores, etc. +While this package acts as a sane starting point to using LangChain, +much of the value of LangChain comes when integrating it with various model providers, datastores, etc. By default, the dependencies needed to do that are NOT installed. You will need to install the dependencies for specific integrations separately. +We'll show how to do that in the next sections of this guide. -## From source +## Ecosystem packages + +With the exception of the `langsmith` SDK, all packages in the LangChain ecosystem depend on `langchain-core`, which contains base +classes and abstractions that other packages use. The dependency graph below shows how the difference packages are related. +A directed arrow indicates that the source package depends on the target package: + +![](/img/ecosystem_packages.png) + +When installing a package, you do not need to explicitly install that package's explicit dependencies (such as `langchain-core`). +However, you may choose to if you are using a feature only available in a certain version of that dependency. +If you do, you should make sure that the installed or pinned version is compatible with any other integration packages you use. + +### From source If you want to install from source, you can do so by cloning the repo and be sure that the directory is `PATH/TO/REPO/langchain/libs/langchain` running: @@ -33,21 +49,21 @@ If you want to install from source, you can do so by cloning the repo and be sur pip install -e . ``` -## LangChain core +### LangChain core The `langchain-core` package contains base abstractions that the rest of the LangChain ecosystem uses, along with the LangChain Expression Language. It is automatically installed by `langchain`, but can also be used separately. Install with: ```bash pip install langchain-core ``` -## LangChain community +### LangChain community The `langchain-community` package contains third-party integrations. Install with: ```bash pip install langchain-community ``` -## LangChain experimental +### LangChain experimental The `langchain-experimental` package holds experimental LangChain code, intended for research and experimental uses. Install with: @@ -55,14 +71,15 @@ Install with: pip install langchain-experimental ``` -## LangGraph +### LangGraph `langgraph` is a library for building stateful, multi-actor applications with LLMs, built on top of (and intended to be used with) LangChain. Install with: ```bash pip install langgraph ``` -## LangServe + +### LangServe LangServe helps developers deploy LangChain runnables and chains as a REST API. LangServe is automatically installed by LangChain CLI. If not using LangChain CLI, install with: @@ -80,9 +97,10 @@ Install with: pip install langchain-cli ``` -## LangSmith SDK -The LangSmith SDK is automatically installed by LangChain. -If not using LangChain, install with: +### LangSmith SDK +The LangSmith SDK is automatically installed by LangChain. However, it does not depend on +`langchain-core`, and can be installed and used independently if desired. +If you are not using LangChain, you can install it with: ```bash pip install langsmith diff --git a/docs/static/img/ecosystem_packages.png b/docs/static/img/ecosystem_packages.png new file mode 100644 index 00000000000..e506d8b4643 Binary files /dev/null and b/docs/static/img/ecosystem_packages.png differ