首页 > 其他分享 >【LangChain v0.2:向稳定性迈进的一大步】

【LangChain v0.2:向稳定性迈进的一大步】

时间:2024-07-12 12:02:08浏览次数:9  
标签:模型 langchain 一大步 文档 LangChain 我们 v0.2

文末有福利!

LangChain v0.2:向稳定性迈进的一大步

本文经翻译并二次整理自LangChain v0.2: A Leap Towards Stability一文。LangChain官方正式对外宣布了LangChain v0.2的预发布版本,这个版本在提升LangChain的稳定性和安全性方面迈出了重要一步。

langchain v0.2的预发布版。这个新版本不仅在v0.1的基础上进行了改进,还吸纳了社区的反馈。以下是v0.2版本的主要亮点:

  • 实现了社区热切期待的langchainlangchain-community的完全分离。

  • 引入了新版(而且是有版本控制的!)文档。

  • 提供了一个更加成熟和可控的代理框架。

  • 对大型语言模型(LLM)的接口进行了标准化改进,特别是在工具调用方面。

  • 增强了对流媒体的支持。

  • 新增了30多个合作伙伴的集成包。

请注意,这只是一个预发布版本,正式的v0.2版本将在几周后与大家见面。下面,让我们一起来看看langchain v0.2版本将带来哪些新特性。

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

langchain v0.2中,最引人注目的改进之一是对langchain包和langchain-community进行了彻底的解耦。这意味着langchain-community现在将依赖于langchain-corelangchain。这是我们自langchain v0.1.0以来一直在努力的方向,目的是为了构建一个更加健壮和独立的软件包。

作为提醒,langchain v0.1.0将langchain软件包分解为多个组件包,这样做的目的是为了提高LangChain在生产环境中的易用性。这些组件包括langchain-corelangchainlangchain-community以及合作伙伴的集成包。想要了解更多,可以点击这里。

langchain-community包含了许多第三方集成,这不仅意味着它有许多(可选的)依赖项和文件,而且由于集成的特性,它有时也会受到公共漏洞和曝光(CVE)的影响。因此,我们去除langchainlangchain-community的依赖,使得langchain更加轻量、专注和安全。

我们尽可能以一种非破坏性的方式进行这次重组,继续保留了现有的入口点,例如可以通过langchain.chat_models import ChatOpenAI访问。在内部,这涉及到从langchain_community进行条件导入;简单来说,就是检查是否安装了langchain-community,如果安装了,就执行导入。这意味着如果您已经安装了langchain-community,那么不会有任何破坏性的变化

这个改进的想法来自于我们的社区成员——感谢Jacob!

提升可发现性:更优质的版本化文档

我们还根据社区的反馈对文档进行了全面翻新。这项工作从一个多月前就开始了,我们主要从以下两个方面进行了改进:

首先,我们的文档现在有了版本控制。这是社区长期以来的一个需求,我们为此付出了很多努力。我们将保持现有的文档作为v0.1版本,并开始构建一个独立的v0.2版本。目前,文档默认为v0.1版本,但一旦完整的v0.2版本发布,我们将开始使用新的文档作为默认。我们希望我们的版本化文档能更好地反映软件包的状态,并且我们相信,从这里开始,一切都将越来越好。

其次,我们的文档结构变得更为扁平和简洁。现在主要分为四个部分:教程、操作指南、概念指南和API参考。这样的结构将使查找文档变得更加容易,也使我们能够维护一组精简且一致的指南。

Reddit上关于LangChain文档的建议

我们还正在制作一个“随时间演变的LangChain”文档页面,以更好地突出LangChain的变更。我们希望这能帮助大家更好地理解和关联不同版本之间的概念。

增强能力:LangGraph代理

从LangChain的早期开始,社区最大的反馈之一就是定制预构建链和代理的内部结构非常困难。为了解决这个问题,我们去年夏天引入了LCEL,使得创建任意可组合序列变得容易。

