第二次小组作业

news/2025/10/22 19:06:41/文章来源:https://www.cnblogs.com/xuezong691/p/19158759

第二次小组作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering
这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/homework/13559
这个作业的目标 定制ai智能体制作
学号 102301418

Agent 智能体系统说明文档

需求描述

一个 基于dify平台或本地大语言模型的 可以帮用户整理任务和生成待办清单的 智能助理

功能需求

  • 核心功能

    • 1.调用工具的同时聊天功能不受影响

    • 2.能够调用ai进行待办事项的增删改查以及生成待办事项清单

    • 3.待办事项清单根据不同紧急程度动态调整

  • 扩展功能

    • 1.所有待办事项的数据保存在本地的mysql数据库中

    • 2.通过网页实时更新待办事项清单内容,便于观察

    • 3.提供不需要平台的本地聊天程序,便于后续的灵活调用,更好地与其他程序配合而不影响办公功能(github中已写好简易搭建教程)

业务流描述

总体业务流程

flowchart LRsubgraph 业务流程direction LRA[👤 用户] --> B[🤖 AI]B --> C[🖥️ MCP Server]C --> D[🐍 工具]D --> CC --> BB --> Aendstyle A fill:#4CAF50,color:whitestyle B fill:#2196F3,color:whitestyle C fill:#FF9800,color:whitestyle D fill:#9C27B0,color:white

要点:

1.mcpserver时刻运行,等待ai发送调用工具请求

2.ai自动识别用户需不需要调用工具(工具需使用mcp接口提前注册),若需要则向mcp服务器发送调用工具请求(包括传参)

3.ai得到工具运行后的结果处理后反馈给用户

4.ai可以选择在dify平台,也可以选择本地的大模型

实现说明

后端:

1.网页后端采用flask用于挂载动态网页。

2.mcp后端对于本地环境版本的采用fastmcp接口编写mcp_server,mcp_client,在mcp_client实例中采用openai调用大模型的接口连接本地ollama的qwen3:0.6b模型,这样就可以通过本地大模型调用mcp_server中的工具函数。

3.mcp后端对于dify的部署采用fastapi接口来通过网络(http)进行工具函数的调用请求和结果返回。

前端:

使用js的定时器函数周期查看本地的json文件进行待办事项清单的渲染。

工具函数:

基于本地MySQL数据库增删改查,生成清单(同时会将清单数据存入本地json文件)等函数。

功能演示

1.本地环境(qwen3:0.6b)
8e7024d38bcae0fc62f9002457cb4637

2.dify(ds chat)
6363a53a3af3f6aa970bb9db334b30ee


github地址->https://github.com/xuezong691/fzuteam_lakers


小组分工与成员心得

薛刚(PM,后端):本次项目我主要负责了整个项目的初期调研,框架设计,流程安排,以及mcp接口后端的编写。在我看来对于整个项目而言初期调研的意义重大,只有最适合的目标才能让整个小组的效率更高,我对初期调研付出的精力很多,先是分析老师要求的作品的需求确定我们大致的目标,随后通过网络搜索,小型项目复现等最后确定了使用dify作为主要的开发平台,从而对组员进行分工,在实践过程中不断完善项目。前端很给力,大家都很配合,我们也是能够顺利按时完成任务。不过我在组员分工也存在一些不足,以后应该设立技术总监这样的职位能够时刻统一多人编码的风格,要不然最后统一大家代码格式的时候挺麻烦的..

汤健(前端):本次项目我负责的是前端静态页面的搭建。在完成本次项目的过程中我也对动态页面进行了学习,学会了如何实时监测文件数据。同时通过前后端的配合,我加强了团队协作能力,能够根据团队需求做好自己的任务要求。

