当前位置: 首页 > news >正文

LLM 应用开发中的常见模式

以下内容根据AI对话生成,如有雷同,纯属巧合

1. 链式调用 (Chaining)

这是最基本也是最常见的模式。它指的是将多个 LLM 调用、数据处理步骤或工具调用按顺序连接起来,形成一个连贯的工作流。前一个步骤的输出是后一个步骤的输入。

  • 要解决的问题:单一 LLM 调用无法完成复杂任务。
  • 核心思想:“分而治之”。将一个复杂任务分解为多个简单的、可顺序执行的子任务。
  • LangChain 实现:使用 LLMChain, SequentialChain, TransformChain 等。
  • 类比:就像在工厂的流水线上,产品(数据)经过一道道工序(LLM或处理函数),每一步都为其增加价值,最终形成完整的产品。

示例:翻译+总结
一个经典的链式调用是先将一段外语文档翻译成中文,再对中文内容进行总结。

  1. 链的第一步:输入 = “一段德语文本”,调用 LLMChain_1(提示:“请将以下德语翻译成中文:{input}”)-> 输出 = “中文翻译文本”。
  2. 链的第二步:输入 = “中文翻译文本”,调用 LLMChain_2(提示:“请总结以下中文文本的要点:{input}”)-> 输出 = “总结要点”。

2. 代理与工具使用 (Agents & Tool Use)

这是最强大、最接近“智能”的模式。代理模式将 LLM 视为一个推理引擎(大脑),它来决定为了回答问题需要采取哪些行动(Actions),即调用哪些工具(Tools)

  • 要解决的问题:LLM 的内部知识可能过时、不专业或无法访问外部世界(如计算、搜索、查询数据库)。
  • 核心思想:“赋予 LLM 使用工具的能力”。让 LLM 自主规划、决策和执行,从而扩展其能力边界。
  • LangChain 实现:使用 AgentToolAgentExecutor。常见的代理类型有 ZERO_SHOT_REACT_DESCRIPTION, CONVERSATIONAL_REACT_DESCRIPTION
  • 类比:你(LLM)是一个经理,有一个任务要做。你手下有各种专家(工具):会计师(计算器)、研究员(搜索引擎)、秘书(日历API)。你分析任务(“我需要先知道今天的天气,然后计算一下出行成本”),然后命令相应的专家去执行,最后综合所有结果做出决策。

示例:回答复杂问题

  • 用户问题:“埃隆·马斯克(Elon Musk)最近在推特上发了什么?他提到的公司当前股价是多少?”
  • 代理的工作流程
    1. 思考:要回答这个问题,我需要做两件事:1. 获取马斯克的最新推文。2. 查询相关公司的股价。
    2. 行动:调用 google_search_tool,输入查询:“Elon Musk latest tweet”。
    3. 观察:获得推文内容,比如是关于 SpaceX 的。
    4. 思考:推文是关于 SpaceX 的,但我需要查的是股价。SpaceX 是私有公司,没有股价。可能用户指的是特斯拉(TSLA)?我应该查一下特斯拉的股价。
    5. 行动:调用 stock_price_tool,输入:“TSLA”。
    6. 观察:获得特斯拉当前股价为 $XYZ。
    7. 最终回答:“埃隆·马斯克的最新推文内容是:‘为SpaceX团队感到骄傲!’。这条推文主要提及了SpaceX,但SpaceX是私有公司,无公开股价。如果您感兴趣的话,特斯拉(TSLA)当前的股价是 $XYZ。”

3. 检索增强生成 (RAG - Retrieval-Augmented Generation)

RAG 模式用于解决 LLM 的“知识滞后”和“幻觉”问题。它通过在生成答案前,先从外部知识库(如你的文档、数据库)中检索相关信息,并将这些信息作为上下文提供给 LLM,从而让 LLM 生成更准确、更相关的答案。

  • 要解决的问题:LLM 的内部知识有截止日期,且无法获取非公开的、私有的或特定领域的信息。
  • 核心思想:“先检索,后生成”。为 LLM 提供相关的参考依据,让它“有据可依”地回答问题。
  • LangChain 实现:使用 Document Loaders, Text Splitters, Vectorstores (Chroma, FAISS), Embeddings, 和 RetrievalQA 链。
  • 类比:开卷考试。LLM 是一个聪明的学生,但它的记忆(闭卷)可能不完整或过时。在考试(回答用户问题)时,允许它先去查阅相关的教科书和笔记(外部知识库),然后基于这些资料组织出最好的答案。