直到现在,LangChain中的代理都是基于AgentExecutor这个单一的类,它有固定的逻辑来运行代理。为了支持越来越高级的代理,我们不断地为这个类添加了更多的参数,但它仍然不是真正的可组合。

几个月前,我们推出了LangGraph,这是LangChain的一个扩展,专门用于创建代理工作负载。你可以把它看作是“代理的LCEL”。它在LCEL的基础上增加了两个重要的组件:能够轻松定义循环(这对于代理来说很重要,但对于链来说不是必需的)和内置的内存功能。

langchain v0.2中,我们保留了旧的AgentExecutor,但LangGraph正在成为构建代理的推荐方式。我们增加了一个预构建的LangGraph对象,它相当于AgentExecutor,由于它是基于LangGraph构建的,因此更容易定制和修改。想要了解如何迁移的详细信息,可以查看这里。

从v0.1.0发展:改进对流媒体的支持、标准化工具调用等

自今年1月发布langchain v0.1.0以来,我们在以下几个方面取得了显著的进步:

  • 标准化聊天模型接口: 我们希望尽可能轻松地在不同的大型语言模型(LLM)之间进行无缝切换。为此,我们已经标准化了工具调用支持,并为结构化输出添加了一个标准化的接口。

  • 异步支持: 我们改进了许多核心抽象的异步支持。这里有一个例子和另一个例子。特别感谢@cbornet帮助我们实现了这一点!

  • 流媒体支持: 流媒体对于LLM应用至关重要,我们通过引入事件流媒体API来增强我们的流媒体支持。

  • 合作伙伴包: 拥有稳定和可靠的集成是我们的首要任务。我们与生态系统合作伙伴紧密合作,在Python中为20多个供应商添加了专用包,包括MongoDB、Miracle和Together AI,以及在JavaScript中为17个供应商添加了专用包,包括Google VertexAI、Weaviate和Cloudflare。

如何升级

v0.2包含了许多改进,我们设计它以保持向后兼容,并尽量减少破坏性更改。我们还提供了一个迁移命令行界面(CLI)来帮助解决任何问题,并提供了突出版本间变化的文档。

想要了解如何测试CLI并安装v0.2预发布版,请查看我们的GitHub讨论串。同时,请期待在5月20日这一周发布的完整迁移指南。

为什么稳定性对我们如此重要

我们非常重视超过100万依赖LangChain的开发者的信任。随着LangChain的不断发展,我们致力于提供行业领先的解决方案,同时确保一个坚实的基础框架,让工程团队可以自信地在生产环境中使用。

尽管langchainlangchain-core目前还未达到1.0版本,但我们努力最小化破坏性更改,并至少提前一个完整的破坏性发布周期(3-6个月)弃用类。我们的发布节奏也确保了定期的更新和错误修复,保持LangChain平台的可靠性和生产就绪状态。我们还将继续维护0.1版本,并在未来3个月内推送关键的错误修复。点击这里 了解更多关于我们的发布和弃用政策。

那么,如何系统的去学习大模型LLM?

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。

但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

所有资料 ⚡️ ,朋友们如果有需要全套 《LLM大模型入门+进阶学习资源包》,扫码获取~

在这里插入图片描述

篇幅有限,部分资料如下:

标签:模型,langchain,一大步,文档,LangChain,我们,v0.2
From: https://blog.csdn.net/2401_85375298/article/details/140375420

