本文将从LangChain的本质、Langchain的原理、LangChain的应用三个方面,带您文搞懂 Langchain(-):总体介绍。
LangChain
一、LangChain的本质
Langchain是什么?
LangChain是一个用于开发由 LLM 支持的应用程序的框架。它使应用程序能够:
-
具有上下文感知能力:将语言模型连接到上下文源(提示说明、few shot examples、响应的内容等)
-
Reason:依靠语言模型进行推理(关于如何根据提供的上下文回答、采取什么操作等)
LangChain Introduction
该框架由几个部分组成。
-
LangChain 库:Python 和 JavaScript 库。包含无数组件的接口和集成、将这些组件组合成链和代理的基本运行时,以及链和代理的现成实现。
-
LangChain 模板:一系列易于部署的参考架构,适用于各种任务。
-
LangServe:用于将 LangChain 链部署为 REST API 的库。
-
LangSmith:一个开发者平台,可让您调试、测试、评估和监控基于任何 LLM 框架构建的链,并与 LangChain 无缝集成。
LangChain 组成部分
LangChain能干什么?
LangChain的产品共同简化了整个应用程序生命周期:
-
开发:在 LangChain/LangChain.js 中编写您的应用程序。使用模板作为参考开始运行。
-
Productionize:使用 LangSmith 检查、测试和监控您的链,以便您可以充满信心地不断改进和部署。
-
部署:使用 LangServe 将任何链转换为 API。
LangChain 几乎可以作为所有 LLM 的通用接口,为构建 LLM 应用程序并将其与外部数据源和软件工作流程集成提供集中式开发环境。Langchain可以简单理解为是 LLM 领域的 Spring。
LangChain vs Spring
LangChain的主要价值:
-
组件(Components):用于处理语言模型的可组合工具和集成。无论您是否使用 LangChain 框架的其余部分,组件都是模块化且易于使用的。
-
现成的链(Off-the-shelf chains):用于完成更高级别任务的内置组件组合,约定大于配置,让您可以轻松上手。
二、LangChain的原理
LangChain的工作流程:通过分块和向量化数据源,优化LLM的检索与生成过程,实现高效、智能的文本处理。
LangChain的工作流程
- 数据分块与向量化:
-
LangChain首先将大型数据源(如50页的PDF文件)分解成小块信息。
-
这些信息块随后被转换成向量形式,并存储在一个向量存储(Vector Store)中。这个过程称为向量化,它允许信息以数学上可比较和检索的形式存在。
- 与LLM的集成:
-
当用户向基于LangChain的聊天机器人输入提示(prompt)时,系统会在向量存储中查询与提示相关的信息块。
-
这个查询过程类似于在搜索引擎中搜索关键词,但在这里,它是基于向量的相似度来进行的。
- 生成答案:
-
一旦找到相关信息块,LangChain会将这些信息与原始提示一起提供给LLM。
-
LLM随后利用这些信息来生成针对用户输入的回答或完成文本。
LangChain的核心组件******:******LangChain提供标准的、可扩展的接口和外部集成。
LangChain的核心组件
主要包括以下六个部分:
-
模型I/O(Model I/O):负责与语言模型进行交互,处理输入和输出数据。
-
检索(Retrieval):从特定数据源检索信息,如数据库或API,为应用提供所需内容。
-
代理(Agents):根据高级指令决定使用哪些工具或组件,协调应用内的操作和信息流。
-
链(Chains):定义一系列有序步骤以完成特定任务。
-
内存(Memory):在LangChain运行间保持应用状态。
-
回调(Callbacks):在LangChain的特定步骤触发额外动作,如日志记录或中间步骤的流式传输。
三、LangChain的应用
工具使用(Tool use): LLM 的一个令人兴奋的应用是为其他“工具“构建自然语言接口,无论是AP1、函数、数据库等.
LangChain 非常适合构建此类接口,因为它具有:
-
良好的模型输出解析,可以轻松从模型输出中提取 JSON、XML、OpenAI 函数调用等。
-
大量内置工具。
-
为您如何调用这些工具提供了很大的灵活性。
工具的使用方式主要有两种 :chains和 agents.
方式一:chains 创建预定义的工具使用顺序。
****
chains
方式二:agents 让模型循环使用工具,这样它就可以决定使用工具的次数。
****
agents
萃取(Extraction): LLM 的另一个令人兴奋的应用是从原始的 LLM 生成中获得结构化的输出。
假设需要 LLM 使用特定架构进行结构化输出:
-
提取结构化行以插入数据库
-
提取API参数
-
提取用户查询的不同部分(例如,语义搜索与关键字搜索)
LLM 结构化输出
大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业
?”“谁的饭碗又将不保了?
”等问题热议不断。
不如成为「掌握AI工具的技术人
」,毕竟AI时代,谁先尝试,谁就能占得先机!
但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高
针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料
分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程
等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓
👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)]()👈