diff --git a/docs/api_reference/conf.py b/docs/api_reference/conf.py index 25d11a0750..9795e9dbf6 100644 --- a/docs/api_reference/conf.py +++ b/docs/api_reference/conf.py @@ -136,7 +136,7 @@ html_theme_path = ["themes"] # redirects dictionary maps from old links to new links html_additional_pages = {} redirects = { - "index": "api_reference", + "index": "langchain_api_reference", } for old_link in redirects: html_additional_pages[old_link] = "redirects.html" diff --git a/docs/api_reference/create_api_rst.py b/docs/api_reference/create_api_rst.py index 176bf444f2..d42a365ef9 100644 --- a/docs/api_reference/create_api_rst.py +++ b/docs/api_reference/create_api_rst.py @@ -1,6 +1,7 @@ """Script for auto-generating api_reference.rst.""" import importlib import inspect +import os import typing from enum import Enum from pathlib import Path @@ -11,14 +12,6 @@ from pydantic import BaseModel ROOT_DIR = Path(__file__).parents[2].absolute() HERE = Path(__file__).parent -PKG_DIR = ROOT_DIR / "libs" / "langchain" / "langchain" -EXP_DIR = ROOT_DIR / "libs" / "experimental" / "langchain_experimental" -CORE_DIR = ROOT_DIR / "libs" / "core" / "langchain_core" -COMMUNITY_DIR = ROOT_DIR / "libs" / "core" / "langchain_community" -WRITE_FILE = HERE / "api_reference.rst" -EXP_WRITE_FILE = HERE / "experimental_api_reference.rst" -COMMUNITY_WRITE_FILE = HERE / "community_api_reference.rst" - ClassKind = Literal["TypedDict", "Regular", "Pydantic", "enum"] @@ -295,51 +288,51 @@ def _build_rst_file(package_name: str = "langchain") -> None: with open(_out_file_path(package_name), "w") as f: f.write( _doc_first_line(package_name) - + _construct_doc(package_namespace[package_name], package_members) + + _construct_doc(_package_namespace(package_name), package_members) ) -package_namespace = { - "langchain": "langchain", - "experimental": "langchain_experimental", - "core": "langchain_core", - "community": "langchain_community", -} +def _package_namespace(package_name: str) -> str: + return ( + package_name + if package_name == "langchain" + else f"langchain_{package_name.replace('-', '_')}" + ) def _package_dir(package_name: str = "langchain") -> Path: """Return the path to the directory containing the documentation.""" - return ROOT_DIR / "libs" / package_name / package_namespace[package_name] + if package_name in ("langchain", "experimental", "community", "core", "cli"): + return ROOT_DIR / "libs" / package_name / _package_namespace(package_name) + else: + return ( + ROOT_DIR + / "libs" + / "partners" + / package_name + / _package_namespace(package_name) + ) def _out_file_path(package_name: str = "langchain") -> Path: """Return the path to the file containing the documentation.""" - name_prefix = { - "langchain": "", - "experimental": "experimental_", - "core": "core_", - "community": "community_", - } - return HERE / f"{name_prefix[package_name]}api_reference.rst" + return HERE / f"{package_name.replace('-', '_')}_api_reference.rst" def _doc_first_line(package_name: str = "langchain") -> str: """Return the path to the file containing the documentation.""" - prefix = { - "langchain": "", - "experimental": "experimental", - "core": "core", - "community": "community", - } - return f".. {prefix[package_name]}_api_reference:\n\n" + return f".. {package_name.replace('-', '_')}_api_reference:\n\n" def main() -> None: """Generate the api_reference.rst file for each package.""" - _build_rst_file(package_name="core") - _build_rst_file(package_name="langchain") - _build_rst_file(package_name="experimental") - _build_rst_file(package_name="community") + for dir in os.listdir(ROOT_DIR / "libs"): + if dir in ("cli", "partners"): + continue + else: + _build_rst_file(package_name=dir) + for dir in os.listdir(ROOT_DIR / "libs" / "partners"): + _build_rst_file(package_name=dir) if __name__ == "__main__": diff --git a/docs/api_reference/requirements.txt b/docs/api_reference/requirements.txt index ecc1cd9565..7f3e91d748 100644 --- a/docs/api_reference/requirements.txt +++ b/docs/api_reference/requirements.txt @@ -2,6 +2,7 @@ -e libs/langchain -e libs/core -e libs/community +-e libs/partners/google-genai pydantic<2 autodoc_pydantic==1.8.0 myst_parser diff --git a/docs/api_reference/themes/scikit-learn-modern/nav.html b/docs/api_reference/themes/scikit-learn-modern/nav.html index 118a41c8a1..56a94c3eff 100644 --- a/docs/api_reference/themes/scikit-learn-modern/nav.html +++ b/docs/api_reference/themes/scikit-learn-modern/nav.html @@ -6,6 +6,11 @@ {%- set top_container_cls = "sk-landing-container" %} {%- endif %} +{# title, link, link_attrs #} +{%- set drop_down_navigation = [ + ('Google Generative AI', pathto('google_genai_api_reference'), ''),] +-%} +