mirror of
https://github.com/hwchase17/langchain.git
synced 2025-08-11 05:45:01 +00:00
docs: build partner api refs (#14675)
This commit is contained in:
parent
6c031e0ebf
commit
effd000b91
@ -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"
|
||||
|
@ -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__":
|
||||
|
@ -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
|
||||
|
@ -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'), ''),]
|
||||
-%}
|
||||
|
||||
<nav id="navbar" class="{{ nav_bar_class }} navbar navbar-expand-md navbar-light bg-light py-0">
|
||||
<div class="container-fluid {{ top_container_cls }} px-0">
|
||||
{%- if logo_url %}
|
||||
@ -32,7 +37,7 @@
|
||||
<div class="sk-navbar-collapse collapse navbar-collapse" id="navbarSupportedContent">
|
||||
<ul class="navbar-nav mr-auto">
|
||||
<li class="nav-item">
|
||||
<a class="sk-nav-link nav-link" href="{{ pathto('api_reference') }}">API</a>
|
||||
<a class="sk-nav-link nav-link" href="{{ pathto('langchain_api_reference') }}">LangChain</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="sk-nav-link nav-link" href="{{ pathto('core_api_reference') }}">Core</a>
|
||||
@ -43,14 +48,22 @@
|
||||
<li class="nav-item">
|
||||
<a class="sk-nav-link nav-link" href="{{ pathto('experimental_api_reference') }}">Experimental</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="sk-nav-link nav-link" target="_blank" rel="noopener noreferrer" href="https://python.langchain.com/">Python Docs</a>
|
||||
</li>
|
||||
{%- for title, link, link_attrs in drop_down_navigation %}
|
||||
<li class="nav-item">
|
||||
<a class="sk-nav-link nav-link nav-more-item-mobile-items" href="{{ link }}" {{ link_attrs }}>{{ title }}</a>
|
||||
</li>
|
||||
{%- endfor %}
|
||||
<li class="nav-item dropdown nav-more-item-dropdown">
|
||||
<a class="sk-nav-link nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Partner libs</a>
|
||||
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
|
||||
{%- for title, link, link_attrs in drop_down_navigation %}
|
||||
<a class="sk-nav-dropdown-item dropdown-item" href="{{ link }}" {{ link_attrs }}>{{ title}}</a>
|
||||
{%- endfor %}
|
||||
</div>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="sk-nav-link nav-link" target="_blank" rel="noopener noreferrer" href="https://python.langchain.com/">Python Docs</a>
|
||||
</li>
|
||||
</ul>
|
||||
{%- if pagename != "search"%}
|
||||
<div id="searchbox" role="search">
|
||||
|
Loading…
Reference in New Issue
Block a user