菜单

文档系统

相关源文件

文档系统涵盖了用于构建、维护和部署 LangChain 综合文档网站的基础设施、工具和流程。该系统处理 python.langchain.com 上主要文档的内容生成、自动化处理、部署和用户体验功能。

有关 API 参考生成的具体信息,请参阅 API 参考生成。有关辅助开发工作流程的 CLI 工具和模板,请参阅 CLI 和模板

架构概述

文档系统基于 Docusaurus 构建,采用多阶段构建流程,将源内容转换为具有增强功能的生产就绪型网站。

来源:docs/Makefiledocs/docusaurus.config.jsdocs/vercel.json

网站基础设施

文档网站使用 Docusaurus 3.5.2 构建,配置用于处理 LangChain 复杂的文档结构和集成需求。

核心配置

docs/docusaurus.config.js 中的主要 Docusaurus 配置定义了

组件配置目的
站点元数据title: "🦜️🔗 LangChain"品牌和搜索引擎优化
URL 结构url: "https://python.langchain.ac.cn"生产部署
主题支持themes: ["@docusaurus/theme-mermaid"]图表渲染
搜索集成algolia: { appId: "VAU016LAWS" }全文搜索

docs/sidebars.js 中的侧边栏配置将内容组织成逻辑部分

来源:docs/docusaurus.config.js:127-311docs/sidebars.js:21-469

构建与部署过程

文档构建过程由 Makefile 管理并经 Vercel 部署的多个协调阶段组成。

多阶段构建管道

docs/Makefile 中的关键构建目标

目标目的关键操作
install-py-deps依赖设置python3 -m venv .venvuv pip install
generate-files内容生成功能表、外部内容获取
renderNotebook 处理Jupyter 到 markdown 转换
generate-referencesAPI 增强自动化 API 参考链接
vercel-build生产构建包含 API 文档集成的完整管道

部署配置

Vercel 部署在 docs/vercel.json 中配置,包含

  • 构建命令yarn build
  • 输出目录build
  • 条件构建:通过 ignore-step.sh 根据内容更改进行智能构建
  • URL 重写:版本路由和旧版 URL 处理
  • 重定向:针对已移动内容的 SEO 友好型 URL 管理

来源:docs/Makefile:1-88docs/vercel.json:1-166docs/ignore-step.sh:1-34

内容处理与自动化

文档系统采用多个自动化内容处理脚本,以增强用户体验并保持一致性。

generate_api_reference_links.py 脚本自动将 API 文档链接注入代码示例

该脚本支持 LangChain 和 LangGraph 生态系统,并采用不同的 URL 模式

  • LangChainhttps://python.langchain.ac.cn/api_reference/{pkg}/{module}/{path}.html
  • LangGraphhttps://github.langchain.ac.cn/langgraph/reference/{namespace}/#{module}.{class}

内容增强功能

脚本目的实现
append_related_links.py添加集成指南处理集成页面,添加概念/操作方法链接
resolve_local_links.py外部链接解析更新外部内容的相对链接
notebook_convert.pyJupyter 处理将 Notebook 转换为文档格式

来源:docs/scripts/generate_api_reference_links.py:1-364docs/scripts/append_related_links.py:1-85

质量保证与验证

该系统包含自动化质量保证工具,以维护文档完整性。

自动化链接检查通过 GitHub Actions 和 JavaScript 工具实现

.github/workflows/check-broken-links.yml 中的工作流程使用 @langchain/scripts 包运行链接验证,具有可配置的超时和重试设置。

构建优化

ignore-step.sh 脚本实现了智能构建跳过

  • 生产构建masterv0.1v0.2v0.3rc 分支始终进行
  • 开发构建:使用 git 日志分析检查 docs/ 目录中的更改
  • 更改检测:检查最近 50 次提交以查找与文档相关的更改

来源:.github/workflows/check-broken-links.yml:1-26docs/ignore-step.sh:1-34docs/scripts/check-broken-links.js:1-8

用户体验功能

文档系统包括基于 Docusaurus 构建的几项增强用户体验功能。

反馈收集系统

docs/src/theme/Feedback.js 中的反馈系统提供

主要功能

  • 速率限制:基于 Cookie 的重复提交预防(24 小时有效期)
  • 数据隐私:收集 IP 地址并进行 UUID 跟踪
  • 可选增强:后续评论收集
  • 项目范围LANGCHAIN_PROJECT_NAME = "langchain_py_docs"

增强导航

docs/src/theme/DocItem/Paginator/index.js 中的分页器增强功能集成了

  • 反馈组件:每页反馈收集
  • 讨论集成:Giscus 支持的 GitHub 讨论
  • 上下文导航:标准 Docusaurus 分页

搜索与分析

功能实现配置
搜索Algolia DocSearchappId: "VAU016LAWS"indexName: "python-langchain-latest"
分析Google Analytics多个跟踪 ID,用于全面指标
性能自定义 webpack 配置处理 polyfill、模块解析

来源:docs/src/theme/Feedback.js:1-298docs/src/theme/DocItem/Paginator/index.js:1-27docs/docusaurus.config.js:299-325