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 的下一步目标,包括: