跳转到内容

LLM应用组件

核心能力说明(功能描述)典型应用场景
翻译将文本内容从一种自然语言准确无误地转换为另一种自然语言。实时对话翻译、文档本地化、多语言客服支持。
分类根据预定义的标准或主题,对文本进行识别、标记和归类。邮件自动过滤、用户意图识别(咨询/投诉/营销)、内容审核。
提取从大量非结构化文本中识别并获取关键的、结构化的信息。命名实体识别(人名、地名)、合同关键条款抽取、从简历中提取工作经验。
总结/摘要将长篇文本或复杂信息浓缩成简短、准确、连贯的概要。会议纪要生成、新闻报道提炼、科研文献综述。
转化改变文本的格式、风格、结构或体裁,保持核心语义不变。文本转 JSON/XML 结构化数据、将口语转为书面语、公文改写为博客文章。
创作基于指令或输入的主题,从零开始生成全新、原创的内容。撰写广告文案、生成产品描述、辅助编写故事剧本、生成代码。
解释对复杂概念、专业术语或一段代码进行清晰、通俗的阐述和说明。解释法律条款、为代码添加注释、向非专业人士普及科学知识。
规划将一个复杂的、高层级的目标分解成一系列逻辑连贯、可执行的步骤(Agent 能力)。自动规划项目执行流程、将用户请求转化为 API 调用步骤、制定多步操作指南。
推理/判断根据现有信息或逻辑前提,进行分析、推断、验证或做出决策辅助。检查论证逻辑谬误、根据病历信息提供初步诊断建议、金融风险评估。
润色对现有文本进行优化、修正和改进,以提高其流畅度、准确性或风格。语法和拼写检查、调整文章语气、提高文本可读性。
数据生成生成用于训练或测试目的的合成数据、或根据模型进行信息补全。批量生成模拟的用户评论(合成数据)、自动填充数据库中缺失的文本字段、生成测试用例。

这些是构成 LangChain 应用骨架和流程控制的最基础组件。

概念/组件名称核心作用/功能关键抽象
模型 I/O (Model I/O)管理与大型语言模型的输入(提示)和输出(响应)的交互。LLM/Chat Model: 与模型通信的接口。 Prompts: 结构化、管理和格式化输入给模型的消息(例如,PromptTemplates)。 Output Parsers: 将模型的原始文本输出转换为结构化数据(例如,JSON)。
链 (Chains)将多个组件(如 LLM、提示模板、其他链)以预定序列连接起来,形成一个完整的应用逻辑流程。Sequential Chains: 按顺序执行多个步骤。 Router Chains: 根据输入动态选择执行哪个子链。 LCEL (LangChain Expression Language): 一种灵活、强大的方式来组合组件。
代理 (Agents)允许模型进行推理并决定采取什么行动(调用哪个工具),然后根据行动结果进行新的观察和循环推理,直到任务完成。Agent Executor: 运行代理和工具交互循环的机制。 Tools: 代理可以调用的外部函数或服务。
回调 (Callbacks)提供在链、模型或工具执行的不同阶段(开始、结束、错误等)插入自定义逻辑的能力,常用于日志记录、监控、流式传输等。Callback Manager: 负责管理和触发回调。

2.2. 存储与检索(Storage And Retrieval)

Section titled “2.2. 存储与检索(Storage And Retrieval)”

这些组件专注于管理外部数据并将其以合适的方式引入到 LLM 的上下文中,这是 RAG (Retrieval-Augmented Generation) 的核心。

概念/组件名称核心作用/功能关键抽象
文档加载器 (Document Loaders)从各种来源(如文件、网页、数据库)加载数据,并将它们转换成 LangChain 的标准 Document 格式。Document: 包含内容 (page_content) 和元数据 (metadata) 的数据结构。
文本分割器 (Text Splitters)将大文档分割成更小、更易于管理的块(chunks),以便进行向量化和在 LLM 窗口中传递。RecursiveCharacterTextSplitter, TokenTextSplitter 等:不同的分割策略。
嵌入模型 (Embeddings)将文本内容转换为数值向量(embeddings),用于衡量文本之间的语义相似性。Embeddings: 模型将文本转换为向量的接口。
向量存储 (Vector Stores)存储和索引文本块及其对应的向量,支持高效的相似性搜索(如最近邻搜索)。VectorStore: 存储嵌入和文档,支持 similarity_search 方法。
检索器 (Retrievers)抽象了从存储中检索相关文档的逻辑,可以是简单的向量搜索,也可以是更复杂的逻辑(如上下文压缩、多查询)。BaseRetriever: 通用的检索接口。

这些组件扩展了 LangChain 应用的功能边界,使其能够与外部环境交互。

概念/组件名称核心作用/功能关键抽象
工具 (Tools)代理(Agents)可以调用的外部函数或服务,允许 LLM 访问最新的信息、执行计算或与外部 API 交互。BaseTool: 所有工具的基类,定义了输入、输出和描述。
记忆 (Memory)允许链或代理记住先前交互的历史,从而支持多轮对话和上下文感知。ConversationBufferMemory: 存储完整的聊天记录。 VectorStoreRetrieverMemory: 存储并检索重要的历史摘要。
路由/选择器 (Routing/Selectors)决定在给定输入下应该执行哪个链、工具或子任务的逻辑。RunnableBranch/Router Chains: 允许基于条件逻辑进行分支。
评估 (Evaluation)用于衡量 LLM 应用程序性能和质量的工具和框架,支持人类和基于 LLM 的评估。Evaluators: 自动评估模型输出的质量。
应用场景细分场景关键组件(实现 RAG/Chat/Agent 等)最终目标
检索增强生成 (RAG)内部文档问答Document Loaders, Text Splitters, Embeddings, Vector Stores, Retrievers, Chain提供基于私有知识库的准确、有出处的回答
实时数据问答Retrievers, Tools (连接外部 API,如新闻源)确保 LLM 的回答基于最新的外部信息
复杂的对话带记忆的客服机器人Memory, Chat Models, Prompt Templates实现流畅、上下文相关的多轮对话体验
任务导向型代理Agents, Tools, Memory, Chains允许 LLM 不仅聊天,还能执行特定业务操作
数据分析/操作自然语言转 SQL/PandasAgents, Tools (SQL/Pandas 专用 Tool)允许非技术用户通过自然语言与数据库或数据帧交互
自动化工作流Agents, Multi-Step Chains (Router Chains)实现多步任务的自动处理和逻辑路由
内容处理结构化信息提取Output Parsers, Prompt Templates从合同、邮件等非结构化文本中高效提取关键字段
大文档批量总结Sequential Chains, LLM/Chat Models快速生成长文本的简洁、准确摘要