本文档介绍了 LangChain Python 的文档网站系统,该系统生成并维护托管在 python.langchain.com 上的静态文档网站。该系统处理内容、静态网站生成、部署和用户交互功能。
有关 API 参考生成的信息,请参阅API 参考生成。
文档系统围绕一个集中式软件包注册表构建,该注册表跟踪所有 LangChain 生态系统软件包及其元数据。该注册表是生成软件包特定文档和跟踪下载统计信息的基础。
软件包注册表跟踪 LangChain 生态系统中 100 多个软件包的基本元数据,包括仓库信息、下载统计信息和集成详情。
来源: libs/packages.yml1-667 docs/scripts/packages_yml_get_downloads.py1-74 .github/scripts/prep_api_docs_build.py1-102
该文档网站使用 Docusaurus 3.5.2 构建,并针对 LangChain Python 生态系统进行了配置,具有自定义主题、插件和内容处理功能。
Docusaurus 配置支持多种内容类型,包括 MDX 文件、Jupyter 笔记本和自动生成的 API 文档。
来源: docs/docusaurus.config.js1-327 docs/sidebars.js1-469 docs/package.json1-84 docs/Makefile1-88
文档构建过程涉及内容转换和增强的多个阶段,将原始内容转换为最终的网站结构。
内容处理管道通过添加 API 参考链接、相关内容建议以及在不同格式之间进行转换来自动增强文档。
来源: docs/scripts/generate_api_reference_links.py1-364 docs/scripts/append_related_links.py1-85 docs/scripts/resolve_local_links.py1-27
该文档网站采用复杂的构建系统,处理依赖项管理、内容生成以及部署到 Vercel。
构建系统针对 Vercel 的部署环境进行了优化,同时管理 LangChain 生态系统中复杂的依赖项。
来源: docs/Makefile1-88 docs/vercel.json1-166 docs/vercel_requirements.txt1-8 docs/ignore-step.sh1-34
该文档网站包含多项交互功能,旨在提升用户体验并收集反馈以持续改进。
| 组件 | 技术 | 目的 |
|---|---|---|
| 搜索 | Algolia | 文档全文搜索 |
| 注释 | Giscus(GitHub 讨论) | 页面上的社区讨论 |
| 反馈 | Supabase | 用户满意度跟踪 |
| 分析 | Google Analytics | 使用指标和洞察 |
反馈系统使用基于 Cookie 的去重功能,以防止垃圾邮件,同时收集详细的用户情感和评论,用于文档改进。
来源: docs/src/theme/Feedback.js1-298 docs/src/theme/DocItem/Paginator/index.js1-27 docs/docusaurus.config.js299-310
文档网站通过配置文件和环境变量支持广泛的自定义,从而实现不同的部署场景和功能开关。
| 文件 | 目的 | 关键设置 |
|---|---|---|
docusaurus.config.js | 主要 Docusaurus 配置 | 站点元数据、主题、插件 |
vercel.json | 部署配置 | 重定向、重写、构建设置 |
sidebars.js | 导航结构 | 文档层级 |
.yarnrc.yml | 包管理器设置 | Node 模块链接 |
系统使用多个环境变量进行外部服务集成
NEXT_PUBLIC_SUPABASE_PUBLIC_KEY - 用于反馈的 Supabase 集成NEXT_PUBLIC_SUPABASE_URL - Supabase 数据库 URLHANA_DB_* - 用于示例的 SAP HANA 数据库连接OPENAI_API_KEY - 用于笔记本示例的 API 密钥来源: docs/docusaurus.config.js321-324 docs/vercel.json1-166 docs/.yarnrc.yml1-2
文档系统包含自动化检查,以维护质量并防止断开的链接或过时内容。
自动化质量保证系统通过持续监控和验证,确保文档保持最新和正常运行。
来源: .github/workflows/check-broken-links.yml1-26 .github/workflows/api_doc_build.yml1-108 docs/scripts/check-broken-links.js1-8