首页 > 其他分享 >LangChain第一个稳定版本重磅发布

LangChain第一个稳定版本重磅发布

时间:2024-01-10 12:04:05浏览次数:33  
标签:重磅 LLM 0.1 LangGraph 代理 LangChain 版本 提供

LangChain 的第一个稳定版本,即 LangChain 0.1.0,于 2024 年 1 月 8 日正式发布,这是一个值得庆祝的里程碑,也是 LangChain 项目的一个新的起点。在这个版本中,LangChain 引入了许多重要的特性、架构变化、版本规范和发展方向,为 LLM 应用的开发者和用户带来了更好的体验和性能。在本文中,我们将介绍 LangChain 0.1.0 的主要内容,以及 LangChain 的未来计划。

本文为一个系列,之前内容没有看过的小伙伴可以点击链接查看:LangChain课程合集

LangChain 0.1.0 发布

LangChain 0.1.0 的发布,标志着 LangChain 项目进入了一个新的阶段,即稳定阶段。在这个阶段,LangChain 将遵循以下的版本规范:

  • LangChain 的版本号由三个部分组成,即主版本号、次版本号和修订号,分别表示 LangChain 的大的、中等的和小的更新。例如,LangChain 0.1.0 表示 LangChain 的第 0 个主版本,第 1 个次版本,第 0 个修订版本。
  • LangChain 的主版本号为 0,表示 LangChain 仍然处于开发阶段,可能会有一些不兼容的变化。当 LangChain 达到足够的成熟度和稳定度时,将发布 LangChain 1.0.0 作为第一个正式版本。
  • LangChain 的次版本号表示 LangChain 的功能和特性的增加或变化,例如,LangChain 0.2.0 将包含一些新的功能和特性,或者一些不兼容的变化。
  • LangChain 的修订号表示 LangChain 的错误修复或性能优化,例如,LangChain 0.1.1 将包含一些错误修复或性能优化,但不会影响 LangChain 的功能和特性。

LangChain 0.1.0 的发布,也展示了 LangChain 的发展方向,即致力于为 LLM 应用提供一个更加强大、灵活和易用的框架和工具集。在接下来的部分,我们将介绍 LangChain 0.1.0 的核心功能,以及 LangGraph 的发布。

LangChain 的核心功能

LangChain 的核心功能是为 LLM 应用提供一个统一的接口和框架,以便更方便地开发、部署和管理 LLM 应用。LangChain 的核心功能包括:

集成

LangChain通常被用作AI应用的“粘合剂”,将构建LLM应用程序所需的所有不同部分连接在一起,因此优先考虑强大的集成生态系统是我们的首要任务。

LangChain 提供了超过700种与其他工具的集成,范围包括LLMs、向量数据库,基本涵盖了所有的大语言模型生态。LangChain 0.1.0做出的重大革新则是将所有的三方集成,从core包转移到community之中,在保证主干稳定的同时,也进一步强化了三方依赖的版本管理与控制。

可观察性和可调试性

无论是在架构层面还是工具层面,我们希望使LangChain尽可能可观察和可调试。

LangChain 借助 LangSmith 提供了更好的日志、可视化、播放和跟踪功能,以便监控和调试 LLM 应用。LangSmith 是一个基于 Web 的工具,用于可视化和控制 LangChain 的链和代理,能够查看和分析 细化到class的输入和输出。LangSmith 还提供的跟踪功能,用于记录和展示 LLM 应用的执行过程和状态,以及 LLM 的内部信息和统计数据。

定制化

LCEL使得任意序列的组合成为可能,在提供无限灵活性的同时不失健壮性,任意链式结构与基础链单元具备相同的操作特性(批处理、并行化、回退)。

LangChain 借助 LCEL,提供了灵活的方式来组合和定制不同的链和代理,以及支持流式处理和中间步骤的输出。LCEL 是一个基于 Python 的领域特定语言(DSL),用于定义和构建 LangChain 的链和代理。

LCEL 的语法类似于 Python,但是提供了一些特殊的符号和关键字,用于表示 LLM 的输入和输出,以及链和代理的组合和定制。

流式处理

LangChain 的所有链都支持 stream 和 astream 方法,用于实现流式处理。这一部分主要是提供开箱即用的方式,优化交互体验。不作赘述。

输出解析

正确的结构化输入,才能采取正确的行动!

LangChain 提供了多种方式来将 LLM 的输出转换为结构化的格式,以便用于下游的应用和工具。LangChain 支持多种编码方法,如 JSON, XML, Yaml 等,以及多种技术,如 OpenAI Function Calling, Regex, XPath, JSONPath 等,用于从 LLM 的输出中提取和解析所需的信息。LangChain 还提供了一个简单的方式来定义和注册自定义的输出解析器,以满足特定的需求和场景。

检索

使用LangChain,用LLM轻松驾驭您的数据。

LangChain 提供了多种高级的检索策略,以及更好的数据切分、索引和更新功能,支持个性化和实时的检索需求。LangChain 支持多种检索模式,如 BM25, TF-IDF, Cosine Similarity, Jaccard Similarity 等,以及多种检索技术,如 Elasticsearch, Faiss, Annoy, HNSW 等,用于从大量的数据中快速地找到最相关的结果。LangChain 还提供了一个简单的方式来定义和注册自定义的检索器,以满足特定的需求和场景。

代理

通过灵活且可扩展的工具支持和高级推理能力,LangChain已成为驱动LLM的默认方式。

LangChain 提供了多种代理方法,以实现 LLM 的推理和行为能力,包括 ReAct, OpenAI Function Calling, Multi-Agent 等技术。代理是一种特殊的链,用于表示 LLM 的逻辑和动作,以及与环境和其他代理的交互。代理可以用于实现复杂的 LLM 应用,如对话系统、游戏、教育、娱乐等。

