26软工实践“海底小纵队”团队展示与选题报告

项目内容
所属课程202601 软件工程 - 福州大学
作业要求2026秋软工实践团队作业-第一次(团队展示+选题报告+需求分析)
作业目标围绕团队项目完成「团队展示、选题报告、需求分析」三项交付:展示团队的分工与愿景;说明选题的领域、目标用户、智能体定制思路,并用典型案例对比定制前后的表现;参考国家标准编写并交付需求分析文档,为后续开发奠定基础。
团队名称海底小纵队
团队成员052401304 李思淇
102301228 林郑嘉同
102401108 李铭媛
102401202 洪雅琳
102401307 陈媛
102401402 冯安娜
102401405 王怡婷
102401406 陈婉凤
102401409 陈宝荣
102401411 陈博淇
102401604 马英慧

支撑材料说明

作业1的完整成果已整理至团队 GitHub 仓库,供老师与助教查阅:

目录
内容
requirements/ 需求分析文档(PDF)及全部配图
survey/ 用户调研数据(客观题统计 + 主观题明细)
agent-logs/ 智能体初步定制效果对比(通用模型 vs 定制智能体)
presentation/ 答辩演示文稿

各文件详细说明见仓库内 docs/assignment_1/README.md。

团队展示

团队名称

队名:海底小纵队

寓意:队名取自同名动画里那支各司其职、并肩破浪、守护海洋生态的小队。作为一支软件工程团队,我们追求同样有条不紊的分工与高效协作,让每一个目标都能稳稳抵达。同时,我们希望将技术能力与社会责任相结合,以计算机专业知识服务大众健康。面对陌生的领域与前沿的知识,我们也愿带着少年般的热情、勇气与好奇,主动潜入未知的深水区,拓展技术应用的边界与可能。

团队项目概述

  • 项目名:膳食搭配智能体系统
  • 所选领域:健康护理 / 饮食管理
  • 目标用户:有意识调控饮食、以自行烹饪为主的人群(现阶段聚焦自行烹饪,食堂/外卖人群列为二期)
  • 调研情况:通过在线问卷回收有效样本 n=49(详见第三部分「介绍」),关键发现为——"知道该吃得健康却不知具体怎么吃"占 53.06%、"不会算热量"占 48.98%、83.67% 的用户在意方案是否参考权威资料、65.31% 偏好以表格呈现结果。
  • 主要任务:个性化能量目标计算 → 营养素配比(宏量按餐、微量按周)→ 家常菜落地 → 饮食禁忌提醒 + 营养咨询
  • 智能体定制思路:基于通用大模型,通过领域知识整理、提示词工程、知识检索、工具调用与流程编排五类手段实现领域定制,详见2.3节

成员分工

小组 成员 人数 职责 组长
产品组 项目经理 + 产品 ×2 3 需求、调研、文档、验收标准、博客与答辩 项目经理
开发组 UI 设计 + 前端 + 后端 3 设计、界面、接口、部署 后端
Agent 组 Agent ×2 + 数据岗位 ×2 4 领域知识 + 智能体领域定制 Agent A
测试交付组 测试/运维/交付 1 测试、上线、交付 测试岗

队员风采

产品组
PM
  • 学号:102401108
  • 姓名:李铭媛
  • 性格:性格随和,做事认真,乐于打磨细节,追求质量。
  • 擅长技术:前端、UI 设计、数据处理;学过深度学习等人工智能前沿知识,乐于尝试技术活。
  • 兴趣爱好:听歌、跑步
产品 A
  • 学号:052401304
  • 姓名:李思淇
  • 性格:做事稳当,善于倾听他人的想法,尊重他人的意见。
  • 擅长技术:能编写测试用例,开展软件测试,整理测试报告。
  • 兴趣爱好:喜欢玩各类独立小游戏,乐于体验、寻找细节问题。
产品 B
  • 学号:102401202
  • 姓名:洪雅琳
  • 性格:内敛细心,踏实靠谱,做事认真有耐心。
  • 擅长技术:Python。
  • 兴趣爱好:看书。
