LangChain 版本
LangChain 生态系统由不同的组件包组成(例如,@langchain/core
、langchain
、@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
。
发布节奏
我们预计 次要 版本(例如,从 0.2.0 到 0.3.0)的 langchain
和 @langchain/core
的间隔至少为 2-3 个月,因为这些版本可能包含重大更改。
补丁版本会频繁发布,因为它们包含错误修复和新功能。
API 稳定性
LLM 应用程序的开发是一个快速发展的领域,我们一直在从用户和社区学习。因此,我们预计 langchain
和 @langchain/core
中的 API 将继续演变,以更好地满足用户的需求。
虽然 langchain
和 @langchain/core
目前都处于 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 个月内被删除。
在某些情况下,如果该功能不会在软件包中造成问题,我们可能会允许它在代码库中保留更长时间,以减轻用户的负担。