团队作业3--需求改进&系统设计
一、作业基本信息
| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/gdgy/Class34Grade23ComputerScience/ |
|---|---|
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/gdgy/Class34Grade23ComputerScience/homework/13482 |
| 这个作业的目标 | 修改完善需求规格说明书,完成Alpha任务分配和测试计划 |
| github仓库链接 | https://github.com/Have-you-slept/LLM |
二、团队展示
| 团队名 | 睡了吗 |
|---|---|
| 成员1:肖俊(组长) | 3123004804 |
| 成员2:陈俊彦 | 3123004782 |
| 成员3:蓝毅 | 3123004789 |
| 成员4:杨腾竣 | 3123004809 |
| 成员5:曾梓垚 | 3123004764 |
| 成员6:王坤平 | 3123004758 |
| 成员7:何睿欣 | 3223003267 |
| 成员8:余嘉祺 | 3123004811 |
三、需求&原型改进
1 针对课堂讨论的修改
问题1:知识图谱的结构化数据与大语言模型的非结构化知识如何有效结合?
修改1:将知识图谱的结构化关系作为提示词上下文注入大模型,提升回答的准确性和逻辑性;利用大模型的实体识别和关系抽取能力,从问答对话和文档中自动提取新知识点,丰富知识图谱。
问题2: 如何确保不同技术背景的学生都能轻松使用系统?
修改2:分层界面设计:有简洁的问答对话框,适合快速查询;也有集成知识图谱可视化、资源推荐等高级功能。
加分部分:
- 用户调查过程:我们针对目标用户群体进行了深入的访谈
- 调查对象:广工计算机学院学生2名
- 调查方法:一对一访谈、原型展示和反馈
- 用户痛点分析:考前复习资料分散,难以系统整理,传统搜索引擎返回结果相关性差
- 使用前场景:同学在期末考试前,需要在多个平台间切换查找复习资料,花费大量时间却难以找到系统化、高质量、符合广工期末考试的复习材料
- 使用后场景:通过智能问答系统输入"计算机组成原理重点知识点",系统立即提供相关的知识图谱展示知识点关联、精选的复习资料百度网盘链接
2 修改完善需求规格说明书
初稿的不足:
- 功能模块描述不够详细,缺少具体用户场景。
具体改进内容:
-
增加典型用户场景:
角色:计算机学院大三学生张明
场景:操作系统期末考试前一周
目标:在有限时间内系统掌握课程重点,找到高质量复习资料 -
故事叙述:
晚上8点,张明打开"广工智能问答系统",在搜索框输入:"操作系统进程调度算法有哪些?各自优缺点是什么?" -
系统响应1(智能问答):
立即返回清晰的分类回答:
先来先服务(FCFS)算法:简单但可能导致饥饿现象
短作业优先(SJF)算法:平均等待时间最短但需要预知运行时间
优先级调度算法:考虑进程紧急程度但可能产生优先级反转
时间片轮转(RR)算法:公平响应但上下文切换开销大 -
系统响应2:
右侧自动展开知识图谱,清晰展示:
"进程调度"为核心节点
连接各种调度算法子节点
显示算法间的演进关系和适用场景
高亮标记考试重点(根据历年真题分析) -
张明进一步探索:
点击知识图谱中的"银行家算法"节点,系统:
详细解释算法原理和死锁避免机制
提供经典例题分步骤解析
推荐相关模拟试题 -
系统响应3(资源推荐):
底部推荐区域显示:
操作系统精选复习资料
《操作系统概念》重点章节总结.pdf [提取码: os01]
近3年期末真题及解析合集 [提取码: exam02] -
张明的收获:
原本需要2小时查阅资料和理解的概念,在15分钟内系统掌握,并获得了针对性的复习资料,复习效率提升80%。
3 功能分析四象限
重要且紧急:智能问答核心功能、知识库基础检索
重要不紧急:知识图谱可视化、多轮对话管理、个性化推荐
紧急不重要:界面美化优化、高级搜索筛选
不紧急不重要:社交分享功能、多语言支持
4 调整任务分解WBS及相应的项目进度计划
任务分解WBS图:

项目进度计划:
| 阶段 | 时间 | 主要任务 |
|---|---|---|
| 需求细化 | 第10周 | 用户场景完善、功能优先级排序 |
| 架构设计 | 第11周 | 系统架构设计、数据库设计 |
| 核心开发 | 第12-13周 | 智能问答模块、知识库管理 |
| 集成测试 | 第14周 | 系统集成、性能测试 |
| 优化部署 | 第15周 | 用户体验优化、部署上线 |
四、系统设计
1 系统架构设计