Agent组
数据岗 A
  • 学号:102401307
  • 姓名:陈媛
  • 性格:开朗,做事认真有耐心,善于沟通协作。
  • 擅长技术:Python、基础前端、简单深度学习模型复现。
  • 兴趣爱好:阅读、养猫、摄影。
数据岗 B
  • 学号:102401411
  • 姓名:陈博淇
  • 性格:性格慢热,做事认真,有耐心,乐于沟通交流。
  • 擅长技术:具备 C/C++ 编程基础,了解 Linux 开发环境,使用过 Flask 进行 Web 项目开发。
  • 兴趣爱好:听音乐。
Agent A
  • 学号:102301228
  • 昵称:lzjt
  • 性格:内敛,细心,爱思考。
  • 擅长技术:python,agno框架,deepseek大模型。
  • 兴趣爱好:健身力训,书法,笛子。
Agent B
  • 学号:102401409
  • 姓名:陈宝荣
  • 性格:沉稳细致,善于逻辑梳理与解决复杂的技术问题。
  • 擅长技术:C、C++、Python 开发,汇编(Assembly)。
  • 兴趣爱好:钻研计算机底层技术和原理、AI 工作原理、听歌。
开发组
UI设计
  • 学号:102401406
  • 姓名:陈婉凤
  • 性格:做事细心有耐心,善于沟通,沉稳踏实,逻辑思维较好,擅长梳理需求,配合团队完成任务。
  • 擅长技术:基础 C 语言、会简单页面布局。
  • 兴趣爱好:听音乐、打羽毛球。
前端
  • 学号:102401405
  • 姓名:王怡婷
  • 性格:内敛,做事踏实专注,能沉下心打磨细节。
  • 擅长技术:掌握 HTML 结构化页面搭建,能够规范编写页面骨架,保证页面结构清晰、语义合理;能完成页面调试,编写前端相关文档。
  • 兴趣爱好:浏览优秀网页设计作品,研究页面交互与视觉效果。
后端
  • 学号:102401402
  • 姓名:冯安娜
  • 性格:外向,善于沟通。
  • 擅长技术:学过 Java 后端、前端。
  • 兴趣爱好:喜欢书影音。
测试组
测试
  • 学号:102401604
  • 姓名:马英慧
  • 性格:严谨细心,责任心强。
  • 擅长技术:熟悉 Java 基础;具备 AI 工具辅助开发能力。
  • 兴趣爱好:音乐。

团队愿景

以己专业之长,惠百姓之福。我们用技术与营养知识,做陪伴用户长期生活的膳食智能体,让三餐有据可依,让健康有路可行。

分工协作记录

团队日常通过 飞书 与 QQ 进行分工协作与沟通,以下为各小组协作过程的聊天记录截图:

产品组-问卷设计
产品组 · 问卷设计
产品组-需求文档撰写
产品组 · 需求文档撰写
Agent组协作
Agent 组协作
Agent B
Agent B 协作
数据岗
数据岗协作
UI设计岗
UI 设计岗协作
后端岗
后端岗协作
测试岗
测试岗协作

团队合照

博客园图片
海底小纵队 团队合照

(林郑嘉同缺席)

二、选题报告

选题背景与问题

健康意识普遍提升,越来越多人希望主动调控饮食,但科学配餐需要营养学专业知识,普通人面临三大痛点:

  1. "知道该吃得健康,却不知具体怎么吃"——尤其不知各类营养素(宏量与微量)如何配比平衡;
  2. 现有食谱推荐忽视个体差异——不考虑身高体重、活动量、地域气候、疾病禁忌;
  3. 热量与营养素手工计算繁琐,微量营养素平衡被普遍忽视,网络饮食信息杂乱、缺权威支撑。

据此,我们提出做一个以「营养素配比平衡」为核心的个性化 AI 营养师。

选题价值与立意

