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

LangChain实战训练营-02核心组件与实战

文章目录

    • 第6章 Message消息体系详解
      • 6.1 为什么需要Message
      • 6.2 LangChain中的Message类型
      • 6.3 HumanMessage用户消息
        • 6.3.1 基本使用
        • 6.3.2 发送HumanMessage给模型
        • 6.3.3 HumanMessage的其他属性
      • 6.4 AIMessage AI回复消息
        • 6.4.1 AIMessage的结构
        • 6.4.2 手动创建AIMessage
        • 6.4.3 包含工具调用的AIMessage
      • 6.5 SystemMessage系统消息
        • 6.5.1 SystemMessage的基本使用
        • 6.5.2 SystemMessage放在哪里
        • 6.5.3 SystemMessage的最佳实践
        • 6.5.4 SystemMessage vs 放在用户消息里的指令
      • 6.6 其他特殊Message类型
        • 6.6.1 ToolMessage工具消息
        • 6.6.2 FunctionMessage(已过时)
        • 6.6.3 ChatMessage通用消息
      • 6.7 Message列表与多轮对话
        • 6.7.1 手动构建多轮对话
        • 6.7.2 消息历史的裁剪问题
        • 6.7.3 查看消息内容
      • 6.8 Message内容的多模态支持
        • 6.8.1 发送图片消息
    • 第7章 提示词模板PromptTemplate
      • 7.1 为什么需要提示词模板
      • 7.2 ChatPromptTemplate聊天提示词模板
        • 7.2.1 从模板字符串创建
        • 7.2.2 支持的role类型
        • 7.2.3 和模型链式调用
        • 7.2.4 from_template:单条消息模板
      • 7.3 MessagesPlaceholder消息占位符
        • 7.3.1 为什么需要MessagesPlaceholder
        • 7.3.2 MessagesPlaceholder的参数
      • 7.4 模板的部分格式化
        • 7.4.1 partial的使用
        • 7.4.2 用函数做partial(动态值)
      • 7.5 提示词模板的组合与管道
        • 7.5.1 最简单的链:Prompt + Model
        • 7.5.2 加上输出解析器
        • 7.5.3 管道的原理
      • 7.6 提示词工程最佳实践
        • 7.6.1 写好System Prompt
        • 7.6.2 思维链(Chain of Thought, CoT)
        • 7.6.3 提供示例(Few-shot Learning)
        • 7.6.4 指定输出格式
        • 7.6.5 提示词要迭代优化
      • 7.7 Few-shot少样本学习模板
        • 7.7.1 FewShotChatMessagePromptTemplate
        • 7.7.2 动态选择示例
    • 第8章 Tools工具系统
      • 8.1 为什么需要工具
      • 8.2 使用@tool装饰器定义工具
        • 8.2.1 第一个工具:计算器
        • 8.2.2 @tool装饰器的参数
        • 8.2.3 带多个参数的工具
      • 8.3 使用Tool类手动定义工具
        • 8.3.1 Tool类基本使用
        • 8.3.2 什么时候用Tool类而不是@tool
        • 8.3.3 StructuredTool:多参数工具
      • 8.4 工具的参数Schema定义
        • 8.4.1 使用Pydantic定义Schema(推荐)
        • 8.4.2 为什么参数描述很重要
      • 8.5 工具的绑定与调用
        • 8.5.1 bind_tools绑定工具
        • 8.5.2 调用带工具的模型
        • 8.5.3 执行工具并返回结果
        • 8.5.4 多个工具同时绑定
      • 8.6 内置工具介绍与使用
        • 8.6.1 查看可用的内置工具
      • 8.7 Tavily联网搜索工具集成
        • 8.7.1 注册Tavily获取API Key
        • 8.7.2 安装依赖并配置
        • 8.7.3 使用TavilySearchResults工具
        • 8.7.4 把搜索工具绑定给模型
      • 8.8 自定义工具的高级技巧
        • 8.8.1 工具错误处理
        • 8.8.2 工具返回结果要简洁
        • 8.8.3 工具的同步和异步
    • 第9章 结构化输出
      • 9.1 为什么需要结构化输出
        • 9.2.2 Pydantic模型的基本使用
      • 9.3 with_structured_output方法
        • 9.3.1 基本使用
        • 9.3.2 返回字典而不是Pydantic对象
        • 9.3.3 include_raw=True查看原始响应
      • 9.4 嵌套结构与复杂类型处理
        • 9.4.1 嵌套结构示例
        • 9.4.2 支持的类型
      • 9.5 枚举类型与字段验证
        • 9.5.1 使用Enum限制字段值范围
        • 9.5.2 字段验证规则
      • 9.6 结构化输出的常见问题与解决方案
        • 9.6.1 模型返回的结果不符合Schema怎么办
        • 9.6.2 模型总是漏掉可选字段
      • 9.7 实战:结构化信息提取
    • 第10章 Runnable接口与LCEL表达式
      • 10.1 Runnable接口概述
      • 10.2 LCEL链式表达式基础
        • 10.2.1 最简单的链
        • 10.2.2 为什么用LCEL
      • 10.3 管道操作符的使用
        • 10.3.1 管道的本质
        • 10.3.2 输入输出类型要匹配
      • 10.4 并行执行与分支
        • 10.4.1 RunnableParallel:并行执行多个组件
        • 10.4.2 RunnablePassthrough:数据透传
      • 10.5 自定义Runnable组件
    • 第11章 核心组件综合实战项目
      • 11.1 智能客服机器人
      • 11.2 简历信息提取系统
      • 11.3 数学计算助手
    • 附录C:核心组件API速查表
      • Message类型
      • Prompt Template
      • Tool定义
      • 结构化输出
      • LCEL管道