2 技术栈选择
-
前端技术栈
Gradio: 快速构建AI应用界面,支持实时交互
Cytoscape.js: 知识图谱可视化 -
后端技术栈
FastAPI: 高性能异步框架,自动生成API文档
Python 3.9+: AI生态完善,开发效率高
Uvicorn: ASGI服务器,支持高并发 -
AI与数据技术栈
ChatGLM: 优秀的开源中文大语言模型
LangChain: 大模型应用开发框架
Chroma: 轻量级向量数据库
Neo4j: 图数据库,适合知识图谱
PostgreSQL: 关系型数据存储
3 数据库设计
用户表 (users)
- 字段组成: user_id(主键), username, email, password_hash, role, created_at, last_login, profile_data
作用: 存储系统所有用户的基本信息、身份认证数据和角色权限,支持用户管理和个性化设置。
对话会话表 (conversations)
- 字段组成: conv_id(主键), user_id(外键), start_time, last_active, status, title, metadata
作用: 记录用户与系统的对话会话信息,包括会话状态、活跃时间和元数据,支持对话历史管理。
知识文档表 (documents)
- 字段组成: doc_id(主键), title, file_path, uploader_id(外键), upload_time, file_size, file_type, status, metadata, vector_status
作用: 管理上传的知识文档元数据和处理状态,包括文件信息、上传者信息和向量化处理进度。
消息表 (messages)
- 字段组成: msg_id(主键), conv_id(外键), content, sender_type, timestamp, msg_type, references, confidence_score, feedback
作用: 存储用户与系统交互的具体消息内容,包括消息类型、置信度评分和用户反馈数据。
资源链接表 (resource_links)
- 字段组成: link_id(主键), subject, baidu_url, extract_code, description, uploader_id(外键), upload_time, validity, access_count, resource_type, difficulty
作用: 维护学习资源链接信息和访问统计,包括学科分类、链接有效性和资源难度等级。
学习记录表 (learning_records)
- 字段组成: record_id(主键), user_id(外键), knowledge_point, interaction_type, timestamp, duration, confidence_score, subject, related_questions, study_notes
作用: 追踪用户的学习行为和知识点掌握情况,记录学习时长、交互类型和个人笔记,支持个性化学习分析。
五、Alpha任务分配计划
1 Product Backlog

2 Sprint Backlog

3 甘特图

六、测试计划
目标: 通过系统化的测试,发现并修复智能问答系统的功能性、性能和安全性问题,确保高质量的用户体验和稳定的系统性能。
测试类型:
- 功能测试: 验证智能问答、知识库管理、知识图谱等核心功能模块是否按照需求正常工作。
安全性测试: 保障用户数据安全和系统的隐私保护措施。
用户体验测试: 收集用户反馈,优化界面交互和问答流程设计。
性能测试: 测试系统的响应速度、负载承受能力,确保在高并发情况下的稳定性。
功能测试
- 用户注册和登录: 验证注册和登录流程,密码找回功能的可用性。
智能问答功能: 确保问答理解、答案生成、多轮对话等操作正确执行。
知识库文档管理: 验证文档上传、解析、向量化处理的准确性。
知识图谱展示: 测试图谱可视化、节点关系展示、交互操作的功能完整性。
学习资源推荐: 验证学科识别、资源匹配、链接有效性的准确性。
对话历史管理: 测试历史记录保存、查看、删除的功能正确性。
权限管理系统: 验证用户角色权限、知识库访问控制的功能实现。
安全性测试
- 数据加密: 验证用户信息、对话内容、密码的加密存储。
权限控制: 检查用户权限分级和知识库访问控制,确保没有未授权访问。
防止攻击: 进行SQL注入、XSS攻击、文件上传漏洞的模拟测试,确保系统抗攻击能力。
API安全: 验证接口鉴权、请求频率限制、敏感信息过滤的安全机制。
用户体验测试
- 界面测试: 验证问答界面、知识图谱可视化、资源推荐等页面的用户友好性。
交互流程: 观察用户在提问、查看图谱、获取资源等核心流程的操作,确保流畅性。
响应反馈: 测试系统响应时间、加载状态提示、错误信息展示的用户体验。
性能测试
- 问答响应测试: 验证问答接口的响应时间,确保简单问题<3秒,复杂问题<8秒。
并发测试: 模拟高并发访问,特别是问答接口和知识检索功能,确保系统承载能力。
向量检索性能: 测试Chroma向量数据库的检索速度和准确率,保证知识检索效率。
图谱查询性能: 验证Neo4j图数据库的复杂查询性能,确保图谱展示流畅。
测试流程
- 测试计划制定: 根据项目进度制定详细的测试计划,包括每个模块的测试时间、目标、内容等。
单元测试: 由开发团队编写并执行单元测试,确保各个模块的基本功能实现。
集成测试: 对多个模块的集成功能进行测试,确保问答、知识库、图谱等模块能够正确协作。
系统测试: 全面测试所有功能模块,验证系统的完整性和业务逻辑的正确性。
用户体验测试: 邀请真实学生用户使用系统,收集反馈以优化界面和操作流程。
回归测试: 在发现并修复问题后,进行回归测试确保修复未引入新问题。
验收测试: 在Alpha阶段发布前进行验收测试,确认所有核心功能按预期工作。
性能与压力测试: 使用自动化测试工具模拟高并发场景,测试系统的负载能力和稳定性。
工具与环境
- 测试工具: 使用Postman进行API测试,JMeter进行性能测试,pytest进行单元测试,Selenium进行UI自动化测试。
测试环境: 搭建与生产环境相似的测试环境,包括ChatGLM模型服务、Chroma向量数据库、Neo4j图数据库,确保测试结果的准确性。
测试报告与反馈
- 报告生成: 每轮测试结束后生成测试报告,包括测试成功率、失败的用例、性能数据等。
问题跟踪: 使用Leangoo看板记录、跟踪和分配问题,确保每个缺陷得到及时处理。
反馈与改进: 基于测试结果和用户反馈,安排修复、优化和重新测试,确保在Alpha阶段提高系统的质量和稳定性。

浙公网安备 33010602011771号