第 01 课:模型与消息
第 01 课模型与消息配套代码仓库https://gitee.com/wang-zeyong111/lang-chain-lecture本课定位模型与消息是 LangChain 的地基。后面的提示模板、工具调用、Agent、记忆和 LangGraph都会围绕“消息如何进入模型、模型如何返回消息、消息如何被继续保存和传递”展开。如果这一课理解扎实后面看到复杂 Agent 时就不会迷糊。学习目标理解聊天模型和传统 LLM 的区别。掌握系统消息、用户消息、AI 消息、工具消息的职责。能用字符串或消息列表调用模型。能手动维护一段对话历史。理解模型参数对稳定性、成本和延迟的影响。一、聊天模型的输入输出现代 LLM 应用通常使用聊天模型。聊天模型的输入不是单一字符串而是一组消息。每条消息都有角色和内容。常见消息角色system系统指令决定模型扮演什么角色、遵守什么边界。user用户输入。assistant模型输出。tool工具执行结果通常由 Agent 传回模型。LangChain 用消息对象统一表达这些内容使不同模型供应商可以使用相似的调用方式。二、为什么不要总用字符串调用字符串调用简单但适合场景有限一次性问题没有角色设定不需要多轮对话不需要工具结果不需要多模态内容。真实应用更常用消息列表因为你需要明确系统指令、历史对话、工具结果和用户最新问题。示例fromlangchain_core.messagesimportSystemMessage,HumanMessage messages[SystemMessage(content你是一位严谨的 Python 老师。),HumanMessage(content请解释 LangChain 的用途。),]responsemodel.invoke(messages)三、系统消息的设计系统消息不是随便写一句“你是助手”就完事。一个好的系统消息通常包含角色你是谁任务你要做什么风格简洁、详细、中文、分点约束不能编造、必须引用、遇到不确定要说明工具规则什么时候必须调用工具输出格式是否需要 JSON、表格或固定字段。例子你是企业知识库助手。只能依据给定上下文回答。 如果上下文不足请回答“资料不足无法确认”。 答案必须包含引用来源。四、AIMessage 不只是文本模型返回的通常是AIMessage。它的content是文本内容但在工具调用场景里AIMessage 还可能包含工具调用请求例如工具名、参数和调用 ID。这也是为什么 Agent 不是“模型直接回答”而是模型返回一个 AIMessage如果里面有工具调用就执行工具工具结果变成 ToolMessageToolMessage 再交给模型最后模型返回最终 AIMessage。五、手动维护对话历史记忆组件出现之前你可以手动维护消息列表history[SystemMessage(content你是学习助教。)]history.append(HumanMessage(content我喜欢简洁回答。))aimodel.invoke(history)history.append(ai)这能帮助你理解所谓“记忆”并不是模型自己永久记住了用户而是应用把之前的消息重新提供给模型。六、模型参数如何影响效果常见参数temperature越低越稳定越高越发散。max_tokens控制输出长度。timeout控制请求等待时间。model决定能力、价格、速度和上下文窗口。推荐经验任务temperature分类0 或接近 0抽取0 或接近 0工具调用0 或较低RAG 问答0 到 0.3文案创意0.6 到 1七、模型选择原则选模型不能只看“最强”。你要综合考虑能否支持工具调用能否支持结构化输出上下文窗口大小中文能力延迟成本供应商稳定性是否方便接入企业合规体系。学习阶段用便宜、快速的小模型即可。生产阶段可以按任务分层简单分类用小模型复杂推理用强模型。八、代码实战拆解本课 notebook 的get_demo_model()是一个模型工厂如果设置了真实 API Key就初始化真实模型如果没有就返回 Fake 模型。这个设计很实用因为它让课程代码具备两种运行模式学概念时不依赖网络和 Key实战时无缝切到真实模型。你在自己的项目里也可以采用类似模式把模型初始化集中到一个函数中避免到处散落模型配置。九、常见坑把用户输入直接拼进系统消息容易造成 prompt injection 风险。每轮对话都丢掉历史导致模型无法理解“继续”“刚才那个”。历史无限增长导致成本变高、延迟变长、效果变差。任务需要稳定输出却把 temperature 设太高。没有统一模型工厂项目里到处硬编码模型名。十、自测清单我能解释SystemMessage、HumanMessage、AIMessage的区别。我知道字符串调用和消息调用分别适合什么场景。我能手动维护一段对话历史。我知道为什么模型本身不会永久记住用户。我能根据任务选择合理的 temperature。十一、课后练习写一个ask_as(role, question)函数用不同系统角色回答同一个问题。写一段 3 轮对话手动维护history。把系统消息改成“必须先给结论再给理由”观察输出变化。如果有真实模型分别用 temperature 0 和 0.8 调用同一个问题对比差异。

相关新闻

地平线开发岗面试题目

地平线开发岗面试题目

如果你准备投 地平线 的开发岗,最容易踩的坑通常不是不会刷题,而是准备方向不对。 有些公司看起来都在招开发,但真正进面后会发现,关注点完全不一样: 有的公司更看重高并发和分布式 有的公司更看重 C、系统基础和性能…

2026/7/9 4:24:53阅读更多 →
为什么92%的电商团队在SD模型选型上踩坑?(附Shopify/TikTok Shop/拼多多平台适配评分表)

