API 参考生成系统负责自动提取和记录 LangChain 生态系统中所有公共类、函数和模块。该系统分析多个包中的 Python 代码,检测不同类型的对象(包括 Pydantic 模型、runnable 和 TypedDicts),并生成结构化文档,这些文档使用 Sphinx 构建并部署到 LangChain API 网站。
有关整体文档系统的信息,请参阅文档系统页面。本页面专门介绍自动化 API 参考生成过程。
LangChain API 参考文档通过自动化过程生成,该过程:
此过程每天通过 GitHub Actions 工作流程运行,确保 API 文档与最新的代码更改保持同步。
来源
API 参考生成系统由几个关键组件协同工作,以生成全面的文档。
create_api_rst.py 脚本是系统的核心,通过关键函数实现主文档生成管道:
_load_package_modules() - 递归扫描包目录_load_module_members() - 从每个模块中提取类和函数_construct_doc() - 使用适当的模板生成 RST 内容_build_rst_file() 和 _build_index() - 协调构建过程来源
API 参考生成器最重要的功能之一是它能够检测不同类型的类并应用适当的模板。这允许根据类类型进行自定义文档。
来源
系统根据要文档化的对象类型使用不同的 RST 模板。这些模板存储在 docs/api_reference/templates/ 目录中,包括:
| 模板名称 | ClassKind 值 | Sphinx 指令 | 特殊功能 |
|---|---|---|---|
templates/class.rst | "常规" | autoclass | 显示方法和属性 |
templates/pydantic.rst | "Pydantic" | autopydantic_model | 通过 :exclude-members: 排除 Pydantic 内部成员 |
templates/runnable_pydantic.rst | "RunnablePydantic" | autopydantic_model | 链接到 Runnable 接口,排除 Runnable 方法 |
templates/runnable_non_pydantic.rst | "RunnableNonPydantic" | autoclass | 带有 Runnable 注释的手动方法/属性块 |
templates/typeddict.rst | "TypedDict" | autoclass | 使用 autoattribute 显示字段 |
templates/enum.rst | "enum" | autoclass | 使用 autoattribute 显示枚举值 |
templates/function.rst | 不适用 | autofunction | 标准函数文档 |
来源
API 参考生成系统处理几个特殊情况,以增强文档:
系统通过检查 docstring 中的 ".. deprecated::" 来检测已弃用的类和函数,并将其在生成的 RST 文件中单独分组。来自 langchain_core._api.deprecation 的 @deprecated 装饰器会自动添加此标记。
_construct_doc() 中的检测逻辑
RST 生成模式
**Classes** 部分下**Deprecated classes** 部分下来源
来自 langchain_core._api.beta_decorator 的 @beta 装饰器向 docstring 添加 .. beta:: 指令。Sphinx 配置定义了一个自定义的 Beta 提示类,将其渲染为带样式的警告框。
Beta 指令实现
来源
API 参考通过 GitHub Actions 工作流程自动构建和部署。这确保了文档与最新代码更改保持同步。
来源
仓库准备:工作流程检出主 LangChain 仓库和目标文档仓库。
伙伴包集成:prep_api_docs_build.py 脚本将来自各种 LangChain 伙伴仓库的库移动到正确的结构中。
构建文档:
create_api_rst.py 脚本生成 RST 文件部署:生成的文档提交到 langchain-api-docs-html 仓库并部署为静态网站。
来源
API 参考生成器扫描 LangChain Monorepo 的 libs 目录和 libs/partners 目录,以查找所有要文档化的包。
对于每个包,系统会:
langchain、langchain_core、langchain_openai)来源
API 参考生成器为文档创建了一个分层导航结构:
langchain-core、langchain 等。langchain-openai、langchain-anthropic 等。主索引页面提供了一个包的图库网格视图,方便用户导航到 API 参考的不同部分。
来源
API 参考系统通过多种机制支持可扩展性:
conf.py 注册了两个自定义指令,以增强 API 文档:
从 guide_imports.json 读取以创建从 API 参考到示例笔记本的反向链接
为 Beta 功能创建带样式的警告框
注册
来源
系统在多个级别过滤私有 API:
模块级别: docstring 中包含 :private: 的模块被完全排除
对象级别: docstring 中包含 :private: 的类/函数被跳过
Sphinx autodoc 钩子: skip_private_members 函数确保私有对象不会被文档化
来源
API 参考生成系统是 LangChain 文档基础设施的关键组成部分。它自动从代码库中提取信息并生成全面的 API 文档。该系统确保:
通过自动化文档流程,LangChain 在其快速发展的包生态系统中保持高质量、最新的 API 参考。