Skip to content
第 11 课 / 共 12 课

第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 就像叫外卖:

  1. 你把问题"打包"发给 AI 服务
  2. AI 服务处理后把回答"送"回来
  3. 你的程序收到回答并显示给用户
想了解更多?

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 聊天机器人的最大区别是什么?


挑战任务

  1. 个性化:给你的机器人设计一个独特的性格——可以是高冷学霸、搞笑段子手、或者温柔知心姐姐
  2. 功能扩展:添加更多实用功能——翻译(简单的中英互译词典)、诗歌接龙、成语解释
  3. 多用户:改造网页版,支持输入用户名,每个用户有独立的对话记录
  4. 主题切换:给聊天界面加上主题切换功能(白天模式/夜间模式,不同颜色主题)

参考示例

本课的完整示例代码可以在这里查看:chatbot.py

下载后在终端运行:

bash
python chatbot.py

留言讨论