| 核心能力 | 说明(功能描述) | 典型应用场景 |
|---|
| 翻译 | 将文本内容从一种自然语言准确无误地转换为另一种自然语言。 | 实时对话翻译、文档本地化、多语言客服支持。 |
| 分类 | 根据预定义的标准或主题,对文本进行识别、标记和归类。 | 邮件自动过滤、用户意图识别(咨询/投诉/营销)、内容审核。 |
| 提取 | 从大量非结构化文本中识别并获取关键的、结构化的信息。 | 命名实体识别(人名、地名)、合同关键条款抽取、从简历中提取工作经验。 |
| 总结/摘要 | 将长篇文本或复杂信息浓缩成简短、准确、连贯的概要。 | 会议纪要生成、新闻报道提炼、科研文献综述。 |
| 转化 | 改变文本的格式、风格、结构或体裁,保持核心语义不变。 | 文本转 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: 负责管理和触发回调。 |
这些组件专注于管理外部数据并将其以合适的方式引入到 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/Pandas | Agents, Tools (SQL/Pandas 专用 Tool) | 允许非技术用户通过自然语言与数据库或数据帧交互 |
| 自动化工作流 | Agents, Multi-Step Chains (Router Chains) | 实现多步任务的自动处理和逻辑路由 |
| 内容处理 | 结构化信息提取 | Output Parsers, Prompt Templates | 从合同、邮件等非结构化文本中高效提取关键字段 |
| 大文档批量总结 | Sequential Chains, LLM/Chat Models | 快速生成长文本的简洁、准确摘要 |