主题
第11课:聊天机器人 —— 你的 AI 小助手
🤖 你每天都在和 Claude Code 聊天——有没有想过,你也可以自己做一个聊天机器人?
⏱️ 预计用时:60 分钟
学习目标
学完这节课,你将会:
- 理解聊天机器人的工作原理(从简单到复杂)
- 学会用 Python 构建一个能对话的程序
- 了解什么是 API,以及如何调用 AI 服务
- 做出一个有漂亮网页界面的聊天机器人
聊天机器人是怎么工作的?
你有没有好奇过,ChatGPT、Claude 这些 AI 助手是怎么"理解"你说的话的?
其实聊天机器人经历了三代进化:
第一代:关键词匹配(最简单)
就像一本"问答字典",看到特定的词就给出对应的回复:
用户说了"你好" → 回复"你好呀!"
用户说了"天气" → 回复"今天天气不错哦!"
用户说了其他 → 回复"抱歉,我不太懂你的意思"这种方式很简单,但也很"笨"——只能应对预设好的问题。
第二代:规则引擎(聪明一点)
不只看单个词,而是看模式和语境:
如果 用户的话 包含"几点" 并且 包含"上课":
回复课表里对应的时间
如果 用户的话 包含"作业" 并且 包含"什么":
回复今天的作业清单很多客服机器人就是这个原理——比如你打电话给银行,按1查余额,按2转人工……
第三代:AI 大模型(最聪明)
这就是 ChatGPT、Claude 使用的技术。它们不是靠关键词,而是"真正理解"语言的含义——当然这个"理解"是通过海量数据训练出来的模式匹配。
用户:"帮我用更活泼的语气改写这段话"
AI:(理解了"活泼语气"的含义,进行改写)小贴士
今天我们会从第一代开始做起,然后升级到可以调用真正 AI 的版本。就像你学编程一样——先走再跑!
什么是 API?
在做 AI 聊天机器人之前,我们需要理解一个重要的概念——API。
API(Application Programming Interface)= 程序之间的"传话筒"。
还记得第6课的"外卖"比喻吗?
你(程序) → 外卖平台(API) → 餐厅(AI 服务)
下单 传递订单和收取食物 做菜调用 AI 的 API 就像叫外卖:
- 你把问题"打包"发给 AI 服务
- AI 服务处理后把回答"送"回来
- 你的程序收到回答并显示给用户
想了解更多?
API 无处不在!你手机上的天气 App 就是通过 API 获取气象数据的;微信支付也是通过 API 和银行通信的。
对于开发者来说,API 是最重要的工具之一——它让你可以"借用"别人已经做好的强大功能,不需要自己从零开始做。
动手时间:做一个聊天机器人!
今天的项目有两条路线,你可以根据自己的情况选择:
| 路线 A:AI 加持版 | 路线 B:规则版 | |
|---|---|---|
| 需要什么 | Anthropic API Key | 不需要任何额外东西 |
| 智能程度 | 真正的 AI 对话 | 基于关键词和规则 |
| 适合谁 | 有 API Key 的同学 | 所有同学 |
| 学到什么 | API 调用、异步编程 | 字符串处理、逻辑设计 |
小贴士
两条路线最终都会生成一个漂亮的 HTML 聊天界面!如果你没有 API Key,走路线 B 一样能学到很多东西。路线 B 做的规则型机器人也是真实产品中常用的技术。
第一步:创建项目
bash
mkdir my-chatbot
cd my-chatbot
claude路线 A:AI 加持版(需要 API Key)
注意
这条路线需要 Anthropic API Key。你可以在 Anthropic Console 注册获取。新用户通常有免费额度。如果你未满 18 岁,请让家长帮你注册。
如果没有 API Key,请直接跳到路线 B。
第 A-1 步:安装依赖
bash
pip install anthropic第 A-2 步:创建 AI 聊天机器人
魔法咒语
用 Python 做一个调用 Claude API 的聊天机器人,要求:
1. 文件名叫 chatbot.py
2. 使用 anthropic 库调用 Claude API
3. API Key 从环境变量 ANTHROPIC_API_KEY 读取
4. 功能:
- 终端里的交互式对话
- 支持多轮对话(记住上下文)
- 给 AI 设定一个角色:校园学习助手,友好、有耐心、回答简洁
- 输入"退出"或"quit"结束对话
- 输入"清除"清空对话历史
5. 每次对话显示:用户的话(绿色)和 AI 的回复(蓝色)
6. 启动时显示欢迎信息和使用说明设置 API Key(运行前需要):
bash
# Windows
set ANTHROPIC_API_KEY=你的API密钥
# Mac/Linux
export ANTHROPIC_API_KEY=你的API密钥第 A-3 步:运行测试
bash
python chatbot.py试着和你的 AI 助手聊聊天吧!问它一些学习上的问题,看它怎么回答。
第 A-4 步:添加网页界面
魔法咒语
给聊天机器人添加一个网页界面:
1. 创建 chat_web.py,用 Python 内置的 http.server 做一个简单的网页服务器
2. 创建 chat.html 作为聊天界面:
- 类似微信的对话气泡界面
- 用户消息靠右(绿色气泡),AI 回复靠左(白色气泡)
- 底部有输入框和发送按钮
- 按回车也能发送
- 发送后输入框自动清空,自动滚动到最新消息
- 加载中时显示"AI 正在思考..."的动画
3. chat_web.py 需要处理:
- 提供 chat.html 静态页面
- 接收 POST 请求(用户发送的消息)
- 调用 Claude API 获取回复
- 返回 AI 的回复
4. 界面要好看:渐变背景、圆角气泡、柔和阴影
5. 运行后在终端提示打开 http://localhost:8000路线 B:规则版(不需要 API Key)
第 B-1 步:创建规则型聊天机器人
魔法咒语
用 Python 做一个规则型聊天机器人(不需要任何外部 API),要求:
1. 文件名叫 chatbot.py
2. 机器人的角色:校园小助手"小智"
3. 用字典和关键词匹配实现以下功能:
- 打招呼(你好、嗨、hello → 热情回复)
- 查课表(课表、什么课、上课 → 显示今天的课程安排)
- 查作业(作业、homework → 显示今日作业清单)
- 讲笑话(笑话、开心、无聊 → 随机讲一个笑话)
- 名言警句(名言、励志、加油 → 随机一条名言)
- 学习建议(怎么学、学习方法 → 给出学习建议)
- 计算器(计算、算一下 + 数学表达式 → 计算结果)
- 帮助(帮助、help → 显示所有功能列表)
4. 如果不匹配任何关键词,从一组默认回复中随机选一个
5. 对话支持上下文:记住用户的名字(如果用户说了"我叫xxx")
6. 终端里的交互式对话,有颜色区分
7. 输入"退出"结束对话第 B-2 步:运行并测试
bash
python chatbot.py试试各种对话,看看"小智"能回答什么!
第 B-3 步:增强智能程度
魔法咒语
让聊天机器人更聪明:
1. 模糊匹配:不要求完全包含关键词,允许一些变化(比如"课程表"也能匹配"课表")
2. 情感识别:简单识别用户的情绪
- 包含"开心/高兴/哈哈" → 积极情绪,给出开心的回应
- 包含"难过/烦/不开心" → 消极情绪,给出安慰和鼓励
- 包含"生气/气死" → 愤怒情绪,帮助冷静
3. 连续对话:如果用户连续说"再来一个",继续讲笑话或名言
4. 时间感知:根据当前时间(用 datetime 模块)给出不同的问候(早上好/下午好/晚上好)
5. 计算器增强:支持简单的数学题(加减乘除、括号)第 B-4 步:生成网页聊天界面
魔法咒语
给聊天机器人生成一个网页界面:
1. 创建 chat_web.py,启动一个 HTTP 服务器
2. 生成 chat.html 聊天界面:
- 类似微信的对话气泡界面
- 用户消息靠右(绿色气泡),机器人回复靠左(白色气泡)
- 底部有输入框和发送按钮
- 按回车也能发送
- 机器人头像用 emoji 🤖
- 发送后自动滚动到最新消息
3. chat_web.py 处理:
- 提供 chat.html 页面
- 接收用户消息(POST 请求)
- 用规则引擎生成回复
- 返回回复
4. 界面设计要像真正的聊天 App:渐变背景、圆角气泡、柔和阴影
5. 顶部显示机器人名字"小智"和在线状态两条路线汇合:运行网页版!
bash
python chat_web.py然后打开浏览器访问 http://localhost:8000,你就有了一个带漂亮界面的聊天机器人!
小贴士
这是你做的第一个有"前端+后端"的完整应用!
- 前端(chat.html):用户看到的界面,负责显示对话气泡
- 后端(chat_web.py):运行在终端里,负责接收消息、生成回复
用户在网页上打字 → 消息发送到后端 → 后端处理后返回回复 → 前端显示回复
这就是微信、淘宝等所有 App 的基本工作方式!
今天学了什么?
| 概念 | 说明 |
|---|---|
| 聊天机器人 | 能与人对话的程序,从简单的关键词匹配到复杂的 AI |
| 关键词匹配 | 通过检测用户输入中的关键词来决定回复 |
| 规则引擎 | 用一组 if/else 规则来处理各种情况 |
| API | 程序之间的"传话筒",让你借用其他服务的能力 |
| HTTP 服务器 | 后端程序,接收和响应网络请求 |
| 前后端分离 | 前端负责界面,后端负责逻辑,通过 API 通信 |
1. 聊天机器人最简单的实现方式是什么?
2. API 的最佳比喻是什么?
3. 在我们的聊天机器人项目中,「前端」和「后端」分别是什么?
4. 规则型聊天机器人和 AI 聊天机器人的最大区别是什么?
挑战任务
- 个性化:给你的机器人设计一个独特的性格——可以是高冷学霸、搞笑段子手、或者温柔知心姐姐
- 功能扩展:添加更多实用功能——翻译(简单的中英互译词典)、诗歌接龙、成语解释
- 多用户:改造网页版,支持输入用户名,每个用户有独立的对话记录
- 主题切换:给聊天界面加上主题切换功能(白天模式/夜间模式,不同颜色主题)
参考示例
本课的完整示例代码可以在这里查看:chatbot.py
下载后在终端运行:
bash
python chatbot.py
留言讨论