廖云峻(前端):本次任务我参与了前端的代码编写,通过学习,我认识到HTML和JavaScript是构建现代网页的核心技术,二者相辅相成,分别承担着“结构”与“行为”的角色。HTML是网页的骨架。它通过各种标签来定义网页的内容结构,包括标题、段落、图片、表单等。学习HTML让我掌握了如何搭建一个语义清晰、层次分明的页面基础。JavaScript则是网页的灵魂,负责实现交互功能和动态效果。它使我能够操作HTML元素(DOM操作),响应用户事件(如点击、鼠标移动)。例如,表单验证、图片轮播、内容动态更新等功能,都离不开JavaScript。我学习了变量、数据类型、函数、循环和条件判断等核心语法,这是实现复杂逻辑的基础。更重要的是,我理解了它们如何协同工作:HTML提供结构,JavaScript通过获取DOM节点来监听事件并修改页面内容与样式,从而实现用户与网页的动态交互。总而言之,HTML与JavaScript的结合,将静态的文档转变为充满活力的Web应用。掌握它们是我进入前端开发世界的第一步,为后续学习更高级的框架和技术奠定了坚实的基础。

杨智鈜(后端):通过本次项目开发,我对Flask框架有了更深入的理解。在构建待办事项管理系统的过程中,最深刻的体会是数据结构设计的重要性。合理的类设计为后续开发奠定了坚实基础,避免了频繁的代码重构。我认识到良好的数据结构设计是项目成功的基石。通过设计todo_task类,我们为整个系统建立了清晰的数据模型,这大大简化了后续的数据库操作和API接口设计。每个字段的定义都经过仔细考量,既满足功能需求,又保持足够的灵活性。在解决"Method Not Allowed"错误的过程中,我也更加理解了请求方法规范的必要性。JSON数据处理是项目的关键环节。通过实践掌握了数据序列化的技巧,这种能力在现代Web开发中极为实用。模块化的开发思路让代码结构清晰,便于维护和扩展。这次经历将理论知识与实践紧密结合,提升了我的工程化思维和问题解决能力,为今后的项目开发积累了宝贵经验

章鸿晨(函数编写):在这次基于MCP框架的智能待办清单开发中,我对AI应用架构有了基本的技术理解。MCP协议本质上是通过标准化的JSON-RPC接口,让AI模型能够动态发现和调用外部工具。我们实现的待办事项管理函数,实际上是在构建一个工具服务器,这些函数通过schema定义其功能、参数和返回值,使大语言模型能够像调用API一样操作系统资源。在函数编写的过程中,我特别体会到工具的重要性,这种设计模式让AI模型不再局限于文本生成,而是真正获得了操作系统的能力。"工具调用-反馈-调整"的交互模式,体现了智能体系统的核心价值。通过这次小组作业,我真正理解了如何将大语言模型从"对话系统"升级为"行动系统"。这种架构设计使得AI不再只是回答问题,而是能够主动执行任务、管理系统状态,为实现真正的自主智能体奠定了基础。

许敬豪(函数编写):通过这次生成清单函数的开发,我不仅提升了技术能力,更重要的是学会了在团队中如何有效地协作和沟通。一个看似简单的功能背后,需要考虑数据库设计、性能优化、团队协作等多个方面。这次经历让我深刻体会到,优秀的开发者不仅要写出能工作的代码,更要写出易于理解、便于维护、利于协作的代码。

姚敏聪(函数编写):这段数据库删除功能的开发与调试,让我对数据操作有了更深体会。最初我仅关注 “删除” 本身,测试时发现直接操作自增 ID 存在隐患 —— 若删除中间记录后不重新编号,可能导致 ID 断层,影响业务对 “连续编号” 的依赖;但重新编号又会引发新问题:修改自增属性时若有并发操作,可能造成数据混乱。因此加入了事务提交和分步执行逻辑,确保重新编号的原子性。其次在用户交互的过程中,我发现,仅凭 ID 删除容易误操作,尤其当 ID 对应真实业务实体时,添加 “确认删除” 步骤能有效降低错误率。调试中最大收获是:数据操作不能只看 “正常流程”,更要预判各种异常场景。从用户输入校验到数据库连接关闭,每个环节的细节处理,都是保障数据安全的基石。

