第二次作业---agent的初步构建
| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering24 |
|---|---|
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering24/homework/15646 |
| 这个作业的目标 | 了解agent的相关知识 和团队一起初步构建出行助手智能体 |
| 学号 | 3124003560 |
Agent 说明文档
1. 需求描述
本项目实现了一个轻量级的 AI 任务助手 Agent,支持以下功能:
- 查询当前天气和未来天气预报
- 记住用户指定的内容
- 回忆已记住的内容
- 清空记忆数据
- 生成简易待办清单和学习计划
前端使用 index.html 实现页面展示与交互,后端使用 main.py 实现业务逻辑与接口。
2. 业务流描述
- 用户打开
index.html页面。 - 在输入框中输入消息,点击“发送”按钮。
- 前端使用
axios向后端POST /agent发送请求。 - 后端
main.py接收请求并解析用户意图:- 识别天气查询请求
- 识别记忆请求
- 识别回忆请求
- 识别清空记忆请求
- 识别任务/待办/计划请求
- 后端生成回复并返回给前端。
- 前端将助手回复显示在聊天区域。
- 若用户点击“清空”按钮,前端调用
POST /clear,后端清空对话历史和记忆。
3. 实现说明
前端 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:清空对话历史和记忆
4. 使用示例(功能演示)
示例 1:查询当前天气
用户输入:
广州天气
助手回复示例:
🌤 广州 当前天气:...
示例 2:查询天气预报
用户输入:
北京明天预报
助手回复示例:
📅 北京 3天天气预报:...
示例 3:记住内容
用户输入:
记住我喜欢Python
助手回复:
✅ 已记住:我喜欢Python
示例 4:回忆记住内容
用户输入:
你记得什么
助手回复示例:
我记住了:1. 我喜欢Python
示例 5:清空记忆
用户点击“清空”按钮,后端返回:
已清空对话历史和记忆
示例 6:任务与计划
用户输入:
给我一个待办帮我安排计划
助手分别返回待办清单和学习计划。
5. GitHub 链接
项目已提交至我们团队作业的 GitHub 公共仓库:
https://github.com/easyfirst14536/take-the-lead
6. 小组分工
- 刘佳浩:负责
index.html前端页面设计与交互逻辑实现 - 张逸川:负责
main.py后端业务逻辑、天气接口与记忆功能实现 - 庄伟浩:负责文档整理、功能测试与 GitHub 提交管理
7. 小组成员心得
- 刘佳浩:通过本次作业,熟悉了前端与后端的数据交互流程,掌握了
axios请求和页面动态显示内容的方法。 - 张逸川:学习了 FastAPI 的快速接口开发,理解了如何根据用户意图设计业务判断逻辑,并增强了第三方 API 容错处理能力。
- 庄伟浩:在文档编写和仓库管理方面获得了实践经验,学会了如何把功能需求拆解并验证项目整体运行情况。

浙公网安备 33010602011771号