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 https://python.langchain.com/ and the associated API Reference https://python.langchain.com/api_reference/langchain/index.html.
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.