Learning Path
浏览 LangChain 相关教程与章节。
AI Agent、机器学习、深度学习、数据分析与 Python 科学计算。
教程
43
LangChain Chat Model 常用参数 上一节我们学习了 init_chat_model() 的基本用法。本节将详细介绍在调用模型时常用的控制参数,帮助你更好地控制模型的行为。 temperature——控制创造性与确定性 temperature 是最常用的参数,取值范围 0 到 2。它控制模型输出的随机程度。 实例 [mycode4 type='python'] from langcha..
LangChain 多 Agent 当一个任务太复杂,单个 Agent 难以胜任时,你可以创建多个各司其职的 Agent,让它们像团队一样协作。 为什么需要多 Agent 单个 Agent 的问题: system_prompt 太长会导致模型注意力分散 工具太多会增加模型选择工具的出错概率 不同类型的任务需要不同的专业知识和行为风格 多 Agent 的方案:每个 Agent 专注于一个领域,通过协作完成复杂任..
LangChain 智能客服机器人 本篇将前面学到的知识整合起来,构建一个完整的智能客服机器人。它能够查询知识库、处理订单、在必要时转接人工。 需求分析 功能实现方式 知识库问答RAG 检索 + 模型回答 订单查询@tool 工具函数 对话记忆SqliteSaver Checkpointer 敏感内容过滤@before_model Middleware 人工转接HITL interrupt() ..
LangChain 个人知识库问答系统 本篇构建一个能加载 Markdown 文件、PDF 文档,并基于这些内容进行问答的个人知识库系统。 系统设计 文档加载:支持 Markdown、TXT、PDF 多种格式 向量检索:Chroma 持久化存储,支持增量更新 引用来源:回答中附带来源文档和片段位置 流式输出:逐 Token 显示回答 完整代码 实例 [mycode4 type='pyt..
LangChain 多工具个人助手 本篇构建一个集天气查询、日程管理、邮件发送于一体的个人助手 Agent,展示多工具协作和结构化输出的完整用法。 系统设计 三个工具:天气查询、日程管理、邮件发送 结构化输出:日程汇总格式化为 Markdown 流式输出:实时显示 AI 思考和处理过程 对话记忆:记住用户偏好和上下文 完整代码 实例 [mycode4 type='python'..
LangChain RAG RAG(Retrieval-Augmented Generation,检索增强生成)让 AI 能够基于你的私有文档回答问题,不需要微调模型,只需将文档向量化存储,Agent 就能检索相关内容来回答。 RAG 是什么 普通的大模型只能回答训练数据中有的内容。如果你的文档是私有的(公司内部文档、个人笔记),模型就'不知道'。RAG 解决了这个问题: 离线阶段:将文档切分成小块..
LangChain 工具访问 -- InjectedState 与 InjectedStore 有时工具需要访问更多上下文信息,比如当前对话的状态、用户的持久化数据等。LangChain 通过依赖注入机制,让工具函数能够自动获取这些信息。 InjectedState——在工具中访问 Agent 状态 默认情况下,工具只能通过参数接收模型传来的数据。但有时工具需要知道当前对话的上下文——比如之前的对话历史、用户已确认的信息等。..
LangChain 跨会话存储 —— Store Checkpointer 解决了'单个对话内记忆'的问题。但如果你需要在不同对话之间共享数据——比如用户偏好、学习进度——就需要用到 Store。 Checkpointer vs Store 维度CheckpointerStore 作用域单个对话线程(thread_id)跨所有对话线程 数据类型Agent 状态快照(自动管理)任意键值数据(手动..
LangChain 流式输出 Streaming 流式输出让 AI 的回复像打字一样逐字显示,极大地提升了用户体验。LangChain 的 Agent 内置了完善的流式输出支持。 为什么需要流式输出 如果使用 invoke(),用户需要等待 Agent 完成所有步骤(多次模型调用 + 工具执行)才能看到结果。对于复杂任务,这可能耗时十几秒甚至更长。 流式输出解决了这个问题:每生成一个 Token 就立即返回,用户可以实时看到..
LangChain 输出策略 LangChain 提供了三种结构化输出策略,理解它们的区别和工作原理,能帮助你在不同场景下做出最佳选择。 三种策略概述 策略原理模型支持响应速度 ToolStrategy将 Schema 伪装成工具,模型'调用'这个工具来输出结构化数据所有支持 function calling 的模型较慢(多一次工具调用) ProviderStrategy使用模型原生的结构化输..
LangChain 结构化输出 大多数时候,你需要的不是一段自由文本,而是结构化的数据——比如 JSON 对象。LangChain 结构化输出(Structured Output) 让 Agent 按照你指定的格式返回结果,方便程序直接使用。 为什么需要结构化输出 假设你需要从一段用户描述中提取姓名、年龄和职业: 方式输出格式后续处理 普通回复'张三今年28岁,是一名工程师'需要正则或再次调用模..
LangChain 提示词 -- System Prompt 与 Dynamic Prompt System Prompt(系统提示词)是控制 Agent 行为的核心手段。 本节介绍静态提示词和动态提示词的使用方法。 system_prompt 参数 create_agent() 的 system_prompt 参数接受两种形式: 实例 [mycode4 type='python'] from lan..
LangChain 工具高级特性 上一节我们学习了 @tool 的基本用法。本节介绍工具的高级特性:return_direct、InjectedToolCallId、ToolException 和错误处理。 return_direct——直接返回最终结果 默认情况下,工具执行后结果会返回给模型,模型再基于工具结果生成最终回复。但有时工具结果本身就是你想要的最终答案。 设置 return_direct=True 后,工具执行完..
LangChain @tool 装饰器——定义工具 工具(Tool)是 Agent 与外部世界交互的桥梁。通过 @tool 装饰器,你可以将任何 Python 函数快速转换为 Agent 可调用的工具。 @tool 基本语法 @tool 是 LangChain 提供的装饰器,用法极其简单:在函数上加上 @tool 装饰器,函数就变成了一个工具。 实例 [mycode4 type='python'] f..
LangChain Tools API @tool 装饰器 参数类型默认值说明 args_schemaBaseModel 或 NoneNone参数校验模型。不传则从函数签名自动生成 return_directboolFalse是否直接返回(跳过模型再思考) namestr 或 None函数名工具名称 descriptionstr 或 None函数文档字符串工具描述 BaseTool 主要属性与方法 ..
LangChain 教程 LangChain 是一套用于构建 AI 智能体(AI Agent)和大语言模型(LLM)应用的开发框架。 LangChain 可以帮助开发者快速构建基于 GPT、Claude、Gemini 等大模型的复杂 AI 应用。 LangChain 由 Harrison Chase 于 2022 年 10 月推出,核心目标是:简化大语言模型应用开发流程。 LangChain提供统一接口,可..
LangChain 模型调用拦截 -- @wrap_model_call @wrap_model_call 是中间件(Middleware)中最强大的钩子。 @wrap_model_call 不像 before/after 那样只是观察,而是可以完全控制模型的执行过程——重试、降级、缓存、甚至跳过模型直接用预设回复。 理解 handler 回调 @wrap_model_call 的核心是一个 handler 回调函数。调用 ..
LangChain 工具调用拦截 -- @wrap_tool_call @wrap_tool_call 让你在工具执行层面实现与 @wrap_model_call 类似的控制能力——重试、缓存、参数改写、结果后处理。 基本结构 @wrap_tool_call 的结构与 @wrap_model_call 类似,接收 request 和 handler 两个参数: 实例 [mycode4 type='python..
LangChain 构建 RAG Agent 前两篇我们准备了向量存储和检索器。本篇将它们集成到 Agent 中,构建一个完整的 RAG Agent——能够基于私有知识库回答问题的智能助手。 创建 Retriever 工具 将检索器包装成一个工具,Agent 就能在需要时自动搜索知识库: 实例 [mycode4 type='python'] from dotenv import load_dotenv..