LangGraph 发布

LangGraph 是一个新的库,用于低代码构建LLM应用,提供了更多的自定义和循环行为的可能性。LangGraph 还提供了一个可视化的工具,用于展示和控制语言代理的图,以及查看和分析语言代理的输入和输出。

LangGraph 的发布,为 LangChain 增加了一个强大的扩展,使得 LangChain 能够支持更多的 LLM 应用的场景和需求。LangGraph 也是一个独立的库,可以与其他的 Python 库和工具结合使用,以实现更多的功能和效果。LangGraph 的详细介绍和使用方法,可以参考 LangGraph 的官方文档和教程。

LangChain 的未来计划

LangChain 0.1.0 的发布,是 LangChain 项目的一个重要的里程碑,也是 LangChain 项目的一个新的起点。LangChain 团队将继续努力,为 LLM 应用提供一个更加强大、灵活和易用的框架和工具集。LangChain 的下一步目标,包括:

  • 重写旧的链,使其符合 LangChain 0.1.0 的架构和规范,以及提供更多的功能和特性。
  • 维护稳定的分支,即 LangChain 0.1.x,用于修复错误和优化性能,以保证 LangChain 的质量和稳定性。
  • 增加更多的工具和功能,如更多的 LLMs 和 NLP 任务的支持,更多的输出解析和检索的方法,更多的代理的技术,以及更多的 LangSmith 和 LangGraph 的功能。

    标签:重磅,LLM,0.1,LangGraph,代理,LangChain,版本,提供
    From: https://blog.51cto.com/u_13279124/9176551

相关文章

  • mysql_native_password 身份验证插件在未来版本中移除
    自MySQL8.0.34起,mysql_native_password身份验证插件已被弃用,并可能在MySQL的未来版本中移除。移除意味着:Javajdbc配置文件以及后端大数据的账号密码,必须更改为caching_sha2_password认证模式,否则无法连接MySQL数据库。如果业务系统今后升级MySQL8.0,这块需要加以适配。如果......
  • ES7.3版本,批量添加,索引创建,索引判断
    importcom.link.risk.model.RiskTradeDetail;importcom.link.util.BeanBuilder;importorg.apache.commons.lang3.StringUtils;importorg.elasticsearch.action.DocWriteRequest;importorg.elasticsearch.action.bulk.*;importorg.elasticsearch.action.index.Index......
  • erlang 多版本管理工具
    对于日常开发中,多版本还是比较重要的,erlang多版本管理工具也包含不少包含的工具asdf 多用途的软件多版本管理工具kerl 核心是处理erlang多版本的kiex 基于了kerl以及ruby的一些工具,目前似乎缺少维护了说明目前比较推荐的是kerl以及asdf,当然还得看场景,如果是运行环境可以直......
  • 数据版本控制的基本原理解析
    1.背景介绍数据版本控制(DataVersionControl,DVC)是一种用于管理机器学习(ML)和深度学习(DL)项目的版本控制系统。它允许数据科学家和机器学习工程师在训练模型时轻松跟踪、回滚和共享数据和模型。DVC的核心思想是将数据、模型和训练脚本作为版本控制的一部分,以确保模型的可重复性和......
  • 重磅!重磅!图扑软件获评国家级专精特新“小巨人”企业
    2023年7月,工业和信息化部审核并公布了第五批国家级专精特新“小巨人”企业,图扑软件成功入选,荣膺国家级专精特新“小巨人”企业称号。点击底部「阅读原文」跳转查阅公示名单此次荣获国家级专精特新“小巨人”企业称号,不仅是对图扑软件在可视化和数字孪生领域专业化、精细化、特色......
  • conda create创建环境 指定python版本
    使用condacreate创建环境指定python版本在开发Python程序时,我们经常会遇到多个项目使用不同的Python版本的情况。为了解决这个问题,我们可以使用Anaconda提供的conda命令来创建虚拟环境,并在创建环境时指定所需的Python版本。这篇文章将介绍如何使用condacreate命令创建环境并指......
  • 通讯录(动态增长版本)——《初学C语言第52天》
    contact.h////此通讯录为静态的版本(设置多少量就是多少,量的大小无法调整)////动态版本:需要多少就给多少,不够用了就开辟新空间,多了就自动减少////文件版本:动、静两种只要退出通讯录,保存的信息就消失了,而文件版本会依旧保存#define_CRT_SECURE_NO_WARNINGS1#define MAX100#define......
  • TDSQL(MySQL版本) DCN配置
    主集群的赤兔平台地址为:xx.yy.zz.18,集群名字为:TP_TDSQL_OTHER备集群的赤兔平台地址为:xx.yy.zz.71,集群名字为:TP_ZB步骤一:在备份集群的赤兔平台上面创建实例,菜单为“实例管理”-》选择group-》“创建分布式实例”,创建的实例需要与主集群上面的实例对应,而且下面几项需要与主集群一......
  • Visual Studio 2022版本17.8中的实用功能
    前言今天介绍一下VisualStudio2022版本17.8这一发行版中的4个比较实用功能。保留大小写查找和替换这个功能之前就有,不过我觉得对于日常搜索、替换而言还是比较实用的。在执行查找、替换时,现在可以在代码中保留每个匹配项的原始大小写。请注意,若要获取Pascal大小写和Camel......
  • nginx低版本文件解析漏洞
    nginx低版本设计问题,会将图片解析成php文件复现查看nginx版本,符合低版本特征接下来我们随便上传一个图片文件,拦截这个请求,并且添加php代码。图片上传成功访问这个文件-可以正常访问接下来我们恶意访问,发现php代码被执行。......