Skip to main content
Open on GitHub

文档风格指南

随着 LangChain 的不断发展,涵盖各种概念和集成的文档需求也在持续增长。 本页为 LangChain 文档的撰写者提供指南,并概述了我们围绕组织和结构的一些理念。

理念

LangChain 的文档遵循 Diataxis 框架。 在此框架下,所有文档都属于以下四类之一:教程(Tutorials)、 操作指南(How-to guides)、 参考资料(References)和 概念解析(Explanations)。

教程 (Tutorials)

教程是带领读者完成实践活动的课程。其目的是通过展示一种以动手方式实现特定目标的方法,帮助用户理解概念及其相互作用。教程应避免深入探讨实现该目标的多种方法。相反,它应引导新用户通过推荐的路径来完成教程的目标。虽然教程的最终成果不一定需要完全生产就绪,但它应该是有用的,并能切实满足教程引言中明确陈述的目标。关于如何处理其他场景的信息应放在操作指南中。

引用 Diataxis 网站的话:

教程服务于用户技能和知识的习得——他们的学习。其目的不是为了帮助用户完成某项工作,而是帮助他们学习。

在 LangChain 中,这些通常是展示端到端用例的较高层级指南。

一些示例包括:

一个好的结构经验法则是遵循这个 Numpy 的示例 的结构。

以下是一些撰写优秀教程的高层级技巧:

  • 专注于引导用户完成某项工作,同时牢记最终目标是传授原理,而不是创建一个完美的生产系统。
  • 具体,而非抽象,并遵循一条路径。
    • 无需深入探讨替代方法,但可以引用它们,最好链接到合适的操作指南。
  • 尽快“取得进展”——让用户能够运行代码并看到输出。
    • 之后可以进行迭代和扩展。
    • 尝试在用户可以运行代码并查看进度的给定步骤处频繁进行检查点。
  • 关注结果,而非技术解释。
    • 大量链接到适当的概念/参考页面。
  • 首次提及 LangChain 的概念时,使用其全称(例如,“LangChain Expression Language (LCEL)”),并链接到其概念/其他文档页面。
    • 添加一个包含先决条件提示,链接到任何包含必要背景信息的页面也很有帮助。
  • 以总结/后续步骤部分结束,总结教程内容以及未来阅读方向,例如相关的操作指南。

操作指南 (How-to guides)

顾名思义,操作指南演示如何完成离散且特定的任务。 它应假定用户已熟悉基本概念,并专注于解决眼前的问题。然而, 它仍应提供一些背景信息或列出信息可能适用的特定场景。 在某些情况下,它们可以并且应该讨论替代方案,因为一种方法可能比另一种更好。

引用 Diataxis 网站的话:

操作指南服务于已有能力的用户的任务,你可以假定用户知道自己想做什么,并且能够正确地遵循你的指示。

一些示例包括:

以下是一些撰写优秀操作指南的高层级技巧:

  • 在开头清晰地解释你将指导用户完成什么。
  • 比教程具有更高的意图假设,并展示用户为完成该任务需要做什么。
  • 假定熟悉了概念,但解释为什么建议的操作有帮助。
    • 大量链接到概念/参考页面。
  • 讨论解决问题时可能出现的替代方案和实际权衡。
  • 使用大量示例代码。
    • 优先使用读者可以复制并运行的完整代码块。
  • 以总结/后续步骤部分结束,总结教程内容以及未来阅读方向,例如其他相关的操作指南。

概念解析 (Conceptual guide)

LangChain 的概念指南属于 Diataxis 的解释(Explanation)象限。这些指南应以比操作指南或教程更抽象的方式涵盖 LangChain 的术语和概念,目标是那些对深入理解和洞察框架感兴趣的求知欲强的用户。尽量避免过大的代码示例,因为主要目标是为用户提供视角,而不是完成一个实际项目。这些指南应涵盖事物为何如此运作。

本关于文档风格的指南也属于此类。

引用 Diataxis 网站的话:

解释的视角比其他类型更高更广。它不像操作指南那样从用户的视线水平来看,也不像参考资料那样近距离观察机器。它在每种情况下涵盖一个主题——“知识领域”,该领域必须以一种合理、有意义的方式进行界定。

一些示例包括:

以下是一些撰写优秀概念指南的高层级技巧:

  • 解释设计决策。概念 X 为何存在以及为何这样设计?
  • 使用类比和参考其他概念及替代方案。
  • 避免过多地混入参考内容。
  • 你可以并且应该引用其他指南中涵盖的内容,但要确保链接到它们。

参考资料 (References)

参考资料包含详细的底层信息,精确描述了存在哪些功能以及如何使用它们。 在 LangChain 中,这主要是我们的 API 参考页面,这些页面是从代码中的文档字符串中填充的。 参考页面通常不会通读,而是在用户需要了解如何使用特定内容时酌情查阅。

引用 Diataxis 网站的话:

参考指南的唯一目的是尽可能简洁、有序地进行描述。而教程和操作指南的内容由用户需求驱动,参考资料则由其描述的产品驱动。

LangChain 中的许多参考页面是从代码中自动生成的, 但以下是一些撰写良好文档字符串的高层级技巧:

  • 简洁明了
  • 讨论特殊情况和与用户预期不符的偏差
  • 详细说明必需的输入和输出
  • 关于何时使用某个功能的简要说明是可以的,但深入的细节应放在其他部分。

每个类别都服务于一个独特目的,并需要特定的方法来撰写和组织内容。

通用指南

在撰写和组织文档时,您应该考虑以下其他一些指南。

我们通常不合并外部贡献者的新教程,除非有迫切需求。 我们欢迎更新以及新的集成文档、操作指南和参考资料。

避免重复

多个页面深入涵盖相同内容的维护起来很困难,并且会造成混淆。对于给定的概念或功能,应该只有一个(极少数情况下为两个)规范页面。相反,您应该链接到其他指南。

链接到其他部分

由于文档的各个部分并非独立存在,因此频繁地链接到其他部分非常重要,以便开发者在阅读过程中了解不熟悉的主题。

这包括链接到 API 参考和概念部分!

简洁

总的来说,采取“少即是多”的方法。如果存在一个包含对某个概念的良好解释的现有页面,您应该链接到它,而不是重新解释,除非您正在记录的概念存在一些新的细节。

保持简洁,包括在代码示例中。

通用风格

  • 尽可能使用主动语态和现在时态。
  • 使用示例和代码片段来阐释概念和用法。
  • 使用适当的标题级别(###### 等)将内容分层组织。
  • 使用较少的单元格但包含更多代码,以便于复制粘贴。
  • 使用项目符号和编号列表将信息分解成易于理解的块。
  • 经常使用表格(尤其是对于参考资料部分)和图表来直观地呈现信息。
  • 对于较长的文档页面,包含目录以帮助读者导航内容,但对于较短的页面则隐藏它。