第二次作业
这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering24
这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering24/homework/15646
这个作业的目标 构建一个能说会做的智能体
学号 3124004524
Agent 说明文档
- 需求描述
本项目实现了一个轻量级的 AI 任务助手 Agent,支持以下功能:
查询当前天气和未来天气预报
记住用户指定的内容
回忆已记住的内容
清空记忆数据
生成简易待办清单和学习计划
前端使用 index.html 实现页面展示与交互,后端使用 main.py 实现业务逻辑与接口。
- 业务流描述
用户打开 index.html 页面。
在输入框中输入消息,点击“发送”按钮。
前端使用 axios 向后端 POST /agent 发送请求。
后端 main.py 接收请求并解析用户意图:
识别天气查询请求
识别记忆请求
识别回忆请求
识别清空记忆请求
识别任务/待办/计划请求
后端生成回复并返回给前端。
前端将助手回复显示在聊天区域。
若用户点击“清空”按钮,前端调用 POST /clear,后端清空对话历史和记忆。 - 实现说明
前端 index.html
使用 HTML/CSS 构建聊天界面。
包含消息展示区域、文本输入框、发送按钮、清空按钮。
使用 axios 向后端接口发送请求。
支持跨域访问,前端可以从 localhost 调用后端服务。
后端 main.py
使用 FastAPI 创建 Web 服务。
配置 CORSMiddleware,允许前端跨域请求。
定义 ChatInput 数据模型,接收前端传来的消息。
使用 memory 保存对话历史,使用 notes 保存记忆内容。
定义天气服务:
优先调用 QWeather 官方 API
若 QWeather 无法访问,则回退到 wttr.in 免费接口
定义核心处理函数:
extract_city:根据用户消息提取城市
is_weather_query、is_forecast_query:判断是否为天气/预报请求
extract_note_text:从“记住”“记下”等指令中提取记忆内容
get_now_weather、get_forecast_weather:返回天气文本
save_memory、save_note:保存对话和记忆内容
核心接口
POST /agent:根据用户消息返回智能助手回复
POST /clear:清空对话历史和记忆 - 使用示例(功能演示)
示例 1:查询当前天气
用户输入:
广州天气
助手回复示例:
🌤 广州 当前天气:...
示例 2:查询天气预报
用户输入:
北京明天预报
助手回复示例:
📅 北京 3天天气预报:...
示例 3:记住内容
用户输入:
记住我喜欢Python
助手回复:
✅ 已记住:我喜欢Python
示例 4:回忆记住内容
用户输入:
你记得什么
助手回复示例:
我记住了:1. 我喜欢Python
示例 5:清空记忆
用户点击“清空”按钮,后端返回:
已清空对话历史和记忆
示例 6:任务与计划
用户输入:
给我一个待办
帮我安排计划
助手分别返回待办清单和学习计划。
- GitHub 链接
项目已提交至我们团队作业的 GitHub 公共仓库:
浙公网安备 33010602011771号