跳到主要内容

LangChain 发布

LangChain 生态系统由不同的组件包组成(例如,@langchain/corelangchain@langchain/community@langchain/langgraph、合作伙伴包等)

版本控制

langchain@langchain/core

langchain@langchain/core 遵循 语义版本控制,格式为 0.Y.Z。 这些软件包正在快速开发中,因此目前使用主版本 0 对软件包进行版本控制。

次要版本增加将发生在

  • 任何标记为 beta 的公共接口的重大更改。

补丁版本增加将发生在

  • 错误修复
  • 新功能
  • 对私有接口的任何更改
  • beta 功能的任何更改

在次要版本之间升级时,用户应查看重大更改和弃用列表。

我们会不时将软件包版本化为发布候选版本。 这些版本旨在作为稳定版本发布,但我们希望在这样做之前获得社区的反馈。 发布候选版本将版本化为 0.Y.Z-rc.N。 例如,0.2.0-rc.1。 如果未发现问题,则发布候选版本将作为具有相同版本号的稳定版本发布。 \如果发现问题,我们将发布一个新的发布候选版本,并将 N 值递增(例如,0.2.0-rc.2)。

langchain 生态系统中的其他软件包

生态系统中的其他软件包(包括用户软件包)可以遵循不同的版本控制方案,但通常应固定到 langchain@langchain/core 的特定次要版本。

发布节奏

我们预计 langchain@langchain/core次要版本发布(例如,从 0.2.0 到 0.3.0)至少间隔 2-3 个月,因为此类版本可能包含重大更改。

补丁版本会频繁发布,因为它们包含错误修复和新功能。

API 稳定性

LLM 应用程序的开发是一个快速发展的领域,我们不断从用户和社区中学习。 因此,我们希望 langchain@langchain/core 中的 API 将继续发展,以更好地满足用户的需求。

即使 langchain@langchain/core 目前都处于 pre-1.0 状态,我们仍致力于维护这些软件包中的 API 稳定性。

  • 对公共 API 的重大更改将导致次要版本号(第二个数字)的提升
  • 任何错误修复或新功能都将导致补丁版本号(第三个数字)的提升

我们通常会尽量避免进行不必要的更改,并为要删除的功能提供弃用策略。

其他软件包的稳定性

LangChain 生态系统中其他软件包的稳定性可能会有所不同

  • @langchain/community 是一个社区维护的软件包,包含第三方集成。 尽管我们尽力审查和测试 @langchain/community 中的更改,但由于 @langchain/community 包含许多社区贡献,因此预计它比 langchain@langchain/core 更容易出现重大更改。
  • 合作伙伴软件包可能遵循不同的稳定性和版本控制策略,用户应参考这些软件包的文档以获取更多信息; 但是,一般来说,这些软件包预计是稳定的。

什么是“API 稳定性”?

API 稳定性意味着

  • 所有公共 API(本文档中的所有内容)都不会在不提供向后兼容别名的情况下移动或重命名。
  • 如果这些 API 添加了新功能(这很有可能),它们不会破坏或更改现有方法的含义。 换句话说,“稳定”并不(一定)意味着“完整”。
  • 如果由于某种原因,必须删除或替换声明为稳定的 API,它将被声明为已弃用,但至少在两个次要版本中仍将保留在 API 中。 当调用已弃用的方法时,将发出警告。

标记为内部的 API

某些 API 在几种方面被明确标记为“内部”

  • 某些文档引用了内部组件并将其称为内部组件。 如果文档说明某项内容是内部的,则可能会更改。
  • 以单个下划线 (_) 为前缀的函数、方法和其他对象。 如果任何方法以单个 _ 开头,则它是内部 API。
    • 例外: 某些方法以 _ 为前缀,但不包含实现。 这些方法旨在被提供实现的子类覆盖。 此类方法通常是 LangChain 公共 API 的一部分。

弃用策略

我们通常会避免在更好的替代方案可用之前弃用功能。

当某个功能被弃用时,它将在当前和下一个次要版本的 langchain@langchain/core 中继续工作。 之后,该功能将被删除。

由于我们预计次要版本发布至少间隔 2-3 个月,这意味着一个功能可能会在弃用后的 2-6 个月内被删除。

在某些情况下,如果某个功能不会在软件包中引起问题,我们可以允许该功能在代码库中保留更长时间,以减轻用户的负担。


此页面是否对您有帮助?


您也可以留下详细的反馈 在 GitHub 上.