为什么92%的电商团队在SD模型选型上踩坑?(附Shopify/TikTok Shop/拼多多平台适配评分表)

更多请点击: https://kaifayun.com 第一章:为什么92%的电商团队在SD模型选型上踩坑? 电商团队在部署 Stable Diffusion(SD)模型时,常因“开箱即用”假象陷入系统性误判——看似只需下载模型权重即可生成商…

2026/7/9 4:24:53阅读更多 →
OpenResty 1.25.3.1 升级实战:CentOS 7.9 平滑迁移与 5 个 Lua 模块配置验证

OpenResty 1.25.3.1 升级实战:CentOS 7.9 平滑迁移与 5 个 Lua 模块配置验证

OpenResty 1.25.3.1 生产环境升级指南:CentOS 7.9 平滑迁移与核心模块验证1. 升级前的战略准备在开始升级前,我们需要建立一个完整的风险评估和回滚方案。不同于全新安装,生产环境的升级需要特别关注业务连续性保障。以下是关键准备步骤&…

2026/7/9 4:19:52阅读更多 →
【大数据毕业设计】基于 Hadoop 的新闻热点话题挖掘系统的设计与实现 基于 Django 的网络新闻大数据分析平台(源码+文档+远程调试,全bao定制等)

【大数据毕业设计】基于 Hadoop 的新闻热点话题挖掘系统的设计与实现 基于 Django 的网络新闻大数据分析平台(源码+文档+远程调试,全bao定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/9 5:30:05阅读更多 →
【大数据课程设计/毕业设计】基于 Hadoop 的热点新闻情感分析系统的设计与实现 基于智能分析的网络热点新闻推送与研判系统【附源码、数据库、万字文档】

【大数据课程设计/毕业设计】基于 Hadoop 的热点新闻情感分析系统的设计与实现 基于智能分析的网络热点新闻推送与研判系统【附源码、数据库、万字文档】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/9 5:30:05阅读更多 →
计算机大数据毕设实战-基于 Django 框架的热点新闻数据可视化系统的设计与实现 基于分布式大数据的热点新闻趋势研判系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】

计算机大数据毕设实战-基于 Django 框架的热点新闻数据可视化系统的设计与实现 基于分布式大数据的热点新闻趋势研判系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/9 5:30:05阅读更多 →
轻量级加密算法PRESENT:C++实现与硬件效率深度解析

轻量级加密算法PRESENT:C++实现与硬件效率深度解析

1. 项目概述:为什么我们需要关注PRESENT算法?如果你是一名嵌入式开发者、物联网安全工程师,或者对密码学在资源受限环境下的实现感兴趣,那么“轻量级加密”这个词对你来说一定不陌生。在智能门锁、可穿戴设备、工业传感器这些计算…

2026/7/9 5:30:05阅读更多 →
MySQL 5.7 频繁被 Systemd 杀死:一次惊心动魄的故障排查之旅

MySQL 5.7 频繁被 Systemd 杀死:一次惊心动魄的故障排查之旅

摘要:本文详细记录了一次 MySQL 5.7 数据库频繁宕机的问题排查全过程。从应用连接失败日志入手,逐步深入分析 systemd 服务配置、磁盘空间、启动超时等关键因素,最终通过优化 systemd 服务类型完美解决问题。适合所有遇到过数据库莫名重启的开…

2026/7/9 5:30:05阅读更多 →
GitHub AI项目实战:聚焦Agent技能化与工程化集成

GitHub AI项目实战:聚焦Agent技能化与工程化集成

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 最近在 GitHub 上找 AI 项目,是不是感觉信息过载了?每天都有几十个新项目冒出来,标题都带着“AI”…

2026/7/9 5:25:05阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/8 5:12:14阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/8 7:00:12阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/9 2:47:07阅读更多 →
Three.js 着色器光效教程

Three.js 着色器光效教程

着色器光效 Shader Light ▶ 在线运行案例 案例合集: 三维可视化功能案例(threehub.cn)开源仓库github地址: https://github.com/z2586300277/three-cesium-examples400个案例代码: 网盘链接 你将学到什么 ShaderMaterial 自…

2026/7/9 0:04:37阅读更多 →
如何5分钟掌握CS2智能库存管理:开源工具CASEMOVE终极指南

如何5分钟掌握CS2智能库存管理:开源工具CASEMOVE终极指南

如何5分钟掌握CS2智能库存管理:开源工具CASEMOVE终极指南 【免费下载链接】casemove A dedicated desktop app that enables you to move items in and out of storage units in CS2. 项目地址: https://gitcode.com/gh_mirrors/ca/casemove 还在为CS2存储单…

2026/7/9 0:04:37阅读更多 →
GBase 8a vs MySQL 8.0:ALTER TABLE语法与限制的5点关键差异对比

GBase 8a vs MySQL 8.0:ALTER TABLE语法与限制的5点关键差异对比

GBase 8a与MySQL 8.0:ALTER TABLE语法差异深度解析与实战指南1. 两种数据库的ALTER TABLE能力全景对比在数据库架构设计和运维过程中,表结构变更(DDL操作)是不可避免的需求。GBase 8a作为国产分析型数据库代表,与开源M…

2026/7/9 0:04:37阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/8 6:59:54阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/8 13:42:39阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/8 13:42:39阅读更多 →