相关文章

  • 放弃LangChain?建议可以读一读这本书
    5月20日,LangChain发布了全新的v0.2版本,这一版本是在首个稳定版本v0.1的基础上,结合社区开发者们的反馈而作出的改进。新版本带来了诸如架构分离、LangGraph代理框架等新特性,LangChain团队同时鼓励用户就新版本的所有细节进行讨论,力图建立一个开放、包容、参与度高......
  • 从零学习大模型——使用GLM-4-9B-Chat + BGE-M3 + langchain + chroma建立的本地RAG应
    BGE-M3是第一个具有多功能、多语言和多粒度特性的文本检索模型。多功能:可以同时执行三种检索功能:单向量检索、多向量检索和稀疏检索。多语言:支持100多种工作语言。多粒度:它能够处理不同粒度的输入,从短句子到长达8192个词汇的长文档。为了构建RAG应用,我们需要用到向量数......
  • 从零学习大模型——使用GLM-4-9B-Chat + BGE-M3 + langchain + chroma建立的本地RAG应
    第一篇介绍了如何配置最基本的环境并下载了GLM-4-9B-Chat到本地,接下来我们试着将GLM-4-9B-Chat接入LangChain。LangChain 是一个基于大型语言模型(LLM)开发应用程序的框架。LangChain简化了LLM应用程序生命周期的每个阶段:开发:使用LangChain的开源构建模块和组件构建应用程序......
  • 从零学习大模型——使用GLM-4-9B + BGE-M3 + langchain + chroma建立的本地RAG应用(一)
    本项目基于DataWhaleChina的self-llm教程与llm-universe及Langchain官方文档等资料开发,旨在实现全部本地化的RAG应用。本项目使用AutoDL的云服务器进行开发。在 AutoDL 平台中租一个3090等24G显存的显卡机器,如下图所示镜像选择 PyTorch-->2.1.0-->3.10(ubuntu22.04)-->12.......
  • 使用langchain与你自己的数据对话(三):检索(Retrieval)_langchain 数据收集
    今天我们来继续讲解deepleaning.AI的在线课程“LangChain:ChatwithYourData”的第四门课:检索(Retrieval)。Langchain在实现与外部数据对话的功能时需要经历下面的5个阶段,它们分别是:DocumentLoading->Splitting->Storage->Retrieval->Output,如下图所示:在上一篇博客......
  • 拆解LangChain的大模型记忆方案
    之前我们聊过如何使用LangChain给LLM(大模型)装上记忆,里面提到对话链ConversationChain和MessagesPlaceholder,可以简化安装记忆的流程。下文来拆解基于LangChain的大模型记忆方案。1.安装记忆的原理1.1.核心步骤给LLM安装记忆的核心步骤就3个:在对话之前调取之前的历史消息。......
  • 关于BGE-M3接入LangChain时遇到的问题与解决方法
    本文基于https://github.com/datawhalechina/self-llm/blob/master/GLM-4/02-GLM-4-9B-chat%20langchain%20%E6%8E%A5%E5%85%A5.md提供的教程。由于使用本地部署的大模型,在继承LangChain中的LLM类时需要重写几个函数。但是在具体测试的时候出现了以下的错误/root/miniconda3/lib......
  • 构建LangChain应用程序的示例代码:56、如何实现一个多智能体模拟,其中没有固定的发言顺
    多智能体分散式发言人选择示例展示了如何实现一个多智能体模拟,其中没有固定的发言顺序。智能体自行决定谁来发言,通过竞价机制实现。我们将在下面的示例中展示一场虚构的总统辩论来演示这一过程。导入LangChain相关模块fromtypingimportCallable,Listimporttena......
  • langchain学习之agent
    系列文章目录第一部分langchain入门以及prompt、解析器使用第二部分langchain学习之memory机制第三部分langchain学习之chain机制文章目录系列文章目录前言一、导入需要的库二、准备模型三、使用网上的工具四、代理写代码五、自定义写方法总结前言LangChain......
  • 【AI落地工程技术】-LangChain框架介绍及使用步骤
    目录一、特点二、原理三、应用场景四、未来发展趋势五、简单LangChain使用步骤 安装LangChain2.配置环境3.创建提示模板(PromptTemplates)4.构建链(Chains)5.运行链并处理结果6.优化和部署7.持续监控和评估示例代码整合六、复杂LangChain使用步骤(构建一个问......