菜单

API 参考生成

相关源文件

API 参考生成系统负责自动提取和记录 LangChain 生态系统中所有公共类、函数和模块。该系统分析多个包中的 Python 代码,检测不同类型的对象(包括 Pydantic 模型、runnable 和 TypedDicts),并生成结构化文档,这些文档使用 Sphinx 构建并部署到 LangChain API 网站。

有关整体文档系统的信息,请参阅文档系统页面。本页面专门介绍自动化 API 参考生成过程。

API 参考生成过程概述

LangChain API 参考文档通过自动化过程生成,该过程:

  1. 提取所有 LangChain 包的元数据
  2. 根据类型对类和函数进行分类
  3. 生成包含 autodoc 指令的 RST (reStructuredText) 文件
  4. 使用 Sphinx 构建文档
  5. 将构建好的文档部署到网站

此过程每天通过 GitHub Actions 工作流程运行,确保 API 文档与最新的代码更改保持同步。

来源

核心组件与架构

API 参考生成系统由几个关键组件协同工作,以生成全面的文档。

主脚本:create_api_rst.py

create_api_rst.py 脚本是系统的核心,通过关键函数实现主文档生成管道:

  • _load_package_modules() - 递归扫描包目录
  • _load_module_members() - 从每个模块中提取类和函数
  • _construct_doc() - 使用适当的模板生成 RST 内容
  • _build_rst_file()_build_index() - 协调构建过程

API 参考生成数据模型

来源

类分类系统

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 参考生成系统处理几个特殊情况,以增强文档:

已弃用的 API 元素

系统通过检查 docstring 中的 ".. deprecated::" 来检测已弃用的类和函数,并将其在生成的 RST 文件中单独分组。来自 langchain_core._api.deprecation@deprecated 装饰器会自动添加此标记。

_construct_doc() 中的检测逻辑

RST 生成模式

  • 常规类显示在 **Classes** 部分下
  • 已弃用类显示在 **Deprecated classes** 部分下
  • 两者使用相同的模板但单独分组

来源

Beta功能

来自 langchain_core._api.beta_decorator@beta 装饰器向 docstring 添加 .. beta:: 指令。Sphinx 配置定义了一个自定义的 Beta 提示类,将其渲染为带样式的警告框。

Beta 指令实现

来源

构建和 CI/CD 流程

API 参考通过 GitHub Actions 工作流程自动构建和部署。这确保了文档与最新代码更改保持同步。

来源

工作流程步骤

  1. 仓库准备:工作流程检出主 LangChain 仓库和目标文档仓库。

  2. 伙伴包集成prep_api_docs_build.py 脚本将来自各种 LangChain 伙伴仓库的库移动到正确的结构中。

  3. 构建文档:

    • create_api_rst.py 脚本生成 RST 文件
    • Sphinx 构建 HTML 文档
    • 应用自定义格式
  4. 部署:生成的文档提交到 langchain-api-docs-html 仓库并部署为静态网站。

来源

包发现与注册

API 参考生成器扫描 LangChain Monorepo 的 libs 目录和 libs/partners 目录,以查找所有要文档化的包。

对于每个包,系统会:

  1. 识别包命名空间(例如,langchainlangchain_corelangchain_openai
  2. 扫描包中的所有 Python 模块
  3. 提取所有类和函数
  4. 生成适当的 RST 文件用于文档

来源

索引生成和导航结构

API 参考生成器为文档创建了一个分层导航结构:

  1. 基础包:核心 LangChain 包,例如 langchain-corelangchain 等。
  2. 集成包:特定提供商的包,例如 langchain-openailangchain-anthropic 等。

主索引页面提供了一个包的图库网格视图,方便用户导航到 API 参考的不同部分。

来源

可扩展性和自定义文档

API 参考系统通过多种机制支持可扩展性:

自定义 Sphinx 指令

conf.py 注册了两个自定义指令,以增强 API 文档:

ExampleLinksDirective

guide_imports.json 读取以创建从 API 参考到示例笔记本的反向链接

Beta Admonition

为 Beta 功能创建带样式的警告框

注册

来源

私有 API 处理

系统在多个级别过滤私有 API:

模块级别: docstring 中包含 :private: 的模块被完全排除

对象级别: docstring 中包含 :private: 的类/函数被跳过

Sphinx autodoc 钩子: skip_private_members 函数确保私有对象不会被文档化

来源

结论

API 参考生成系统是 LangChain 文档基础设施的关键组成部分。它自动从代码库中提取信息并生成全面的 API 文档。该系统确保:

  1. 文档与代码保持同步
  2. 不同类型的类和函数得到适当的文档
  3. 已弃用或 Beta 阶段的 API 等特殊功能得到清晰标记
  4. 用户可以轻松导航 API 参考

通过自动化文档流程,LangChain 在其快速发展的包生态系统中保持高质量、最新的 API 参考。