| 模板类型 | 核心作用 | 输出格式 | 使用场景 |
| ChatPromptTemplate | 现代应用的主力。用于构建包含多个角色(系统、用户、AI)的对话式“剧本” | ChatPromptValue(本质是List[BaseMessage]) | 所有需要与聊天模型进行结构化、角色化交互的应用 |
| PromptTemplate | 基础的字符串模板,将变量填充到单个字符串中。 | StringPromptValue(本质是字符串) | 构建需要简单文本输入的工具提示。 |
| FewShotChatMessage PromptTemplate | 在提示中动态插入多个对话示例,引导模型进行“举一反三”,极大提升复杂任务的准确性 | ChatPromptValue | 需要特定输出格式的复杂任务,如代码生成、简历解析、合同条款提取等等 |
| 维度 | Chain(老方法) | LCEL(新方法) |
| 本质 | 固定的 “流程模板” | 灵活的 “积木拼接语法” |
| 用法 | 找现成模板,按模板做事 | 拿模块自由组合,自己定流程 |
| 灵活性 | 低:改步骤要换模板 / 改代码 | 高:随便加、减、换模块,支持条件 / 并行 |
| 学习成本 | 高:要记各种不同类型的 Chain | 低:一套语法通吃所有模块 |
| 适用场景 | 简单、固定的流程(比如 “输入→AI 输出”) | 复杂、多变的流程(比如 “查数据→过滤→条件判断→AI 生成→多轮交互”) |
| 解析器名称 | 核心功能 | 输出的 Python 类型 | 工业级应用场景 |
| StrOutputParser | 默认解析器。将 LLM 的输出直接解析为字符串。 | str | 简单的文本生成、内容续写、摘要、翻译等。 |
| JsonOutputParser | 极其常用。将 LLM 输出的 JSON 字符串解析为 Python 字典。 | dict | API 调用:生成符合 API 规范的 JSON 请求体。 数据提取:从非结构化文本(如邮件、报告)中提取实体信息。 |
| PydanticOutputParser | 极其常用。将 LLM 输出解析为预先定义的 Pydantic 对象,提供类型安全和数据验证。 | 自定义的 pydantic.BaseModel 对象 | 高可靠性系统:从简历中提取信息并存入数据库,确保字段类型正确(如年龄是整数)。 配置生成:根据自然语言生成严格的 JSON 配置文件。 |
| CommaSeparatedListParser | 将 LLM 输出的、用逗号分隔的文本解析为列表。 | list[str] | 标签生成:为文章、产品生成关键词标签。 头脑风暴:生成一系列相关的想法或选项。 |
| DatetimeOutputParser | 从文本中智能地解析出日期和时间信息。 | datetime.datetime | 任务调度:从 “明天下午三点提醒我开会” 中提取精确时间。 信息归档:从新闻或日志中提取事件发生的时间。 |
| 加载器名称 | 支持文件类型 | 功能描述 | 模块路径 | 工业场景应用 |
| TextLoader | .txt | 加载纯文本文件,支持指定编码(如 UTF-8) | langchain_community. document_loaders | 解析日志文件、用户指令、配置文件(如设备日志、控制指令) |
| PyPDFLoader | 加载 PDF 文件,按页面提取文本 | langchain_community. document_loaders | 提取技术手册、合同、报告内容,生成结构化数据(如设备说明书、质量报告) | |
| Unstructured MarkdownLoader | .md | 加载 Markdown 文件,保留标题、列表等结构 | langchain_community. document_loaders | 解析技术文档、API 文档,构建知识库或 RAG 系统(如开发手册、操作指南) |
| Docx2txtLoader | .docx | 加载 Word 文档,提取纯文本 | langchain_community. document_loaders | 处理企业文档、报告、会议记录(如项目计划书、操作规程) |
| UnstructuredPower PointLoader | .ppt, .pptx | 加载 PowerPoint 文件,提取幻灯片文本 | langchain_community. document_loaders | 解析培训材料、演示文档(如技术培训 PPT、产品介绍) |
| WebBaseLoader | 网页 | 加载网页内容,支持 URL 或 HTML | langchain_community. document_loaders | 抓取在线技术文档、新闻、产品说明,补充知识库 |
| CSVLoader | .csv | 加载 CSV 文件,支持按行或列提取数据 | langchain_community. document_loaders | 解析工业数据表格、传感器数据(如生产数据、设备状态记录) |
| JSONLoader | .json | 加载 JSON 文件,提取指定字段或全部内容 | langchain_community. document_loaders | 解析结构化数据、API 响应(如设备状态 JSON、日志文件) |
| DirectoryLoader | 目录 | 批量加载目录中的多种文件类型 | langchain_community. document_loaders | 批量处理企业文档库、混合格式文件(如技术文档、日志文件夹) |
| 分割器名称 | 功能描述 | 类型 | 工业场景应用 |
| RecursiveCharacterTextSplitter | 递归按字符分割,先尝试自然边界(如段落、句子),太大则继续细分。 | 通用字符解析 | 通用文本处理,如日志、报告、PDF 文档分割,便于 RAG 检索。 |
| CharacterTextSplitter | 简单按指定分隔符(如换行、逗号)直接分割。 | 基础字符解析 | 简单字符串或 CSV 数据处理,如传感器数据日志。 |
| TokenTextSplitter | 按 token(词元)分割,支持 LLM token 计数。 | Token 基于解析 | LLM 输入优化,如处理 API 响应或长查询,控制 token 限制。 |
| MarkdownTextSplitter | 按 Markdown 结构(如标题、列表)智能分割。 | 结构化解析 | Markdown 文档分割,保留语义结构,用于知识库构建。 |
| HTMLSplitter | 按 HTML 标签(如 、 )分割网页内容。 | 结构化解析 | 网页数据爬取,如在线技术文档或新闻提取。 |
| SentenceTextSplitter | 按句子边界分割,使用 NLP 识别句子(包括标点)。 | 语义解析 | 自然语言文本,如文章或对话分析,保持句子完整。 |
| PythonCodeTextSplitter | 按 Python 代码结构(如函数、类)分割。 | 代码解析 | 源代码文件分析,如脚本调试或代码库管理。 |
| LatexTextSplitter | 按 LaTeX 结构(如章节、公式)分割。 | 结构化解析 | 学术论文或数学文档处理。 |
| SpacyTextSplitter | 使用 SpaCy NLP 库按句子或实体分割(需安装 SpaCy)。 | 语义解析 | 高级 NLP 场景,如实体提取或生物医学文本。 |
| NLTKTextSplitter | 使用 NLTK 库按句子或词分割(需安装 NLTK)。 | 语义解析 | 文本研究或分析,如时间序列数据描述。 |
| 对比维度 | ConversationBufferMemory | ConversationBufferWindowMemory |
| 核心机制 | 完整保留全部对话历史(用户提问 + AI 回复),无自动清理逻辑 | 仅保留最近 N 轮对话(N 为窗口大小,可配置),自动丢弃早期历史 |
| 优点 | 1. 上下文完整性最高,可回溯任意早期对话信息; 2. 配置简单(无需设置窗口大小); 3. 无信息丢失风险,适合依赖长历史的任务 | 1. 严格控制 Token 消耗,降低 API 成本; 2. 减少冗余信息,提升模型响应速度; 3. 灵活适配不同对话长度需求(调整 N 值); 4. 避免历史信息过载导致的模型逻辑偏移 |
| 缺点 | 1. 对话越长,Token 消耗越大,成本越高; 2. 长历史可能包含冗余信息,拖慢响应速度; 3. 极端长对话可能触发模型 Token 上限(如 GPT-3.5 的 4k/8k 上下文); 4. 历史信息过载可能导致模型聚焦性下降 | 1. 无法回溯窗口外的早期对话,可能丢失关键历史信息; 2. 需手动调试窗口大小(N 过小可能缺失必要上下文,N 过大则失去窗口意义); 3. 短窗口场景下,模型无法感知远期对话逻辑 |
| 适用场景 | 1. 短对话交互(如单轮 / 3-5 轮问答、简单咨询); 2. 需完整回溯历史的任务(如复杂问题拆解、多步骤协作、上下文依赖强的推理); 3. 对 Token 成本不敏感、追求上下文完整性的场景 | 1. 长对话场景(如客服对话、多轮聊天、持续任务协作); 2. 对 Token 成本和响应速度敏感的场景(如批量交互、高频调用); 3. 仅需基于近期上下文决策的任务(如日常聊天、即时咨询、短期任务跟进); 4. 模型上下文窗口有限的场景(如使用 4k 上下文的模型处理长对话) |
| Token 消耗 | 随对话长度线性增长(无上限,除非手动清理) | Token 消耗稳定在窗口大小对应的范围(可控) |
| 配置难度 | 低(仅需初始化,无需额外参数) | 中(需合理设置 k 参数,如 k=5 表示保留最近 5 轮) |
| 欢迎光临 AI创想 (https://llms-ai.com/) | Powered by Discuz! X3.4 |