周宇烨(函数编写):作为首次接触Python的新手,本次负责编写事务紧急程度更新函数,让我在“边学边做”中摸清了编程实践的门道。起初,我先跟着教程梳理函数逻辑:通过任务ID找到数据库里的对应任务,再根据传入的优先级参数,更新“紧急程度”字段的值。但真正动手时,问题却接连出现——用 pymysql 库连接数据库时,因没搞懂“游标”的作用,写好的SQL语句始终无法执行,反复查阅资料后才明白,需要通过游标对象来传递执行命令;测试时,又发现当输入的任务ID在数据库中不存在时,程序没有任何提示就结束了,既没报错也没更新,后来添加了判断语句,让这种情况能返回“任务不存在”的提示。这次作业让我真切感受到,编程不是“想清楚逻辑就够了”。从库的使用细节到异常情况的处理,每一个小环节都得考虑到。这些在实践中遇到的问题,比课本上的知识点更让我印象深刻,也让我对Python和数据库操作有了更实际的认知。

阮佳誉(函数编写):编写这个AI办公事项助手的增模块,让我深刻认识到,代码不仅是给机器执行的指令,更是与开发团队沟通的蓝图。在add_todo_task函数中,清晰的命名、模块化的结构以及详尽的注释,其首要价值在于让同伴能迅速理解我的设计思路,降低协作成本。其次,严谨的容错与验证机制是团队信任的基石。 我对用户输入的每一步校验、为字段设置的默认值、完整的异常处理,不仅是为了程序健壮,更是为了确保系统的行为对团队其他成员(如测试、后端或前端)是可预测的。这避免了因脏数据或意外崩溃给同伴带来不必要的排查负担,建立了协作间的可靠性。最后,从单一新增功能扩展到add_multiple_tasks的批量操作,体现了对用户(也包括团队其他成员)实际工作流的深度考量。在软件工程中,主动预判同伴和用户的需求,设计出符合直觉且高效的交互,是提升整个团队生产力和产品质量的关键。因此,优秀的代码是在功能之上,构建了一座与同伴顺畅沟通的桥梁,它清晰、可靠且充满协作的善意。

洪淳衔(测试):修改合并六个函数时,需保证数据库操作逻辑、返回格式、字段映射一致,各函数专注单一功能,通过参数扩展灵活性。传参测试要严格校验输入,覆盖空值、边界值等场景,联动验证函数依赖关系,模拟异常场景测试错误处理。可封装重复逻辑,添加日志方便调试,预留扩展参数。这样能保证代码可维护,提前暴露问题,实现稳定系统。

杨子贤(测试):本次测试工作让我深刻认识到,测试是项目开发的“镜子”,它能真实地反映产品的质量;同时也是项目的“守护者”,在最后一公里确保交付给用户的是稳定、可靠、易用的产品。特别感谢功能实现组扎实的数据基础、后端组构建的强大引擎、前端组打造的精致界面。最终,当看到智能体流畅地响应用户请求,准确地管理待办事项,并稳定地提供服务时,所有测试过程中的艰辛都化作了巨大的成就感。这次经历不仅提升了我对全栈项目测试的理解,也让我对团队协作开发复杂系统有了更深的敬畏之心。展望未来,我将把这些宝贵的经验应用到后续的工作中,持续改进测试方法,为打造更卓越的AI产品贡献力量。

于昊成(测试):本次团队合作完成了前端与 MCP Server 中 AI 模型交互的任务,是一次非常宝贵的实践经历。在组长的带领下,我们不仅成功实现了 AI 调用工具函数并作出回应的功能,还在技术能力、团队协作等方面取得了显著的进步。通过这次作业,我深刻认识到,一个成功的项目不仅需要扎实的技术功底,还需要合理的项目规划、有效的团队沟通和良好的团队协作精神。在今后的学习和工作中,我将把本次作业中积累的经验和教训运用到更多的项目实践中,不断提升自己的技术能力和团队协作能力。同时,我也将不断学习新的技术和知识。我相信,在未来的任务中,我们小组能够表现得更加出色,取得更加优异的成绩。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/943653.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

文学伦理学批评导论——

10.22学习文学伦理学第6周Week 6 伦理与道德的联系和区别 联系 伦生 理成 道化德:伦生理,理成道,道化德 区别 1、联系 2、区别 (1)伦理强调关系;道德强调个体(道德绑架) (2)伦理是双向性的义务;道德是单向性的义务…

智联笔记项目——251022登录注册、后端管理及内容类型处理优化

