跳到主要内容
Open on GitHub

LangChain 发布政策

LangChain 生态系统由不同的组件包组成(例如,langchain-corelangchainlangchain-communitylanggraphlangserve、合作伙伴包等)

版本控制

langchainlangchain-core 和集成包

langchainlangchain-corelangchain-text-splitters 以及集成包(langchain-openailangchain-anthropic 等)遵循 语义化版本控制,格式为 0.Y.Z。这些包正在快速开发中,因此目前主要版本号为 0。

次要版本增加将发生在以下情况:

  • 任何未标记为 beta 的公共接口的破坏性变更。

补丁版本增加将发生在以下情况:

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

在次要版本升级时,用户应查看破坏性变更和弃用列表。

我们将不时将包版本定为发布候选版本。这些版本旨在作为稳定版本发布,但我们希望在此之前从社区获得反馈。发布候选版本将采用 0.Y.ZrcN 的格式。例如,0.2.0rc1。如果未发现问题,发布候选版本将以相同的版本号作为稳定版本发布。如果发现问题,我们将发布一个新的发布候选版本,其 N 值会递增(例如,0.2.0rc2)。

langchain-community

次要版本增加将发生在以下情况:

  • 所需 langchain-x 依赖项的主要/次要版本更新。例如,当将 langchain-core 的所需版本从 ^0.2.x 更新到 0.3.0 时。

补丁版本增加将发生在以下情况:

  • 错误修复,
  • 新功能,
  • 私有接口的任何更改,
  • beta 功能的任何更改,
  • 集成中的破坏性更改,以反映第三方服务的破坏性更改。

我们将尽可能避免在补丁版本中进行破坏性更改。但是,如果外部 API 进行了破坏性更改,则相应 langchain-community 集成的破坏性更改可能发生在补丁版本中。

langchain-experimental

所有更改都将伴随着补丁版本号的增加。

发布节奏

我们预计 langchainlangchain-core次要版本发布(例如,从 0.2.x 到 0.3.0)间隔至少 2-3 个月,因为这些发布可能包含破坏性更改。

补丁版本发布频繁,每周可达数次,因为它们包含错误修复和新功能。

API 稳定性

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

尽管 langchainlangchain-core 目前都处于 1.0 之前的状态,但我们致力于维护这些包中的 API 稳定性。

  • 公共 API 的破坏性更改将导致次要版本(第二个数字)的增加。
  • 任何错误修复或新功能都将导致补丁版本(第三个数字)的增加。

我们通常会尽量避免不必要的更改,并为正在移除的功能提供弃用政策。

其他包的稳定性

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

  • langchain-community 是一个社区维护的包,包含第三方集成。虽然我们尽最大努力审查和测试 langchain-community 中的更改,但预计 langchain-community 将比 langchainlangchain-core 经历更多的破坏性更改,因为它包含许多社区贡献。
  • 合作伙伴包可能遵循不同的稳定性和版本控制政策,用户应查阅这些包的文档以获取更多信息;但总的来说,这些包预计是稳定的。

什么是“API 稳定性”?

API 稳定性意味着

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

标记为内部的 API

某些 API 以几种方式明确标记为“内部”:

  • 一些文档提到了内部机制,并注明其为内部。如果文档说某个内容是内部的,它可能会改变。
  • 以单下划线(_)为前缀的函数、方法和其他对象。这是 Python 中表示私有内容的标准约定;如果任何方法以单下划线 _ 开头,它就是内部 API。
    • 例外:某些方法以 _ 为前缀,但不包含实现。这些方法旨在由提供实现的子类覆盖。此类方法通常是 LangChain 公共 API 的一部分。

弃用政策

我们通常会避免弃用功能,直到有更好的替代方案可用。

当功能被弃用时,它将在 langchainlangchain-core 的当前版本和下一个次要版本中继续工作。此后,该功能将被移除。

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

在某些情况下,如果功能未在包中造成问题,我们可能会允许其在代码库中保留更长时间,以减轻用户负担。