欢迎光临散文网 会员登陆 & 注册

【LangChain 实战】用 LangChain 为 LangChain 编写 TSDoc 注释

2023-08-28 19:23 作者:沧海九粟  | 我要投稿

LangChain JS 的维护者 Jacob Lee 老师最近发布了一个非常棒的新工具,可以自动为 TypeScript 代码生成 TSDoc 注释。这可以极大地提高开源项目的可维护性和贡献者友好性。本文将详细介绍这个工具的工作原理。

原推:https://twitter.com/zhanghaili0610/status/1696010772315537814?s=20

LangChain.js TSDoc 注释生成链的时序图

整个工作流程可以划分为以下几个步骤(上图覆盖了前两个步骤):

  1. 将源代码文件传给检索式问答 Agent,给它一个针对技术写作人员的提示,要求其定义代码中涉及的 LangChain 专有术语。Agent 可以自主决定需要查阅哪些术语来理解代码。这里使用了之前构建的 Weaviate 向量索引,其中包含了 LangChain Python 文档,可以覆盖 JS/TS 实现和抽象的大部分内容。

  2. 使用 OpenAI Functions 并构造 Runnable Chain,将第一步生成的上下文以及原始代码作为输入,输出结构化的格式化数据,包含生成的注释内容、所注释的声明等信息。

  3. 对于每条生成的注释,使用 TypeScript 的 AST 解析接口,在源码中确定对应的声明的位置。

  4. 使用第 2 步生成的数据,生成实际的注释字符串。

  5. 将生成的注释拼接插入源代码文件相应位置,并写入文件系统。

整个流程使用了 LangChain 的模块化和组合性,通过 Runnable Map 和 RunnableSequence 可以非常灵活地将不同的步骤组合在一起。关键的 LLM 推理步骤使用了OpenAI API。

与直接让 LLM 生成整个文件的注释相比,这种结构化的流程可以避免一些常见的问题,如无法处理特殊术语、覆盖已有注释等。同时也更加高效,只需要针对必要的声明生成注释。

这个工具对于提高开源项目的可维护性和活跃度有非常大的帮助。它可以减轻维护者的负担,降低新贡献者的进入门槛。测试结果显示,对 LangChain.js 本身代码库使用这个工具就能自动生成数百个高质量的 TSDoc 注释!

总之,这是一个非常棒的项目,充分展示了 LangChain 在自动化文档和代码生成方面的潜力。结合检索问答、LLM 生成和编程接口,可以完成非常复杂的任务。期待 LangChain 团队未来会有更多像这样的创新项目!


【LangChain 实战】用 LangChain 为 LangChain 编写 TSDoc 注释的评论 (共 条)

分享到微博请遵守国家法律