过去一年,LangChain绝对是最活跃的开源软件,截止到今天Github上最新的开发版本v0.0.354。我也一直在关注LangChain的进展,其版本更新几乎是每天一个版本,而且还有大量的生态合作。过了这么长时间,终于发布了第一个稳定版本.
我们重点看看有哪些变化,以及后续用LangChain需要注意些什么。
之前,将所有发布版本都放在次版本号为 0 上创建了一些挑战:
·用户无法确信更新不会导致破坏性变化,具体的问题就是,不敢随便升级,即使是小版本
·langchain 变得臃肿和不稳定,采取了“保持一切”的方法来减少破坏性变化,社区共建管理上难度很大

02
—
架构的变化
架构变化将核心功能和生态功能拆分,保障不出现破坏性版本变更
LangChain v0.1.0稳定版本,进行了两个重大的架构更改:
langchain-core :将 langchain-core 分离出来,并将合作伙伴包(要么进入 langchain-community,要么成为独立的合作伙伴包)从 langchain 中分离出来。包括了所有核心的逻辑,由于 langchain-core 包含整个 LangChain 生态系统的基本抽象和运行时,我们将提前通知并进行版本升级,以传达任何破坏性更改。唯一的例外是带有 beta 装饰器的功能(您可以在 API 参考中看到这一点,并在使用此类功能时看到警告)。beta 特性之所以存在是因为考虑到领域变化的速度,能够快速适应仍然是一项优先任务。langchain-core 包含主要的抽象、接口和核心功能。这段代码是稳定的,并且在一个多月前开始遵循更严格的版本策略。
langchain-community:将所有第三方集成分离到 langchain-community 中 —— 这使得他们能够集中处理特定于集成的工作。他们还开始将单独的集成分离到它们自己的包中。到目前为止,他们已经对大约 10 个包进行了这样的处理,包括 OpenAI、Google 和 Mistral。其中一个好处是更好的依赖管理 —— 以前,所有依赖都是可选的,这在尝试安装特定版本时会导致一些困扰。现在,如果集成位于它们自己的包中,LangChain 可以更严格地对它们的需求进行版本控制,从而简化安装过程。另一个好处是版本控制。通常情况下,第三方集成会有变化,需要进行重大更改。现在,这些更改可以在独立的集成包中以适当的版本控制反映在单个集成的基础上。
这带来的好处是,以后这些包可以单独安装,项目依赖会变得更灵活。还有langchain-experimental,partner libs这两个,langchain-experimental 是一个实验性的包,可能会存在各种问题,partner libs包括了Openai,Google这些主要合作伙伴集成的工具包。
langgraph,这是一个新库,允许创建语言代理作为图形。允许用户创建更自定义的循环行为。可以定义明确的规划步骤、明确的反思步骤,或者轻松地硬编码,使特定工具始终首先调用。已经在OpenGPTs中支持使用。在接下来的几周里,将添加更多示例和文档。
https://python.langchain.com/docs/langgraph

02
—
未来关注的事项
未来关注的事项
LangChain v0.1.0稳定版本刚发布,官方已经在考虑LangChain v0.2,目前关注的一些事项有:
·使用更好的流处理和调试支持重写旧版链(在LCEL中)
·添加新类型的链
·添加新类型的代理
·改进我们的生产摄取能力
·删除旧的和未使用的功能
官方API文档已经说了一些api未来将不再支持,开发过程中我们可能也会遇到,原来跑得好好的代码,升级版本后就找不到导入的包了,这个可能是包的位置改了。
一些已经加上了注解[Deprecated],使用的时候就会出现提示,类似下面这样
AzureChatOpenAI was deprecated in LangChain 0.1.0 and will be removed in 0.2.0. Use langchain_openai.AzureChatOpenAI instead.
开源软件的发展离不开活跃的社区、完善的文档、良好的商业模式,这一点LangChain做得非常不错,期望她发展越来越好吧。
欢迎加入【数据行业交流群】社群,长按以下二维码加入专业微信群,商务合作加微信备注商务合作

往期历史热门文章:
基于DataOps的数据开发治理:实现数据流程的自动化和规范化
原文作者:Ruby的数据漫谈;如有侵权,请联系管理员删除。