Repository Structure
If you plan on contributing to LangChain code or documentation, it can be useful to understand the high level structure of the repository.
LangChain is organized as a monorepo that contains multiple packages. You can check out our installation guide for more on how they fit together.
Here's the structure visualized as a tree:
.
βββ cookbook # Tutorials and examples
βββ docs # Contains content for the documentation here: https://python.langchain.com/
βββ libs
β βββ langchain
β β βββ langchain
β β βββ tests/unit_tests # Unit tests (present in each package not shown for brevity)
β β βββ tests/integration_tests # Integration tests (present in each package not shown for brevity)
β βββ community # Third-party integrations
β β βββ langchain-community
β βββ core # Base interfaces for key abstractions
β β βββ langchain-core
β βββ experimental # Experimental components and chains
β β βββ langchain-experimental
| βββ cli # Command line interface
β β βββ langchain-cli
β βββ text-splitters
β β βββ langchain-text-splitters
β βββ standard-tests
β β βββ langchain-standard-tests
β βββ partners
β βββ langchain-partner-1
β βββ langchain-partner-2
β βββ ...
β
βββ templates # A collection of easily deployable reference architectures for a wide variety of tasks.
The root directory also contains the following files:
pyproject.toml
: Dependencies for building docs and linting docs, cookbook.Makefile
: A file that contains shortcuts for building, linting and docs and cookbook.
There are other files in the root directory level, but their presence should be self-explanatory. Feel free to browse around!
Documentationβ
The /docs
directory contains the content for the documentation that is shown
at python.langchain.com and the associated API Reference.
See the documentation guidelines to learn how to contribute to the documentation.
Codeβ
The /libs
directory contains the code for the LangChain packages.
To learn more about how to contribute code see the following guidelines:
- Code: Learn how to develop in the LangChain codebase.
- Integrations: Learn how to contribute to third-party integrations to
langchain-community
or to start a new partner package. - Testing: Guidelines to learn how to write tests for the packages.