本选题的核心立意,是抓住「营养配比」这个被普通热量计算器普遍忽视的空白点,做一款以「营养素配比平衡」为核心的个性化 AI 营养师——用确定性计算替代通用模板、用权威知识替代网络传言、用家常菜落地替代无法执行的营养清单,使科学配餐更具备现实可行性。

选题价值具体体现在以下五个方面:

  1. 关注营养结构,有助于用户建立更完整的饮食认知。不少饮食管理行为主要围绕能量摄入展开,对宏量与微量营养素的长期平衡关注相对有限。本项目从营养素配比出发,强调宏量营养素按餐分配、微量营养素按周补充,引导用户在控制能量的同时关注整体饮食结构。
  2. 结合个体差异,提供更具针对性的饮食建议。不同人群在年龄、活动强度、饮食偏好、忌口等方面存在明显差别,统一模板难以适用。本项目可根据用户输入的基本信息与饮食限制,对营养素目标和菜品推荐进行调整,使方案更贴合个人实际情况。
  3. 贴近中式家庭饮食,提升建议的可操作性。营养建议能否长期坚持,往往取决于食材是否容易采购、菜品是否方便制作。本项目将营养方案映射为常见家常菜品,缩小饮食认知与实际执行之间的差距,降低科学饮食的坚持难度。
  4. 对应真实且持续存在的健康需求。减脂增肌、慢性病饮食管理、上班族饮食不规律、老年人营养摄入不足等情况较为普遍,健康饮食属于长期性需求,不依赖短期热点,具备较广的适用范围。
  5. 依托权威资料,具备一定的健康科普意义。网络营养信息质量参差不齐,普通用户较难辨别。本项目以《中国居民膳食指南(2022)》《中国食物成分表》等资料为依据,知识来源明确且可追溯,有助于减少不实营养信息对日常判断的干扰。

领域知识与智能体定制方法

知识来源

知识 来源
膳食结构、推荐摄入量 《中国居民膳食指南(2022)》
食材热量与营养素(含微量) 《中国食物成分表(标准版)》
推荐摄入量标准(RNI) 《中国居民膳食营养素参考摄入量(DRIs)》
营养素知识库 营养学教材、临床营养学资料
过敏与慢病禁忌 临床营养学资料、特定人群膳食指南

定制方法

定制手段 实施方案 (How) 预期效果 (Why)
1. 领域资料整理 构建高精度的食材成分表、家常菜库、禁忌规则、营养素参考值表 (RNI) 及营养素知识库。 确保数值计算准确,所有结论均有据可依,拒绝模糊估算。
2. 提示词工程 设定资深营养师角色,嵌入专业的配餐原则、问诊策略、解释话术与安全边界。 使智能体具备专业营养师的追问能力与人性化的解释能力。
3. 知识检索 (RAG) 基于营养素知识库构建 RAG (检索增强生成) 机制,支持症状反查与搭配依据生成。 实现结论可溯源,具备强大的解释性,减少模型幻觉。
4. 工具调用 封装 9 个专业工具:包含 8 个确定性计算/规则工具 + 1 个知识检索工具。 关键数值由代码逻辑生成而非模型预测,检索结果提供明确出处。
5. 流程编排 采用 “营养搭配 → 菜式落地” 的两步模型,结合反向多轮对话机制。 既能正向生成科学方案,也能反向溯源症状成因,逻辑闭环。

智能体的完整任务流程

下图展示了一次完整的配餐请求在系统各组件间的流转过程,涵盖了从用户输入到最终方案展示的 16 个关键步骤。

