LLM 大模型技术实战:入门大模型开发框架 LangChain
简介
LangChain 是一个专门为 LLM(Large Language Model)应用开发设计的开源框架,旨在简化 LLM 应用的开发难度。它将 LLM 的各个组件进行封装和链接,提供了一个统一的开发环境,让开发者可以更加便捷地进行 LLM 应用的开发。从某种程度上来说,LangChain 类似于 Java 开发中的 Spring 或 SpringBoot 框架,为开发者提供了丰富的工具和库,帮助快速构建功能强大的 LLM 应用。
核心特性
- 模块化设计:将 LLM 应用的各个组件拆分成独立的模块,方便开发者进行模块化的开发和维护。
- 易用性强:提供了丰富的 API 和文档,以及详细的教程和示例代码,帮助新手快速入门。
- 高性能:在底层进行了优化,保证了 LLM 应用的高性能,开发者可以在保证性能的前提下,更加专注于业务逻辑的实现。
LangChain 工作原理
简单来说,LangChain 就是把大量的数据组合起来,让 LLM 能够尽可能少地消耗计算力就能轻松地引用。它的工作原理是把一个大的数据源(比如一个 PDF 文件),分成一块一块的,然后把它们嵌入到一个向量存储(Vector Store)里。
创建向量存储后,我们可以用它和 LLM 一起工作,只检索我们需要引用的信息,来创建一个提示 - 完成(prompt-completion)对。当我们把一个提示输入到聊天机器人里,LangChain 就会在向量存储里查询相关的信息。一旦找到了相关的信息,我们就用它和提示一起喂给 LLM,生成我们的答案。
LangChain 还可以让你创建一些可以执行动作的应用程序,比如上网、发邮件、完成其他 API 相关的任务。这样的应用程序有很多可能的用途,例如个人 AI 邮件助手、AI 学习伙伴、AI 数据分析、定制公司客服聊天机器人等。
LangChain 框架核心组件
LangChain 由前 Robust Intelligence 的机器学习工程师 Chase Harrison 在 2022 年 10 月底推出,是一个封装了大量大语言模型(LLM)应用开发逻辑和工具集成的开源 Python 库。
1. Model(模型)
Model 模块主要包含了大语言模型(LLM)。借助 LangChain,与 LLM 的交互将变得更加便捷。LangChain 提供的接口和功能有助于将 LLM 的强大能力轻松集成到工作应用程序中。它还支持异步调用,能够满足同时并发调用多个 LLM 的场景。
2. Prompt(提示)
Prompt 是向 LLM 提供的输入。LangChain 提供了完备的管理和优化 prompt 的功能。最基础的功能是 prompt template(提示模板),模板指的是我们希望获得答案的具体格式或蓝图。LangChain 支持通过提示模板单独定义 prompt 的输入输出格式,其输出解析器可以将 LLM 的输出解析为所需要的格式。
3. Chain(链)
Chain 提供了将各种组件合并成一个统一应用程序的方式。通过链式结构可以实现多个模型的序列调用,也能集成提示模板对用户输入进行格式化。LangChain 提供了多种基础链式结构,包含简单的单向序列 SimpleSequentialChain、可以让 LLM 查询 API 的 API Chain、图谱检索查询的 GraphQAChain 等。
4. Agent(代理)
Agent 是 LangChain 最强大的功能模块之一。Agent 将 LLM 作为推理引擎,只要给它提供文本或其他信息源,它就会利用互联网上学习到的背景知识或你提供的新信息,来回答问题、推理内容或决定下一步的操作。Agent 可以访问多种工具比如搜索引擎、数据库等,根据用户的输入,Agent 能决定是否调用这些工具,并确定调用时的输入。
5. Memory(记忆)
一般在与 LLM 的交互过程中,模型是无法记住之前对话的历史消息的。LangChain 提供了多种不同的记忆形式,开发者可以选择存储完整记忆、仅保留最后几轮对话记忆或是限制存储的 token 数等。除此之外,开发者也可以选择将对话历史存储在向量数据库中,或是将某些特定实体的信息记忆起来。
LangChain 应用实战
1. AI 应用开发步骤
- 环境搭建:安装 LangChain 框架所需的环境,包括 Python 及依赖库。
- 模型选择:根据具体的应用场景,选择合适的 LLM 模型。LangChain 框架支持多种主流 LLM 模型。
- :利用 LangChain 提供的丰富 API 和工具,实现各种 LLM 应用的功能。