第6章 Message消息体系详解

在第一篇中,我们学会了如何初始化模型并发送消息。但是我们之前只是简单地传入一个字符串,LangChain内部是如何表示对话消息的呢?这一章我们将深入学习LangChain的Message消息体系,这是整个框架最基础也是最重要的概念之一。

6.1 为什么需要Message

我们先想一个问题:为什么不能简单地用字符串列表来表示对话历史?比如:

# 这是我们可能想到的简单方式,但这是不够的history=["你好,我叫小明","你好小明!有什么可以帮你的吗?","我今天心情不太好",]
http://www.jsqmd.com/news/1299320/

相关文章:

  • 《大道至简》
  • 什么是 AI 智能体搭建平台?普通人也能用吗?
  • Wand-Enhancer完整指南:免费解锁Wand专业版游戏修改功能
  • 会议录音怎么知道是谁说的?AI发言人识别到底准不准?
  • IntelliJ IDEA 2026.2 + Spring Boot 断点失效根因:delegateBuildToMaven 走 Maven exec 的坑
  • 2026年北京回收花梨木家具公司推荐指南:3家靠谱渠道实测对比,帮你轻松变现 - geo交流
  • STM32输入捕获原理与应用:从脉宽测量到PWM输入模式详解
  • 2026年 东莞吸塑内托/广东内嵌吸塑内托/环保吸塑内托源头厂家之选:精密成型与绿色工艺实力评估 - 优企名品
  • SendTomo与send.wang文件传输工具功能对比
  • KMS_VL_ALL_AIO:轻松搞定Windows和Office激活的智能工具
  • 位置式与增量式PID控制算法:原理、C语言实现与工程选型指南
  • 天津市防水补漏_2026中央直辖市超大城市漏水维修价格行情与五大正规团队推荐 - 雨婺虹房屋维修
  • 2026年7月评价高的防水卷材企业哪家靠谱,防水涂料/橡胶沥青防水涂料/高分子防水卷材/防水卷材,防水卷材直销厂家找哪家 - 品牌推荐师
  • NetLogo界面操作全解析:从零搭建高效建模工作流
  • 2026年北京西城回收水冷机组公司哪家好?一份客观甄选指南 - geo交流
  • 特种计算与加固存储技术:从原理到工业物联网与车载系统实战
  • 柏盛家具分享:全屋定制与工装家具配套落地实操知识,苏北工厂业务场景解析 - 国麟测评
  • 做智慧管网的公司有哪些?2026年智慧管网企业实力一览
  • 深度测评顺丰同城贵重物品寄递:六大维度验证,安全保障看得见 - 服务品牌热点
  • Comsol模拟岩石热-水-力耦合损伤的工程实践
  • 销售 CRM 自动录入智能体:2026 企业级 AI Agent 选型指南与技术架构深度解析
  • 深度测评顺丰同城:盈利持续向好,全维竞争力凸显 - 服务品牌热点
  • 最低松弛度优先调度算法:原理、实现与工程优化
  • Kimi Linear注意力机制实战:vLLM部署与长文本性能优化指南
  • LangChain 学习笔记 05:聊天记录很多,不等于模型真的有记忆
  • 工业自动化组态软件实战:从原理到应用,解析本特利3500系统配置
  • 2026 年雨虹防水(外墙防水屋面防水)余姚外墙漏水维修避坑全解析 - 国麟测评
  • Spfa最短路算法解析与竞赛应用
  • 深度调研顺丰同城:平峰期订单无忧,实力铸就履约底气 - 服务品牌热点
  • 我们认真测了顺丰同城,结论是:值得合作与投资的即时配送龙头 - 服务品牌热点