2022-10-24 21:51:15 +00:00
|
|
|
"""Configuration file for the Sphinx documentation builder."""
|
2024-03-01 21:57:53 +00:00
|
|
|
|
2022-10-24 21:51:15 +00:00
|
|
|
# Configuration file for the Sphinx documentation builder.
|
|
|
|
#
|
|
|
|
# This file only contains a selection of the most common options. For a full
|
|
|
|
# list see the documentation:
|
|
|
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html
|
|
|
|
|
|
|
|
# -- Path setup --------------------------------------------------------------
|
|
|
|
|
2023-07-26 19:38:58 +00:00
|
|
|
import json
|
2023-06-30 16:23:32 +00:00
|
|
|
import os
|
|
|
|
import sys
|
2023-07-26 19:38:58 +00:00
|
|
|
from pathlib import Path
|
2022-10-24 21:51:15 +00:00
|
|
|
|
2022-12-05 01:44:40 +00:00
|
|
|
import toml
|
2023-07-26 19:38:58 +00:00
|
|
|
from docutils import nodes
|
|
|
|
from sphinx.util.docutils import SphinxDirective
|
2022-12-05 01:44:40 +00:00
|
|
|
|
2023-07-26 19:38:58 +00:00
|
|
|
# If extensions (or modules to document with autodoc) are in another directory,
|
|
|
|
# add these directories to sys.path here. If the directory is relative to the
|
|
|
|
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
|
|
|
|
|
|
|
_DIR = Path(__file__).parent.absolute()
|
2023-06-30 16:23:32 +00:00
|
|
|
sys.path.insert(0, os.path.abspath("."))
|
2023-07-21 19:37:21 +00:00
|
|
|
sys.path.insert(0, os.path.abspath("../../libs/langchain"))
|
2023-07-28 21:26:47 +00:00
|
|
|
sys.path.insert(0, os.path.abspath("../../libs/experimental"))
|
2023-06-30 16:23:32 +00:00
|
|
|
|
2023-07-26 19:38:58 +00:00
|
|
|
with (_DIR.parents[1] / "libs" / "langchain" / "pyproject.toml").open("r") as f:
|
2022-12-05 01:44:40 +00:00
|
|
|
data = toml.load(f)
|
2023-07-26 19:38:58 +00:00
|
|
|
with (_DIR / "guide_imports.json").open("r") as f:
|
|
|
|
imported_classes = json.load(f)
|
|
|
|
|
|
|
|
|
|
|
|
class ExampleLinksDirective(SphinxDirective):
|
|
|
|
"""Directive to generate a list of links to examples.
|
|
|
|
|
|
|
|
We have a script that extracts links to API reference docs
|
|
|
|
from our notebook examples. This directive uses that information
|
|
|
|
to backlink to the examples from the API reference docs."""
|
|
|
|
|
|
|
|
has_content = False
|
|
|
|
required_arguments = 1
|
|
|
|
|
|
|
|
def run(self):
|
|
|
|
"""Run the directive.
|
|
|
|
|
|
|
|
Called any time :example_links:`ClassName` is used
|
|
|
|
in the template *.rst files."""
|
|
|
|
class_or_func_name = self.arguments[0]
|
|
|
|
links = imported_classes.get(class_or_func_name, {})
|
|
|
|
list_node = nodes.bullet_list()
|
2024-02-22 01:04:23 +00:00
|
|
|
for doc_name, link in sorted(links.items()):
|
2023-07-26 19:38:58 +00:00
|
|
|
item_node = nodes.list_item()
|
|
|
|
para_node = nodes.paragraph()
|
|
|
|
link_node = nodes.reference()
|
|
|
|
link_node["refuri"] = link
|
|
|
|
link_node.append(nodes.Text(doc_name))
|
|
|
|
para_node.append(link_node)
|
|
|
|
item_node.append(para_node)
|
|
|
|
list_node.append(item_node)
|
|
|
|
if list_node.children:
|
|
|
|
title_node = nodes.title()
|
|
|
|
title_node.append(nodes.Text(f"Examples using {class_or_func_name}"))
|
|
|
|
return [title_node, list_node]
|
|
|
|
return [list_node]
|
|
|
|
|
|
|
|
|
|
|
|
def setup(app):
|
|
|
|
app.add_directive("example_links", ExampleLinksDirective)
|
|
|
|
|
2022-10-24 21:51:15 +00:00
|
|
|
|
|
|
|
# -- Project information -----------------------------------------------------
|
|
|
|
|
Docs refactor (#480)
Big docs refactor! Motivation is to make it easier for people to find
resources they are looking for. To accomplish this, there are now three
main sections:
- Getting Started: steps for getting started, walking through most core
functionality
- Modules: these are different modules of functionality that langchain
provides. Each part here has a "getting started", "how to", "key
concepts" and "reference" section (except in a few select cases where it
didnt easily fit).
- Use Cases: this is to separate use cases (like summarization, question
answering, evaluation, etc) from the modules, and provide a different
entry point to the code base.
There is also a full reference section, as well as extra resources
(glossary, gallery, etc)
Co-authored-by: Shreya Rajpal <ShreyaR@users.noreply.github.com>
2023-01-02 16:24:09 +00:00
|
|
|
project = "🦜🔗 LangChain"
|
infra: cut down on integration steps (#14785)
<!-- Thank you for contributing to LangChain!
Replace this entire comment with:
- **Description:** a description of the change,
- **Issue:** the issue # it fixes (if applicable),
- **Dependencies:** any dependencies required for this change,
- **Tag maintainer:** for a quicker response, tag the relevant
maintainer (see below),
- **Twitter handle:** we announce bigger features on Twitter. If your PR
gets announced, and you'd like a mention, we'll gladly shout you out!
Please make sure your PR is passing linting and testing before
submitting. Run `make format`, `make lint` and `make test` to check this
locally.
See contribution guidelines for more information on how to write/run
tests, lint, etc:
https://github.com/langchain-ai/langchain/blob/master/.github/CONTRIBUTING.md
If you're adding a new integration, please include:
1. a test for the integration, preferably unit tests that do not rely on
network access,
2. an example notebook showing its use. It lives in `docs/extras`
directory.
If no one reviews your PR within a few days, please @-mention one of
@baskaryan, @eyurtsev, @hwchase17.
-->
---------
Co-authored-by: Bagatur <baskaryan@gmail.com>
2023-12-17 20:55:59 +00:00
|
|
|
copyright = "2023, LangChain, Inc."
|
|
|
|
author = "LangChain, Inc."
|
2022-10-24 21:51:15 +00:00
|
|
|
|
2022-12-05 01:44:40 +00:00
|
|
|
version = data["tool"]["poetry"]["version"]
|
|
|
|
release = version
|
2022-10-24 21:51:15 +00:00
|
|
|
|
Docs refactor (#480)
Big docs refactor! Motivation is to make it easier for people to find
resources they are looking for. To accomplish this, there are now three
main sections:
- Getting Started: steps for getting started, walking through most core
functionality
- Modules: these are different modules of functionality that langchain
provides. Each part here has a "getting started", "how to", "key
concepts" and "reference" section (except in a few select cases where it
didnt easily fit).
- Use Cases: this is to separate use cases (like summarization, question
answering, evaluation, etc) from the modules, and provide a different
entry point to the code base.
There is also a full reference section, as well as extra resources
(glossary, gallery, etc)
Co-authored-by: Shreya Rajpal <ShreyaR@users.noreply.github.com>
2023-01-02 16:24:09 +00:00
|
|
|
html_title = project + " " + version
|
2023-03-11 17:18:35 +00:00
|
|
|
html_last_updated_fmt = "%b %d, %Y"
|
Docs refactor (#480)
Big docs refactor! Motivation is to make it easier for people to find
resources they are looking for. To accomplish this, there are now three
main sections:
- Getting Started: steps for getting started, walking through most core
functionality
- Modules: these are different modules of functionality that langchain
provides. Each part here has a "getting started", "how to", "key
concepts" and "reference" section (except in a few select cases where it
didnt easily fit).
- Use Cases: this is to separate use cases (like summarization, question
answering, evaluation, etc) from the modules, and provide a different
entry point to the code base.
There is also a full reference section, as well as extra resources
(glossary, gallery, etc)
Co-authored-by: Shreya Rajpal <ShreyaR@users.noreply.github.com>
2023-01-02 16:24:09 +00:00
|
|
|
|
2022-10-24 21:51:15 +00:00
|
|
|
|
|
|
|
# -- General configuration ---------------------------------------------------
|
|
|
|
|
|
|
|
# Add any Sphinx extension module names here, as strings. They can be
|
|
|
|
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
|
|
|
# ones.
|
|
|
|
extensions = [
|
|
|
|
"sphinx.ext.autodoc",
|
|
|
|
"sphinx.ext.autodoc.typehints",
|
|
|
|
"sphinx.ext.autosummary",
|
|
|
|
"sphinx.ext.napoleon",
|
2022-11-14 04:13:23 +00:00
|
|
|
"sphinx.ext.viewcode",
|
2022-10-25 03:24:15 +00:00
|
|
|
"sphinxcontrib.autodoc_pydantic",
|
2023-03-13 04:15:07 +00:00
|
|
|
"sphinx_copybutton",
|
2022-11-14 04:13:23 +00:00
|
|
|
"sphinx_panels",
|
Docs refactor (#480)
Big docs refactor! Motivation is to make it easier for people to find
resources they are looking for. To accomplish this, there are now three
main sections:
- Getting Started: steps for getting started, walking through most core
functionality
- Modules: these are different modules of functionality that langchain
provides. Each part here has a "getting started", "how to", "key
concepts" and "reference" section (except in a few select cases where it
didnt easily fit).
- Use Cases: this is to separate use cases (like summarization, question
answering, evaluation, etc) from the modules, and provide a different
entry point to the code base.
There is also a full reference section, as well as extra resources
(glossary, gallery, etc)
Co-authored-by: Shreya Rajpal <ShreyaR@users.noreply.github.com>
2023-01-02 16:24:09 +00:00
|
|
|
"IPython.sphinxext.ipython_console_highlighting",
|
2022-10-24 21:51:15 +00:00
|
|
|
]
|
2023-06-16 18:52:56 +00:00
|
|
|
source_suffix = [".rst"]
|
2022-11-14 04:13:23 +00:00
|
|
|
|
2023-08-04 20:10:58 +00:00
|
|
|
# some autodoc pydantic options are repeated in the actual template.
|
|
|
|
# potentially user error, but there may be bugs in the sphinx extension
|
|
|
|
# with options not being passed through correctly (from either the location in the code)
|
2022-10-25 03:24:15 +00:00
|
|
|
autodoc_pydantic_model_show_json = False
|
|
|
|
autodoc_pydantic_field_list_validators = False
|
|
|
|
autodoc_pydantic_config_members = False
|
|
|
|
autodoc_pydantic_model_show_config_summary = False
|
|
|
|
autodoc_pydantic_model_show_validator_members = False
|
2023-06-16 18:52:56 +00:00
|
|
|
autodoc_pydantic_model_show_validator_summary = False
|
|
|
|
autodoc_pydantic_model_signature_prefix = "class"
|
2023-06-30 16:23:32 +00:00
|
|
|
autodoc_pydantic_field_signature_prefix = "param"
|
|
|
|
autodoc_member_order = "groupwise"
|
|
|
|
autoclass_content = "both"
|
|
|
|
autodoc_typehints_format = "short"
|
2024-02-20 19:21:08 +00:00
|
|
|
autodoc_typehints = "both"
|
2023-06-30 16:23:32 +00:00
|
|
|
|
2022-10-24 21:51:15 +00:00
|
|
|
# Add any paths that contain templates here, relative to this directory.
|
2023-06-30 16:23:32 +00:00
|
|
|
templates_path = ["templates"]
|
2022-10-24 21:51:15 +00:00
|
|
|
|
|
|
|
# List of patterns, relative to source directory, that match files and
|
|
|
|
# directories to ignore when looking for source files.
|
|
|
|
# This pattern also affects html_static_path and html_extra_path.
|
|
|
|
exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"]
|
|
|
|
|
|
|
|
|
|
|
|
# -- Options for HTML output -------------------------------------------------
|
|
|
|
|
|
|
|
# The theme to use for HTML and HTML Help pages. See the documentation for
|
|
|
|
# a list of builtin themes.
|
|
|
|
#
|
2023-06-30 16:23:32 +00:00
|
|
|
html_theme = "scikit-learn-modern"
|
|
|
|
html_theme_path = ["themes"]
|
2022-10-24 21:51:15 +00:00
|
|
|
|
2023-06-30 16:23:32 +00:00
|
|
|
# redirects dictionary maps from old links to new links
|
|
|
|
html_additional_pages = {}
|
|
|
|
redirects = {
|
2023-12-13 21:37:27 +00:00
|
|
|
"index": "langchain_api_reference",
|
2023-01-03 18:16:59 +00:00
|
|
|
}
|
2023-06-30 16:23:32 +00:00
|
|
|
for old_link in redirects:
|
|
|
|
html_additional_pages[old_link] = "redirects.html"
|
2023-01-03 18:16:59 +00:00
|
|
|
|
infra: cut down on integration steps (#14785)
<!-- Thank you for contributing to LangChain!
Replace this entire comment with:
- **Description:** a description of the change,
- **Issue:** the issue # it fixes (if applicable),
- **Dependencies:** any dependencies required for this change,
- **Tag maintainer:** for a quicker response, tag the relevant
maintainer (see below),
- **Twitter handle:** we announce bigger features on Twitter. If your PR
gets announced, and you'd like a mention, we'll gladly shout you out!
Please make sure your PR is passing linting and testing before
submitting. Run `make format`, `make lint` and `make test` to check this
locally.
See contribution guidelines for more information on how to write/run
tests, lint, etc:
https://github.com/langchain-ai/langchain/blob/master/.github/CONTRIBUTING.md
If you're adding a new integration, please include:
1. a test for the integration, preferably unit tests that do not rely on
network access,
2. an example notebook showing its use. It lives in `docs/extras`
directory.
If no one reviews your PR within a few days, please @-mention one of
@baskaryan, @eyurtsev, @hwchase17.
-->
---------
Co-authored-by: Bagatur <baskaryan@gmail.com>
2023-12-17 20:55:59 +00:00
|
|
|
partners_dir = Path(__file__).parent.parent.parent / "libs/partners"
|
|
|
|
partners = [
|
|
|
|
(p.name, p.name.replace("-", "_") + "_api_reference")
|
|
|
|
for p in partners_dir.iterdir()
|
|
|
|
]
|
2024-02-06 21:49:23 +00:00
|
|
|
partners = sorted(partners)
|
infra: cut down on integration steps (#14785)
<!-- Thank you for contributing to LangChain!
Replace this entire comment with:
- **Description:** a description of the change,
- **Issue:** the issue # it fixes (if applicable),
- **Dependencies:** any dependencies required for this change,
- **Tag maintainer:** for a quicker response, tag the relevant
maintainer (see below),
- **Twitter handle:** we announce bigger features on Twitter. If your PR
gets announced, and you'd like a mention, we'll gladly shout you out!
Please make sure your PR is passing linting and testing before
submitting. Run `make format`, `make lint` and `make test` to check this
locally.
See contribution guidelines for more information on how to write/run
tests, lint, etc:
https://github.com/langchain-ai/langchain/blob/master/.github/CONTRIBUTING.md
If you're adding a new integration, please include:
1. a test for the integration, preferably unit tests that do not rely on
network access,
2. an example notebook showing its use. It lives in `docs/extras`
directory.
If no one reviews your PR within a few days, please @-mention one of
@baskaryan, @eyurtsev, @hwchase17.
-->
---------
Co-authored-by: Bagatur <baskaryan@gmail.com>
2023-12-17 20:55:59 +00:00
|
|
|
|
2022-11-04 15:02:21 +00:00
|
|
|
html_context = {
|
|
|
|
"display_github": True, # Integrate GitHub
|
infra: cut down on integration steps (#14785)
<!-- Thank you for contributing to LangChain!
Replace this entire comment with:
- **Description:** a description of the change,
- **Issue:** the issue # it fixes (if applicable),
- **Dependencies:** any dependencies required for this change,
- **Tag maintainer:** for a quicker response, tag the relevant
maintainer (see below),
- **Twitter handle:** we announce bigger features on Twitter. If your PR
gets announced, and you'd like a mention, we'll gladly shout you out!
Please make sure your PR is passing linting and testing before
submitting. Run `make format`, `make lint` and `make test` to check this
locally.
See contribution guidelines for more information on how to write/run
tests, lint, etc:
https://github.com/langchain-ai/langchain/blob/master/.github/CONTRIBUTING.md
If you're adding a new integration, please include:
1. a test for the integration, preferably unit tests that do not rely on
network access,
2. an example notebook showing its use. It lives in `docs/extras`
directory.
If no one reviews your PR within a few days, please @-mention one of
@baskaryan, @eyurtsev, @hwchase17.
-->
---------
Co-authored-by: Bagatur <baskaryan@gmail.com>
2023-12-17 20:55:59 +00:00
|
|
|
"github_user": "langchain-ai", # Username
|
2022-11-04 15:02:21 +00:00
|
|
|
"github_repo": "langchain", # Repo name
|
|
|
|
"github_version": "master", # Version
|
2023-06-16 18:52:56 +00:00
|
|
|
"conf_py_path": "/docs/api_reference", # Path in the checkout to the docs root
|
2023-06-30 16:23:32 +00:00
|
|
|
"redirects": redirects,
|
infra: cut down on integration steps (#14785)
<!-- Thank you for contributing to LangChain!
Replace this entire comment with:
- **Description:** a description of the change,
- **Issue:** the issue # it fixes (if applicable),
- **Dependencies:** any dependencies required for this change,
- **Tag maintainer:** for a quicker response, tag the relevant
maintainer (see below),
- **Twitter handle:** we announce bigger features on Twitter. If your PR
gets announced, and you'd like a mention, we'll gladly shout you out!
Please make sure your PR is passing linting and testing before
submitting. Run `make format`, `make lint` and `make test` to check this
locally.
See contribution guidelines for more information on how to write/run
tests, lint, etc:
https://github.com/langchain-ai/langchain/blob/master/.github/CONTRIBUTING.md
If you're adding a new integration, please include:
1. a test for the integration, preferably unit tests that do not rely on
network access,
2. an example notebook showing its use. It lives in `docs/extras`
directory.
If no one reviews your PR within a few days, please @-mention one of
@baskaryan, @eyurtsev, @hwchase17.
-->
---------
Co-authored-by: Bagatur <baskaryan@gmail.com>
2023-12-17 20:55:59 +00:00
|
|
|
"partners": partners,
|
2022-11-04 15:02:21 +00:00
|
|
|
}
|
|
|
|
|
2022-10-24 21:51:15 +00:00
|
|
|
# Add any paths that contain custom static files (such as style sheets) here,
|
|
|
|
# relative to this directory. They are copied after the builtin static files,
|
|
|
|
# so a file named "default.css" will overwrite the builtin "default.css".
|
2023-01-14 15:39:29 +00:00
|
|
|
html_static_path = ["_static"]
|
|
|
|
|
|
|
|
# These paths are either relative to html_static_path
|
2023-08-24 05:36:54 +00:00
|
|
|
# or fully qualified paths (e.g. https://...)
|
2023-01-14 15:39:29 +00:00
|
|
|
html_css_files = [
|
|
|
|
"css/custom.css",
|
|
|
|
]
|
2023-06-30 16:23:32 +00:00
|
|
|
html_use_index = False
|
2023-04-14 04:52:25 +00:00
|
|
|
|
Docs refactor (#480)
Big docs refactor! Motivation is to make it easier for people to find
resources they are looking for. To accomplish this, there are now three
main sections:
- Getting Started: steps for getting started, walking through most core
functionality
- Modules: these are different modules of functionality that langchain
provides. Each part here has a "getting started", "how to", "key
concepts" and "reference" section (except in a few select cases where it
didnt easily fit).
- Use Cases: this is to separate use cases (like summarization, question
answering, evaluation, etc) from the modules, and provide a different
entry point to the code base.
There is also a full reference section, as well as extra resources
(glossary, gallery, etc)
Co-authored-by: Shreya Rajpal <ShreyaR@users.noreply.github.com>
2023-01-02 16:24:09 +00:00
|
|
|
myst_enable_extensions = ["colon_fence"]
|
2023-06-30 16:23:32 +00:00
|
|
|
|
|
|
|
# generate autosummary even if no references
|
|
|
|
autosummary_generate = True
|
2024-03-01 21:57:53 +00:00
|
|
|
|
|
|
|
html_copy_source = False
|
|
|
|
html_show_sourcelink = False
|