第二次作业---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. 业务流描述

  1. 用户打开 index.html 页面。
  2. 在输入框中输入消息,点击“发送”按钮。
  3. 前端使用 axios 向后端 POST /agent 发送请求。
  4. 后端 main.py 接收请求并解析用户意图:
    • 识别天气查询请求
    • 识别记忆请求
    • 识别回忆请求
    • 识别清空记忆请求
    • 识别任务/待办/计划请求
  5. 后端生成回复并返回给前端。
  6. 前端将助手回复显示在聊天区域。
  7. 若用户点击“清空”按钮,前端调用 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_queryis_forecast_query:判断是否为天气/预报请求
    • extract_note_text:从“记住”“记下”等指令中提取记忆内容
    • get_now_weatherget_forecast_weather:返回天气文本
    • save_memorysave_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 容错处理能力。
  • 庄伟浩:在文档编写和仓库管理方面获得了实践经验,学会了如何把功能需求拆解并验证项目整体运行情况。
posted @ 2026-04-05 22:11  庄伟浩  阅读(5)  评论(0)    收藏  举报