AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


【一文读懂】搭建RAG的万能工具LangChain
发布日期:2024-09-13 12:54:47 浏览次数: 1835 来源:码农随心笔记



本篇带各位同学简单了解一下LangChain这个开源工具,自从它诞生以来,在Gihub上已经累积了超过91K的星星,如此火爆的工具,让我们一起来看看,它能带给我们哪些好处?它与RAG引擎又存在怎样的关系?


01
LangChain是什么


LangChain 是一个先进的开源框架,它通过结合自然语言处理(NLP)技术和机器学习算法,为用户提供了一个强大的语言交互工具。这个平台诞生的初衷,是为了通过智能对话系统来模拟人类的交流方式,显著提高人机交互效率和质量。如果你想让聊天机器人不仅仅回答通用问题,还能从自己的数据库或文件中提取信息,并根据这些信息执行具体操作,比如写周报,写年度工作总结,那会是什么情况呢?Langchain 正是为了实现这一目标而诞生的。
如果我们想在某个项目中借助 OpenAI 或 Hugging Face 创建基于大语言模型的应用程序,以前我们可能需要手动完成,整个过程可能需要使用不同的API接口,编写大量的代码,从而耗费大量时间。现在,为了实现同样的目标,使用LangChain可以方便地帮助开发者创建大语言模型的应用程序和流程。它通过提供一系列工具和模块,简化了与语言模型的交互过程。


02
LangChain的作用


LangChain 就是一个可以让你能轻松玩转各种大模型应用开发的“工具箱”,里面有很多方便的工具,无论是聊天机器人、文本分析,还是其他基于语言处理的项目,LangChain 都能提供很大的帮助。例如,它可以帮你实现这些功能:

1. 组合不同的功能:你可以把语言模型和其他数据源(如数据库、API等)结合在一起,创建更复杂的应用。

2. 管理对话状态:如果你在开发聊天机器人,LangChain 可以帮助你跟踪对话的上下文,从而使对话更加连贯。

3. 处理文本和数据:它提供了一些方便的方法,帮助你处理文本,提取信息,或者进行文本生成。

4. 简化工作流程:通过提供预定义的模块和示例,LangChain 可以让你更快地构建和调整你的应用


03
LangChain的组件


Langchain 提供了 6 大类组件,就像GPT的插件一样,帮助我们更好地使用大语言模型,而且这些组件都是开源的,这就意味着非商业化的应用都可以免费。

如上图所示,这6大类的组件包括:

1. Models(模型)

LLMs(大型语言模型)

这些模型是 LangChain 积木盒中的基础积木。如同用乐高搭建房屋的地基,LLMs 为构建复杂的语言理解和生成任务提供了坚实的基础。
Chat Models(聊天模型)

这些模型就像是为你的乐高小人制作对话能力。它们能够让应用程序进行流畅的对话,好比是给你的乐高积木人注入了会说话的灵魂。

Text Embedding Models(文本嵌入模型)
如果说其他模型让积木能够理解和生成文本,文本嵌入模型则提供了理解文本深度含义的能力。它们就像是一种特殊的积木块,可以帮助其他积木更好地理解每个块应该放在哪里。

2 . Prompts(提示)

Prompt Templates(提示模板)

假如,你正在玩乐高积木时,有多个乐高小人,你需要编写剧本,告诉这些乐高小人在不同场景下应该说什么。Prompt Templates 就是这些剧本,它们指导模型如何回答问题或者生成文本。


3. Indexes(索引)

LangChain 通过 Indexs 索引允许文档结构化,让LLM更直接、更有效地与文档互动。

Document Loaders(文档加载器)

这些就像是一个个小仓库,帮助你的乐高世界中的智能模型存储和访问信息。Document Loaders 能够将文档加载到系统中,方便模型快速查找。

Text Splitters(文本分割器)

有时候你需要将一大块乐高板分成几个小块来构建更复杂的结构。Text Splitters 可以将长篇文本拆分成易于处理的小块。

Vector Stores(向量存储)

这些是一种特殊的存储设施,帮助你的乐高模型记住文本的数学表示(向量)。这就像是让积木块记住它们在整个结构中的位置。

Retrievers(检索器)

想象一下你需要从一堆积木中找到一个特定的小部件。Retrievers 能够快速在向量存储中检索和提取信息,就像是乐高世界里的搜索引


4. Memory(记忆):对话的连贯性

LangChain 通过 Memory 工具类为 Agent 和 Chain 提供了记忆功能,让智能应用能够记住前一次的交互,比如在聊天环境中这一点尤为重要。

Chat Message History(聊天消息历史)

最常见的一种对话内容中的 Memory 类,这就好比是在你的乐高角色之间建立了一个记忆网络,使它们能够记住过去的对话,这样每次交流都能在之前的基础上继续,使得智能积木人能够在每次对话中保持连贯性。


5. Chains(链)

包括:Chain、LLM Chain、Index-related Chains

Chain 模块整合了大型语言模型、向量数据库、记忆系统及提示,通过 Agents 的能力拓展至各种工具,形成一个能够互相合作的独立模块网络。它不仅比大模型API更加高效,还增强了模型的各种应用,诸如问答、摘要编写、表格分析和代码理解等。
Chain 是连接不同智能积木块的基本方式,而 LLM Chain 是最简单的 LLM+Prompts 的一种 chain,专门用于链接语言模型。Index-related Chains 则将索引功能集成进来,确保信息的高效流动。


6. Agents(代理)

在 LangChain 的世界里,Agent 是一个智能代理,它的任务是听取你的需求(用户输入)和分析当前的情境(应用场景),然后从它的工具箱(一系列可用工具)中选择最合适的工具来执行操作。这些工具箱里装的是 LangChain 提供的各种积木,比如 Models、Prompts、Indexes 等。


04
总结


LangChain 就像是一个特殊的积木盒,里面装了6种不同功能的积木块,这些积木块包括了数十种大语言模型、多样的知识库处理方法以及成熟的应用链,几十种可调用的工具箱,为用户提供了一个快速搭建和部署大语言模型智能应用程序的平台。
对于我之前几篇文章中提到的RAG引擎,我的理解是LangChain完全可以作为搭建RAG的一种万能工具,通过LangChain,我们可以搭建各种不同功能,不同侧重点的RAG引擎。不仅如此,它还能搭建更多与大模型相关的应用,包括AI Agent ,智能助手,等等。所以对于有意深入研究大语言模型,搭建各种大模型相关应用的你,值得花费更多时间深入了解。


  --THE END--  

关于RAG引擎的安装与介绍,欢迎阅读以下篇章。
【一文读懂】RAG的重要组成-向量数据库
【一文读懂】RAG的重要组成-Embedding Model
【一文了解】RAG引擎-RAGFlow
【干货】带你一步步搭建RAGFlow

请点击本号阅读更多文章





53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询