sequenceDiagram autonumber participant U as 用户 participant F as Web 前端 participant B as 后端 (FastAPI) participant A as 智能体 (Agent 编排) participant L as 大模型服务 (外部) participant D as 数据层数据库 (内部) Note over U, D: 阶段一:请求发起与上下文构建 U->>F: 1. 输入配餐需求 F->>B: 2. 提交配餐请求 B->>B: 3. 读取用户档案 (体征/偏好/禁忌) B->>A: 4. 转发请求 + 用户档案 Note over A, D: 阶段二:意图识别与工具调用 A->>L: 5. 对话 + 意图识别 (附工具定义) L-->>A: 6. 返回 Function Calling 指令 Note over A, D: 阶段三:数据检索与计算 (核心) A->>D: 7. 查询数值基准 (食物成分/RNI/关系表) D-->>A: 8. 返回确定性数据 A->>D: 9. 语义检索知识 (膳食指南/向量 RRF) D-->>A: 10. 返回知识片段 A->>A: 11. 确定性计算 (能量/配比/热量) Note over A, U: 阶段四:方案生成与展示 A->>L: 12. 携带数值生成自然语言方案 L-->>A: 13. 返回完整方案 A->>B: 14. 返回结构化方案 B->>F: 15. 返回方案 F->>U: 16. 展示方案 (表格 + 依据来源)

定制效果

为了验证我们定制智能体的有效性,我们初步建立了数据库并进行了智能体的定制,并将其与未定制的模型进行同一模型(DeepSeek V4)对比测试。

测试场景设定

用户画像输入:

28岁男性 · 175cm/80kg · 久坐减脂 | 高血压 · 高血脂 · 痛风 | 虾蟹 + 大豆过敏

任务目标:
制定今日三餐 + 评估 16 项微量营养素 (DRIs 2023)

效果对比分析

通过实际调用记录,我们发现通用模型在处理专业医疗/营养约束时存在明显的局限性,而我们的定制智能体展现了显著优势,以下展示部分结果对比:

维度 ❌ 通用模型表现 ✅ 定制智能体表现
能量计算 无明确能量目标,微量营养素仅给出模糊区间(如约4-6mg) 精确计算:能量目标锁定为 1610.5 kcal(工具计算,非心算)
食物禁忌判定 鸡胸肉误判为「中等嘌呤」,建议红烧可保留(高风险) 精准避雷:鸡胸肉判为「高嘌呤」,改推荐快炒/蒸蛋
数据完整性 维D/E/K缺数据时仍强行给出估算值 诚实兜底:饱和脂肪缺数据时 → 标记为「无法判定,不谎称达标」
权威溯源 仅提及标准名称,无具体出处 逐条溯源:每一条建议均对应 DRIs / 食养指南 / 成分表出处
口径一致性 无热量口径区分 双口径核对:1191.6 vs 1262.3 (+70.7 kcal 油),逻辑清晰

决定性差异案例

在鸡胸肉嘌呤等级判定上,体现了领域知识库的重要性:

  • 通用模型:判定为「中等」,可能导致痛风患者风险。
  • 定制智能体:依据《成人高尿酸血症与痛风食养指南(2024)》准确判定为「高」,并给出规避建议。

需求分析

完整版见GitHub仓库中的文件“需求分析文档.pdf”
链接:需求分析文档
本文档参考 GB/T 9385—2008《计算机软件需求规格说明规范》编写。以下仅列出作业要求的 7 项内容。

迭代记录表

版本 日期 修改人 修改内容
v0.1 10/16 李铭媛 建立文档骨架,列出各章节
v0.2 10/17 李铭媛 排版封面与 Logo,撰写第一章、2.4-2.6 节
v0.3 10/17 李思淇 撰写 2.3 节、3.2 节、附录 A
v0.4 10/17 洪雅琳 撰写 2.1-2.2、3.1.2、3.3-3.5、第四章、第五章、附录 B
v1.0 10/18 李铭媛 整合排版,统一文风,组织整体书写逻辑
v1.1 10/19 李思淇 更新 3.1.1 用户界面介绍
v1.2 10/19 洪雅琳 更新思维导图
v1.3 10/20 李铭媛 补充时序图、活动图;更新 1.4 引用文件;优化排版布局
v1.4 10/21 李铭媛 全文校对定稿

介绍

调研依据:在线问卷回收有效样本 n=49(有效率 100%),共 26 题,其中第 26 题开放作答收到 18 条有效实质建议。

