mirror of
https://github.com/hwchase17/langchain.git
synced 2025-08-11 13:55:03 +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
|
# redirects dictionary maps from old links to new links
|
||||||
html_additional_pages = {}
|
html_additional_pages = {}
|
||||||
redirects = {
|
redirects = {
|
||||||
"index": "api_reference",
|
"index": "langchain_api_reference",
|
||||||
}
|
}
|
||||||
for old_link in redirects:
|
for old_link in redirects:
|
||||||
html_additional_pages[old_link] = "redirects.html"
|
html_additional_pages[old_link] = "redirects.html"
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
"""Script for auto-generating api_reference.rst."""
|
"""Script for auto-generating api_reference.rst."""
|
||||||
import importlib
|
import importlib
|
||||||
import inspect
|
import inspect
|
||||||
|
import os
|
||||||
import typing
|
import typing
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
@ -11,14 +12,6 @@ from pydantic import BaseModel
|
|||||||
ROOT_DIR = Path(__file__).parents[2].absolute()
|
ROOT_DIR = Path(__file__).parents[2].absolute()
|
||||||
HERE = Path(__file__).parent
|
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"]
|
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:
|
with open(_out_file_path(package_name), "w") as f:
|
||||||
f.write(
|
f.write(
|
||||||
_doc_first_line(package_name)
|
_doc_first_line(package_name)
|
||||||
+ _construct_doc(package_namespace[package_name], package_members)
|
+ _construct_doc(_package_namespace(package_name), package_members)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
package_namespace = {
|
def _package_namespace(package_name: str) -> str:
|
||||||
"langchain": "langchain",
|
return (
|
||||||
"experimental": "langchain_experimental",
|
package_name
|
||||||
"core": "langchain_core",
|
if package_name == "langchain"
|
||||||
"community": "langchain_community",
|
else f"langchain_{package_name.replace('-', '_')}"
|
||||||
}
|
)
|
||||||
|
|
||||||
|
|
||||||
def _package_dir(package_name: str = "langchain") -> Path:
|
def _package_dir(package_name: str = "langchain") -> Path:
|
||||||
"""Return the path to the directory containing the documentation."""
|
"""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:
|
def _out_file_path(package_name: str = "langchain") -> Path:
|
||||||
"""Return the path to the file containing the documentation."""
|
"""Return the path to the file containing the documentation."""
|
||||||
name_prefix = {
|
return HERE / f"{package_name.replace('-', '_')}_api_reference.rst"
|
||||||
"langchain": "",
|
|
||||||
"experimental": "experimental_",
|
|
||||||
"core": "core_",
|
|
||||||
"community": "community_",
|
|
||||||
}
|
|
||||||
return HERE / f"{name_prefix[package_name]}api_reference.rst"
|
|
||||||
|
|
||||||
|
|
||||||
def _doc_first_line(package_name: str = "langchain") -> str:
|
def _doc_first_line(package_name: str = "langchain") -> str:
|
||||||
"""Return the path to the file containing the documentation."""
|
"""Return the path to the file containing the documentation."""
|
||||||
prefix = {
|
return f".. {package_name.replace('-', '_')}_api_reference:\n\n"
|
||||||
"langchain": "",
|
|
||||||
"experimental": "experimental",
|
|
||||||
"core": "core",
|
|
||||||
"community": "community",
|
|
||||||
}
|
|
||||||
return f".. {prefix[package_name]}_api_reference:\n\n"
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
def main() -> None:
|
||||||
"""Generate the api_reference.rst file for each package."""
|
"""Generate the api_reference.rst file for each package."""
|
||||||
_build_rst_file(package_name="core")
|
for dir in os.listdir(ROOT_DIR / "libs"):
|
||||||
_build_rst_file(package_name="langchain")
|
if dir in ("cli", "partners"):
|
||||||
_build_rst_file(package_name="experimental")
|
continue
|
||||||
_build_rst_file(package_name="community")
|
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__":
|
if __name__ == "__main__":
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
-e libs/langchain
|
-e libs/langchain
|
||||||
-e libs/core
|
-e libs/core
|
||||||
-e libs/community
|
-e libs/community
|
||||||
|
-e libs/partners/google-genai
|
||||||
pydantic<2
|
pydantic<2
|
||||||
autodoc_pydantic==1.8.0
|
autodoc_pydantic==1.8.0
|
||||||
myst_parser
|
myst_parser
|
||||||
|
@ -6,6 +6,11 @@
|
|||||||
{%- set top_container_cls = "sk-landing-container" %}
|
{%- set top_container_cls = "sk-landing-container" %}
|
||||||
{%- endif %}
|
{%- 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">
|
<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">
|
<div class="container-fluid {{ top_container_cls }} px-0">
|
||||||
{%- if logo_url %}
|
{%- if logo_url %}
|
||||||
@ -32,7 +37,7 @@
|
|||||||
<div class="sk-navbar-collapse collapse navbar-collapse" id="navbarSupportedContent">
|
<div class="sk-navbar-collapse collapse navbar-collapse" id="navbarSupportedContent">
|
||||||
<ul class="navbar-nav mr-auto">
|
<ul class="navbar-nav mr-auto">
|
||||||
<li class="nav-item">
|
<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>
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="sk-nav-link nav-link" href="{{ pathto('core_api_reference') }}">Core</a>
|
<a class="sk-nav-link nav-link" href="{{ pathto('core_api_reference') }}">Core</a>
|
||||||
@ -43,14 +48,22 @@
|
|||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="sk-nav-link nav-link" href="{{ pathto('experimental_api_reference') }}">Experimental</a>
|
<a class="sk-nav-link nav-link" href="{{ pathto('experimental_api_reference') }}">Experimental</a>
|
||||||
</li>
|
</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 %}
|
{%- for title, link, link_attrs in drop_down_navigation %}
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="sk-nav-link nav-link nav-more-item-mobile-items" href="{{ link }}" {{ link_attrs }}>{{ title }}</a>
|
<a class="sk-nav-link nav-link nav-more-item-mobile-items" href="{{ link }}" {{ link_attrs }}>{{ title }}</a>
|
||||||
</li>
|
</li>
|
||||||
{%- endfor %}
|
{%- 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>
|
</ul>
|
||||||
{%- if pagename != "search"%}
|
{%- if pagename != "search"%}
|
||||||
<div id="searchbox" role="search">
|
<div id="searchbox" role="search">
|
||||||
|
Loading…
Reference in New Issue
Block a user