Skip to main content
在 GitHub 上打开

LangChain 发布政策

LangChain 生态系统由不同的组件包组成(例如langchain-core,langchain,langchain-community,langgraph,langserve、合作伙伴套餐等)

版本控制

langchain,langchain-core和集成包

langchain,langchain-core,langchain-text-splitters和集成包 (langchain-openai,langchain-anthropic等)遵循 0 格式的语义版本控制Y.Z. 这些包正在快速开发中,因此目前正在对主要版本为 0 的包进行版本控制。

以下产品将发生次要版本增加:

  • 标记为beta.

补丁版本将增加:

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

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

我们会不时地将软件包作为候选版本进行版本控制。这些版本旨在作为稳定版本发布,但我们希望在发布之前从社区获得反馈。候选版本将命名为 0。Y.ZrcN.例如,0.2.0rc1。如果未发现问题,则 release candidate 将作为具有相同版本号的稳定版本发布。如果发现问题,我们将发布一个新的候选版本,其N值(例如,0.2.0rc2)。

langchain-community

langchain-community当前版本为0.2.x.

以下产品将发生次要版本增加:

  • 更新到 required 的主要/次要版本langchain-x依赖。例如,当更新所需的langchain-core^0.2.x0.3.0.

补丁版本将增加:

  • 错误修复,
  • 新功能、
  • 对私有接口的任何更改,
  • beta特征
  • 对集成的重大更改,以反映第三方服务中的重大更改。

我们将尽可能避免对补丁版本进行重大更改。 但是,如果外部 API 进行了重大更改,则对相应的langchain-community集成可以在修补程序版本中进行。

langchain-experimental

langchain-experimental当前版本为0.0.x.所有更改都将伴随着补丁版本的增加。

发布节奏

我们预计langchainlangchain-core至少 2-3 个月,因为此类版本可能包含重大更改。

补丁版本经常发布,每周最多发布几次,因为它们包含错误修复和新功能。

API 稳定性

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

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

  • 对公共 API 的中断性变更将导致次要版本升级(第二位数字)
  • 任何错误修复或新功能都将导致补丁版本升级(第三位数字)

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

其他软件包的稳定性

LangChain 生态中其他 package 的稳定性可能会有所不同:

  • langchain-community是社区维护的软件包,其中包含第三方集成。虽然我们尽最大努力审查和测试langchain-community,langchain-community预计会经历比langchainlangchain-core因为它包含许多社区贡献。
  • 合作伙伴包可能遵循不同的稳定性和版本控制策略,用户应参阅这些包的文档以了解更多信息;但是,通常这些软件包应该是稳定的。

什么是“API 稳定性”?

API 稳定性意味着:

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

标记为内部的 API

某些 API 通过以下几种方式显式标记为 “internal”:

  • 一些文档引用了 internals 并提到了它们。如果文档说某些内容是内部的,则可能会更改。
  • 函数、方法和其他对象,前缀为前导下划线 ()。这是指示某物是私有的标准 Python 约定;如果任何方法以 single 开头,则它是内部 API。__
    • 例外:某些方法的前缀为 ,但不包含实现。这些方法旨在被提供实现的子类覆盖。此类方法通常是 LangChain 的 Public API 的一部分。_

弃用策略

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

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

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

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