登录注册、后端管理及内容类型处理优化 在笔记系统的迭代中,基于原有代码,新增了登录注册功能、后端管理模块,并解决了 Markdown 与富文本内容混淆的问题。 本文将详细介绍这些功能的实现思路与代码修改细节,适合记…

JavaScript formatter插件的使用

第一步:在浏览器中发送请求 第二步:在fiddler中,右击“请求内容类型”,在弹出的菜单中单击“Search this column...”,在弹出的对话框中输入“JavaScript”单击“OK” 第三步:在左侧的“会话列表”中找到需要的数…

完整教程:基于WebAssembly的STEP文件3D在线查看器实现详解

完整教程:基于WebAssembly的STEP文件3D在线查看器实现详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consol…

20232407 2025-2026-1 《网络与系统攻防技术》 实验二实验报告

1.实验内容实验目标(1)使用netcat获取主机操作Shell,cron启动某项任务(任务自定)PS:cron是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程 (2)使用socat获取主机操作Shell, 任务计划启动 (3)使…

uniapp+<script setup lang=“ts“>解析后端返回的图片流并将二维码展示在页面中 - 指南

uniapp+<script setup lang=“ts“>解析后端返回的图片流并将二维码展示在页面中 - 指南2025-10-22 18:44 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !importan…

10.21 CSP-S模拟36 改题记录

HZOJ 写在前面 大概就是切不了任何一道题,大概就是T4改了一辈子。大概就是个人感觉T2严格简单于T1,T3严格简单于T4。感觉好久没有模拟赛改完4道题了。时间貌似不多了,那还是速战速决吧。《Shopper》 아직도 난 我现…

20232406 2025-2026-1 《网络与系统攻防技术》实验二实验报告

一、实验内容及问题回答 1.1实验内容: (1)使用netcat获取主机操作Shell,cron启动。 (2)使用socat获取主机操作Shell, 任务计划启动。 (3)使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主…

程序员必备!5款小白也能秒上手的AI编程工具

解放双手,让代码自动生成 在传统的开发过程中,开发者常常陷入“想法与代码实现”的拉锯战:脑海中构思的交互效果,需通过逐行编写代码才能落地,调试、优化、兼容性测试……流程冗长且易偏离初衷。随着AI技术的快速…

Securing Your DevOps Pipelines -1

Securing Your DevOps PipelinesBackground on DevOps Security in DevOps or DevSecOps DevSecOps Tools Setting up a DevSecOps Pipeline Final Security ChecksBackground on DevOps 1.1 Understand where DevOps …

低代码软件开发平台介绍

一、低代码市场产品类型 1. 可视化编程 代表产品:OutSystems、牛刀、iVX等 核心特征:通过可视化操作生成代码,本质上是新一代的编程IDE 2. 表单驱动 代表产品:宜搭、氚云、简道云、轻流等 核心特征:以表单、流程、…

接口重试的7种常用方案! - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

这3种底层思维就是新老班主任的最大区别:不是经验,而

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

windows局域网,能够使用IP打开共享但无法通过机器名打开(0x80070035)

windows局域网,能够使用IP打开共享但无法通过机器名打开(0x80070035)在客户机上操作 组策略管理器-计算机配置-管理模板-网络-Lanman工作站 启用“启用不安全的来宾登录”骑着母猪去打猎的备忘录,如有侵权请联系本…

笔记本 copilot按键 PowerToys映射

有时候笔记本电脑重启后就不管用了,需要进到powertoys设置里边重新设置一下按键才管用

实用指南:86-python电网可视化项目-6

实用指南:86-python电网可视化项目-6pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mona…

详细介绍:3.5mm耳机插座技术全解析:从镀层工艺到阻抗稳定性测试

详细介绍:3.5mm耳机插座技术全解析:从镀层工艺到阻抗稳定性测试pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "…

通过电脑调试 Android/iOS 手机端网页

通过电脑调试 Android/iOS 手机端网页教程1. Android 手机端需要先安装 Chrome 浏览器。 手机端需要开启 USB 调试功能。具体方法可以搜索,以小米手机为例,在【设置】【我的设备】【全部参数与信息】,连续点击【OS版…