样本构成:18–25 岁占 81.63%;女性 61.22%、男性 38.78%;BMI 正常 75.51%;55.10% 存在减脂/体重管理需求;53.06% 至少担忧一项慢性问题;24.49% 现患至少一项慢性情况;18.37% 存在食物过敏。

决定产品设计方向的关键发现:

维度 关键发现
就餐方式 至少一半时间自行做饭 38.77%;外卖为主 61.22%
核心痛点 "知道要吃健康但不知吃什么" 53.06%;"不会算热量" 48.98%
知识来源 短视频 71.43%、社交平台 57.14%,专业渠道仅 10.20%
权威性 83.67% 在意方案是否参考权威资料
功能优先级 饮食禁忌提醒"非常需要"最高 53.06%;个性化方案+档案 75.51%
输出形式 偏好简洁表格 65.31%,"纯文字"为 0%

部分调研统计图

用餐形式统计
图 1 用餐形式统计
膳食方面的困难
图 2 膳食方面的困难
最看重的功能
图 3 最看重的功能
现有 APP 存在的不足
图 4 现有 APP 存在的不足

调研局限:样本以在校学生为主,与"自行烹饪"定位存在偏差,故本阶段目标用户按"是否具备自炊条件"而非人口身份界定。

目标用户画像卡:

🥗 有自炊条件的年轻用户 · 减脂新手 主力画像
描述:女,22 岁,有减脂意愿,合租/独居有厨房,暂无慢病。
核心诉求:个性化、可落地、能照着买菜做饭。
💼 年轻上班族 · 亚健康担忧者 成长画像
描述:男,28 岁,久坐办公,担忧糖尿病/脂肪肝/肠胃。
核心诉求:按身体条件计算、结论可溯源、附采购清单。
🩺 慢病 / 过敏关注者 高价值细分
描述:30–50 岁,血糖偏高/高血压/胃肠道问题或食物过敏。
核心诉求:过敏/慢病硬约束规避与提醒、措辞安全。

典型使用场景:

  1. 对话配餐·自炊落地:减脂用户输入"帮我配明天的减脂餐",系统按档案算能量目标,给出三餐搭配、做法与油盐估算。
  2. 热量营养素估算:录入"中午吃了 150g 鸡胸肉、半碗米饭、一盘炒青菜",自动算出热量与三大营养素。
  3. 慢病/过敏安全配餐:有糖尿病且对花生过敏的用户配餐时,自动避开高 GI 食材和花生并说明原因。
  4. 档案复用:首次填写身高体重、慢病、过敏等个人信息后,之后每次对话自动读取档案,无需重复描述。

项目标志

项目标志

标志设计说明

① 核心视觉主体

标志中心是一个拟人化的绿色 AI 机器人头像,面带微笑,头顶长出一片嫩芽。

寓意:象征着人工智能技术的亲和力与生命力,传达出"科技向善、服务健康"的品牌温度,打破了传统医疗或营养工具的冰冷感。

② 底部承载基座

机器人下方托举着一碗色彩丰富的均衡膳食(包含绿叶菜、三文鱼/肉类、鸡蛋、谷物等)。

寓意:直观展示项目的核心业务场景——科学配餐。丰富的食材颜色代表了宏量与微量营养素的全面覆盖,强调了"营养均衡"的理念。

③ 环绕功能闭环

外围由五个彩色图标通过动态线条连接成环,代表智能体的五大核心能力:

  • 💬 对话气泡(左上):代表自然语言交互,用户可随时咨询饮食问题。
  • 👤 用户画像(左下):代表个性化定制,基于个人身体数据生成方案。
  • 🍽️ 餐盘日历(右上):代表周期性的膳食规划与管理。
  • 🔥 火焰(右中):代表热量与能量代谢的精准计算。
  • 🚫 禁止符号(右下):代表对过敏原、忌口及不健康成分的精准规避。

④ 整体色调与构图

采用清新的青绿色渐变为主色调,辅以暖橙色点缀。