示例:公司内部知识库问答

  1. 预处理(线下):将公司所有的员工手册、API文档、项目报告等加载并分割成块,转换为向量(Embeddings),存入向量数据库。
  2. 用户提问:“我们公司的年假政策是怎样的?”
  3. 检索:系统将用户问题也转换为向量,并在向量数据库中搜索与之最相似的文本块(即最相关的政策段落)。
  4. 增强:将检索到的政策段落作为上下文,和原始问题一起组合成一个新的、更丰富的提示词(Prompt)。
  5. 生成:LLM 根据这个“富含上下文”的提示词生成准确答案:“根据公司2023年员工手册第X章规定,年假政策为...”

4. 记忆 (Memory)

LLM 本身是无状态的(Stateless),这意味着它默认不会记住之前的对话内容。记忆模式旨在让应用能够在多轮对话中记住之前的交互信息,从而实现连贯的对话。

  • 要解决的问题:LLM 的“金鱼记忆”,无法进行连贯的多轮对话。
  • 核心思想:在应用程序层面维护一个“记忆体”,存储历史对话,并在每次调用 LLM 时自动将其作为上下文注入。
  • LangChain 实现:使用 ConversationBufferMemory, ConversationSummaryMemory, ConversationBufferWindowMemory 等。
  • 类比:聊天时看聊天记录。每次你回复对方时,都可以看到之前聊过的所有内容,这样你的回复才能贴合上下文。

示例

  • 用户:“什么是LangChain?” -> AI:(解释LangChain...)
  • 用户:“它用什么语言编写?” -> 如果没有记忆,AI 不知道“它”指代什么。
    • 有记忆:记忆体包含了上一轮对话的历史 [Human: 什么是LangChain?, AI: LangChain是一个...的框架]。系统会将记忆和当前问题组合成提示:“之前的对话:...[如上]...\n当前问题:它用什么语言编写?\n回答:”。LLM 就能明白“它”指的是 LangChain,并回答“主要使用Python编写”。

总结与关系

这些模式并非互斥,而是常常组合使用,构建出极其强大的应用:

  • 一个高级代理很可能内部使用了 RAG 来检索知识,并使用 链式调用 来处理检索到的内容。
  • 一个对话机器人肯定会使用 记忆 模式,并且可能会在后台使用 RAG 来查询产品信息,甚至启动一个代理来完成用户指令(如订餐、查询订单)。
模式 要解决的核心问题 好比是...
链式调用 (Chaining) 单一调用无法处理复杂任务 工厂流水线
代理与工具 (Agents) LLM 无法与外部世界互动 经理指挥专家团队
检索增强生成 (RAG) LLM 知识过时/缺乏内部知识 开卷考试
记忆 (Memory) LLM 无法记住对话历史 查看聊天记录
http://www.hskmm.com/?act=detail&tid=2610

相关文章:

  • vue3 与 element-plus
  • 可爱的二维数据结构们
  • 网络安全相关职业
  • 202005_CTFHUB_Redis流量
  • langchain学习之路
  • 通义灵码产品演示: 数据库设计与数据分析
  • win10安装mysql,MySQL5.7详细教程
  • 第二周作业
  • ubuntu 24编译安装libssl.so.1.0.0
  • 9月8-13日小记 - L
  • Task2:利用 Basnet 将Task1中的所有图片转化为显著性图片
  • 代码随想录算法训练营第一天| 704.二分查找、27.移除元素、977.有序数组的平方
  • 让天下没有难查的故障:2025 阿里云 AI 原生编程挑战赛正式启动
  • kuka机器人程序备份
  • AI 测试工具20款
  • VMware安装NOI linux系统教程
  • 强制横屏 ios
  • 张量链式法则(下篇):揭秘Transpose、Summation等复杂算子反向传播,彻底掌握深度学习求导精髓!
  • 详细介绍:QT初探TCP(四)
  • 近期理工类学术会议推荐 | 人工智能、工业设计、电气工程、传感器技术、环境工程等EI会议合集
  • AI访销大脑之“创建及查询数据”新玩法
  • 史上最薄iPhone 17 Air登场!极致轻薄背后藏有哪些妥协?
  • 一毛钱好友商城系统介绍
  • 网页转小程序封装机系统介绍
  • 美客分销商城小程序系统介绍
  • P12021 面包题
  • C++ - STL - 静态数组array
  • C++ - STL - 键值对 map
  • C++ - STL - 集合set
  • 大三上 大模型系统与工程 第二次课笔记 20250912