一切为了稳定!Langchain 0.2预发布,更新速览!

导语

LangChain 作为当下非常流行的 LLM 应用开发框架,更新迭代实在太快,群里许多小伙伴表示上次的更新还没弄明白,新的更新又来了。

时隔 4 个月,LangChain 团队在官方博客带了 v0.2 的预发布版本,让我们一起快速看一下此次更新的重点都要哪些。

官博地址:官方博客

版本的核心

官方标题为《迈向稳定的一次飞跃》,不难看出 LangChain 团队此次更新的重点在于框架的稳定性,当然官博中也提到了安全性,从如此夸张的标题中也能够体会到开发团队针对稳定性和安全性做了非常多的工作。

要点速览

  • langchain 和 langchain-community 两个模块的完全分离
  • 新的并且带有版本控制的文档
  • 提供更加成熟和可控的 agent 框架
  • 改善和提升了 LLM 接口标准化,尤其是在工具调用上(tool calling)
  • 更好的支持流(streaming)
  • 新集成了 30 多个合作伙伴的开发包

深入了解

拥抱稳定性:LangChain 架构的演变

LangChain v0.2 中最值得注意的变化之一是 langchain 包与 langchain-community 包的解耦。解耦之后,langchain-community 现在依赖于 langchain-core 包 和 langchain 包。这是 LangChain 开发团队从 LangChain v0.1.0 就开始做的工作的延续,以创建一个更健壮和更独立的包。

LangChain 从 v0.1.0 开始将 LangChain 包分解为独立的组件包,以提高 LangChain 在生产环境中的可用性。其中包括 langchain-core、langchain、langchain-community 和合作伙伴包。点击了解更多信息

langchain-community 包含大量第三方集成。这意味着有很多(可选)依赖项,很多文件,并且由于集成的性质,偶尔容易受到 CVE 的攻击。因此,移除 langchain 对 langchain-community 的依赖使得 langchain 代码包更小的同时也降低了被攻击的风险,因此 langchain 包能够变得更轻量级、更聚焦、更安全。

通过继续暴露先前已存在的入口点,开发人员尝试以最小的破坏性方式进行包的重组(可以从 langchain.chat_models import ChatOpenAI 访问)。在底层,这涉及到从 langchain_community 包的有条件导入逻辑,即它会检查是否安装了 langchain-community 包,如果安装了则执行导入。这意味着如果您安装了 langchain-community,就不会有破坏性的更改。

这个包分离的想法,LangChain 团队是采纳了一名社区成员的建议
一切为了稳定!Langchain 0.2预发布,更新速览!_第1张图片

提高可扩展性:更好的版本化文档

根据社区反馈,开发团队修改了文档。这项工作一个多月前就开始了,也将主要以下面两种方式继续进行:

  • 首先,文档将使用版本控制来管理。这一直是社区的诉求,开发团队也一直在努力实现。现有的文档将作为 v0.1 版本进行维护,同时会构建一个单独的 v0.2 版本。现在文档默认是 v0.1 的版本,等到 v0.2 版本正式发布的时候,v0.2 将会变成默认文档。开发团队认为有版本控制的文档应当更好地反应项目包的状态,从现在开始他们也会着重注意这一点。

  • 其次,文档现在更加扁平和简单,主要有四个部分:教程、操作指南、概念指南和 API 参考。这样一来查找文档就变得比较清晰容易,也让指南集变得最小化。这也是采纳自社区的建议。

一切为了稳定!Langchain 0.2预发布,更新速览!_第2张图片

与此同时,他们也在制作一个“LangChain over time”文档页面,以便更好地突出 LangChain 的更改,应该类似于时间轴的演变记录,这有助于解释和关联不同版本的概念。

增强功能:LangGraph agents

在 LangChain 发布初期,用户反馈中诟病最大的就是对于已经定义好的 chain 或者 agent,很难去自定义其内部逻辑。为了解决这个问题,去年夏天开发团队引入了 LCEL,使得创建任意可组合序列变得容易。

到目前为止,LangChain 中的 agents 一直基于 AgentExecutor,这是一个带有硬编码逻辑的类,用于执行 agents。虽然开发团队不断地给这个类增加越来越多的参数,以支持更加高级的 agents,但它仍然不是真正可组合的。

几个月前,开发团队推出了 LangGraph,这是 LangChain 的一个扩展,专门用于降低创建 agents 的工作量。

可以把 LangGraph 看做是“agents 的 LCEL”。

LangGraph 建立在 LCEL 之上,添加了两个重要组件:

  • 轻松定义循环的能力(对 agents 很重要,但对 chain 来说不需要)
  • 内置内存

在 LangChain v0.2 中,开发团队依然保留了旧的AgentExecutor,也就是说即使升级了 v0.2,也不必急于更改 agents 的创建代码,但是官方会推荐使用 LangGraph 去构建 agents。官方提供了一个相当于AgentExecutor的预构建好的 LangGraph 对象,更加容易修改和自定义。

如果你想把旧代码迁移成使用 LangGraph 的新代码,可以参考如何从传统 LangChain 代理迁移到 LangGraph

v0.1.0 的改善:改进了对流、标准化工具调用(tool calling)等的支持

从去年发布 v0.1.0 之后,开发团队做出了以下重大改进:

  • 标准聊天模型接口:对工具调用进行了标准化,并为结构化输出添加了标准化接口,尽可能方便地实现在不同的 LLM 之间无缝切换。
  • 异步支持:改进了对许多核心抽象的异步支持。
  • 改进流(streaming)的支持:流对于 LLM 应用程序至关重要,开发团队通过添加事件流 API(Event Streaming API)改进了对流的支持。
  • Partner Packages合作:与生态系统合作伙伴密切合作,为 20 多个 Python 提供商(包括 MongoDB、Mistral 和 Together AI)以及 17 个 JavaScript 提供商(包括 Google VertexAI、Weaviate 和 Cloudflare)添加了专用包。

如何升级

v0.2 包含许多改进,但是它被设计为在很大程度上向后兼容,并进行最小的破坏性更改。与此同时,开发团队还添加了一个迁移命令行CLI来解决任何问题,以及突出标明版本之间变化的文档。
有关如何测试 CLI 和安装 v0.2 预发布版的详细信息,请查看GitHub Discussions thread。请继续关注 5 月 20 日那周的完整迁移指南。

start coding

Langchain 编程指南

快乐学习,简单学习!

关注了解更多AI编程、Java编程知识!

一切为了稳定!Langchain 0.2预发布,更新速览!_第3张图片

本文由mdnice多平台发布

你可能感兴趣的:(LangChain,程序人生,langchain,人工智能,ai,chatgpt)