寓意:绿色象征健康、天然与生机,符合健康饮食的心理预期;圆环形的构图象征着从"数据采集"到"方案生成"再到"饮食执行"的完整服务闭环。

思维导图

思维导图

本思维导图展示了系统的整体设计逻辑。以“目标用户”需求为起点,推导出MVP阶段的核心功能(如BMR计算、家常菜推荐),并规划了后续的可选优化路径(如反向营养推理)。同时,明确了系统运行所需的外部依赖与非功能性约束,确立了从“营养计算”到“菜品落地”的两步走实现策略。

类图

类图

核心领域类:Profile(用户档案)、Ingredient(食材)、Dish(菜式)、Recipe(菜式配方)、Meal(一餐)、MealPlan(膳食方案)、NutritionResult(营养计算结果)、WeeklyNutritionReport(周度营养报告)、SymptomNutritionMap(症状—营养素映射)、Conversation / Message(会话与消息)。

功能描述(前端 + 后端)

功能模块 前端 后端与智能体
个人健康档案 档案表单、查看与编辑 存储与维护用户健康档案,敏感信息加密保存
对话配餐 聊天窗、结构化食谱卡片、流式展示 智能体理解用户意图,调用计算工具,生成配餐方案
个性化能量目标 能量目标与三餐分配展示 根据身体数据计算每日能量目标,并按健康目标调整
营养素配比 宏量按餐 + 微量按周图表 按供能比分配宏量营养素并结合禁忌等约束;关键微量营养素按周对照推荐量评估
热量营养素估算 食材与菜式分别核算的热量卡片 依据食物成分数据与分量,计算热量和三大营养素
家常菜推荐 菜式卡片、做法步骤与油盐分级的展示 从家常菜库匹配菜式,生成做法与油盐估算
饮食禁忌提醒 在推荐方案中标注规避提示与原因说明 根据档案中的过敏、疾病等禁忌,过滤不适宜的食材与菜式
营养原理解释 配餐依据与出处的标注展示 检索权威营养知识,生成配餐依据与出处说明
反向营养咨询 症状描述输入、推测结果与就医提示展示 基于症状—营养素知识进行推理,生成可能缺乏的营养素与食物建议
每周食谱 一周食谱列表、周度评估报告图表 生成一周三餐方案,汇总计算周度营养摄入
历史记录 历史方案列表、查看详情与一键复用 存储每次生成的配餐方案,供查询与复用

验收标准

代表性领域任务:

编号 代表性任务 检查方式 通过条件
R-01 为"25 岁、160cm、60kg、减脂、轻体力"女性配一日三餐 输入档案并运行配餐 能量目标约 1340 kcal、三餐约 30/40/30 分配、落地为家常菜(含做法与油盐分级)
R-02 创建并复用用户档案 填写档案后再次配餐 后续自动读取档案、无需重复录入;敏感字段加密存储
R-03 为"有糖尿病"用户配餐 档案标记糖尿病并运行 自动规避高 GI 食材、控制碳水并给出依据
R-04 询问"米饭的营养成分" 发起营养查询 引用成分表给出准确数值并标注出处
R-05 为"高温户外工作者"配餐 标记工作性质并运行 高温出汗时上调钠钾与水溶性维生素;久坐空调不得上调钠
R-06 追问"为什么这样搭配" 对结果发起解释请求 说明配餐依据与营养素生理作用,标注权威来源
R-07 描述"近期总乏力" 发起反向营养对话 输出"可能缺乏铁"等推测与食物建议,用非确定性措辞并附就医提示
R-08 请求"生成一周完整食谱" 输入周起始日期并生成 输出一周食谱 + 微量营养素汇总 + RNI 对照 + 调整建议
R-09 连续多轮对话调整配餐 对话中连续追加条件 支持多轮对话;数值由 Function Calling 给出,不编造
R-10 回看并复用历史方案 查询历史方案并复用 历史列表可查、支持一键复用
posted @ 2026-10-24 19:51  myuani  阅读(20)  评论(0)    收藏  举报