一、作业基本信息
| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/gdgy/Class34Grade23ComputerScience/ |
|---|---|
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/gdgy/Class34Grade23ComputerScience/homework/13481 |
| 这个作业的目标 | 通过需求分析制定需求规格说明书,并且熟悉git协助方式 |
| github仓库链接 | https://github.com/Have-you-slept/LLM |
二、团队展示
| 团队名 | 睡了吗 |
|---|---|
| 成员1:肖俊(组长) | 3123004804 |
| 成员2:陈俊彦 | 3123004782 |
| 成员3:蓝毅 | 3123004789 |
| 成员4:杨腾竣 | 3123004809 |
| 成员5:曾梓垚 | 3123004764 |
| 成员6:王坤平 | 3123004758 |
| 成员7:何睿欣 | 3223003267 |
| 成员8:余嘉祺(后加入) | 3123004814 |
三、需求规格说明书
1 系统概述
项目名称:基于广工知识库的智能问答系统
项目简介:
预期用户量:
- 前期:本班和兄弟班的所有同学:96人
- 中期:23级计算机学院所有同学:643人
- 后期:整个学校的同学以及老师:30000+人
2 面向用户分析
学生用户:
第一类用户群体是在校学生,包括大学生和研究生,他们通常面临繁重的课业压力和备考需求,迫切需要快速获取准确的知识解答和高质量的复习资料,这类用户注重效率和使用便捷性,期望能够通过最少的操作步骤获得最需要的学习资源,他们的使用场景主要集中在课程复习、作业辅导和考前准备等时段,对系统的响应速度和答案准确性有较高要求。
教师用户:
第二类用户是教育工作者,包括教师和培训讲师,他们需要查询专业知识、整理教学资料、构建知识体系,这类用户更注重内容的权威性和系统性,经常使用系统的知识图谱功能来梳理知识点之间的逻辑关系,为教学设计提供参考,同时他们也会上传教学资料丰富系统的知识库。
社会用户:
第三类用户是广大知识工作者和终身学习者,他们出于职业发展或个人兴趣需要持续学习新知识,这类用户的使用场景更加多样化,涉及科学技术、人文历史、生活常识等多个领域,他们看重系统的全面性和拓展性,希望通过知识图谱发现新的学习领域和知识关联。针对这些用户群体,系统在设计时特别考虑了不同使用场景下的交互体验,为学生群体优化了资源获取流程,为教育工作者强化了知识体系展示,为知识工作者丰富了内容覆盖面,确保每个用户都能获得符合其需求的知识服务。
3 功能性需求
智能问答核心功能:
系统具备强大的自然语言理解和生成能力,能够处理用户提出的各类知识性问题。在问题理解方面,系统需要准确解析用户输入的自然语言,识别问题意图和关键信息,支持多轮对话和上下文关联,能够理解指代和省略等语言现象,对于模糊或歧义的问题能够主动询问澄清。在知识检索方面,系统需要同时从大模型内置知识、外挂知识库和向量数据库中检索相关信息,根据问题类型智能选择最相关的知识源,对检索结果进行相关性排序和去重处理。在答案生成方面,系统需要基于检索到的信息生成准确、完整、易于理解的回答,答案应该符合中文表达习惯,结构清晰,重点突出,对于复杂问题能够提供分步骤的详细解释。在对话管理方面,系统需要维护对话状态和上下文信息,支持话题的延续和转换,能够识别用户的反馈并对后续回答进行相应调整。
知识库管理功能:
系统提供完善的知识库管理能力,支持多种格式的文档处理。在文档解析方面,系统需要支持PDF、Word、TXT、Markdown等常见文档格式的自动解析,能够提取文档中的文本、图片和表格内容,保持原文的结构和格式信息。在向量化处理方面,系统需要使用text2vec-base-chinese模型对文档内容进行向量化表示,将向量数据存储到Chroma向量数据库中,建立高效的索引结构以支持快速检索。在知识库维护方面,系统需要提供知识库的上传、更新、删除和版本管理功能,支持知识库的批量处理和增量更新,能够对知识库内容进行质量评估和去重处理。在权限管理方面,系统需要支持多用户知识库的隔离和共享,提供知识库的访问权限控制,确保用户数据的安全性和隐私性。
知识图谱功能:
系统基于Neo4j图数据库构建知识图谱,提供知识关联的可视化展示。在知识提取方面,系统需要从问答内容和知识库中自动提取实体、属性和关系,构建结构化的知识网络,支持手动添加和修改知识节点。在图谱构建方面,系统需要建立知识点之间的多种关联关系,如上下位关系、前后置关系、相似关系等,支持多层次的知识结构表示。在可视化展示方面,系统需要提供直观的知识图谱浏览界面,支持节点的展开、收缩和聚焦操作,能够高亮显示与当前查询最相关的知识节点。在知识推荐方面,系统需要基于知识图谱提供相关知识点推荐和学习路径建议,帮助用户建立系统化的知识体系,发现新的学习方向。
学习资源推荐功能:
系统创新性地集成了学习资源智能推荐功能。在学科识别方面,系统需要准确识别用户问题中涉及的学科类别,建立学科关键词库和同义词映射,支持多学科交叉问题的处理。在资源匹配方面,系统需要维护学科与百度网盘链接的映射数据库,确保链接的有效性和及时更新,支持多种类型学习资源的分类管理。在推荐生成方面,系统需要根据识别出的学科自动生成包含网盘链接和提取码的推荐信息,提供资源内容的简要描述和适用场景说明。在资源管理方面,系统需要监控链接的有效性,定期检查并更新失效链接,收集用户对资源质量的反馈并进行优化。
4 技术需求
前端技术:
采用Gradio框架构建直观友好的Web用户界面,提供流畅的交互体验和实时响应功能。界面设计遵循响应式布局原则,确保在桌面端、平板和移动设备上均能获得一致的用户体验。通过自定义CSS样式和组件优化,实现简洁明了的知识展示界面,支持对话历史记录、知识图谱可视化展示和资源链接的一键复制功能,降低用户学习成本,提升操作便捷性。
后端技术:
基于Python语言和FastAPI框架构建高性能后端服务,充分利用Python在人工智能领域的生态优势。采用异步编程模式处理并发请求,确保系统在高负载情况下仍能保持稳定响应。设计符合RESTful规范的API接口,实现前后端彻底分离,支持JSON格式的数据交互,为未来可能的移动端应用和多平台扩展奠定技术基础。通过依赖注入和中间件机制,保证代码的可维护性和可测试性。
大模型集成:
集成ChatGLM等开源大语言模型作为核心问答引擎,通过LangChain框架构建智能问答流水线。设计灵活的模型适配层,支持多种开源模型的快速切换和组合使用,确保系统在不同硬件环境下都能获得最佳的性能表现。实现模型的动态加载和内存优化,通过量化技术和模型剪枝降低资源消耗,使系统能够在消费级硬件上稳定运行。
向量数据库与知识图谱:
采用Chroma向量数据库存储和管理知识库的向量化表示,基于text2vec-base-chinese模型实现中文文本的高质量向量嵌入。设计高效的相似度检索算法,支持多维度语义匹配和相关性排序。集成Neo4j图数据库构建知识关联网络,实现知识点的可视化展示和关系挖掘,通过Cypher查询语言实现复杂的图谱遍历和关联发现,为用户提供深度的知识探索体验。
资源推荐系统:
构建学科识别引擎和资源映射数据库,实现学习资源的智能推荐。设计基于语义理解的学科分类算法,准确识别用户查询中的学科意图。建立资源链接的有效性监控机制,定期检查百度网盘链接的可用性,确保推荐资源的及时更新和长期有效。通过用户反馈收集和资源质量评估,不断优化推荐算法和资源库内容。
5 项目真实性、可靠性以及价值所在
真实性:我们的项目源于真实的学习需求。在我们团体成员两年的大学经历中,在身边同学平时以及期末的交流中,我们发现:
- 大部分学生表示在复习备考时需要快速获取相关资料
- 大部分学生遇到过找不到合适复习资料的困扰
- 我们自己包括同学们都希望有一个集问答和资料推荐于一体的学习助手
可用性:系统设计遵循用户友好的原则:
- 基于Gradio的直观Web界面
- 零学习成本、自然语言交互,无需专业培训
- 响应式设计,支持多种设备访问
- 简洁的操作流程,一键获取所需资源
价值体现:问答与资源深度融合、多维度知识服务、中文场景专项优化
- 传统问答系统只提供答案,我们同时提供实用学习资源
- 基于深度语义理解的精准资源匹配
- 答案生成 + 知识图谱 + 资料推荐的三位一体服务
- 从点到面的知识拓展体验
- 针对中文学习特点的资源分类体系
- 符合中国学生学习习惯的交互设计
四、团队计划
1 码云部分内容:
-
码云链接:https://github.com/Have-you-slept/LLM
-
Milestones内容:
![image]()
-
issues内容
![image]()
![image]()
2 项目时间安排表:
原有安排表
| 周数 | 任务内容 |
|---|---|
| 第 9 周 | 团队组队完成,创建团队博客。 |
| 展示团队成员,完成角色分配 | |
| 团队讨论并确定贡献分的分配规则。 | |
| 第 10 周 | 编写项目需求规格说明书,明确功能和用户需求。 |
| 原型设计与任务难度估计 | |
| 编码规范与环境搭建 | |
| 第 11 周 | 根据用户反馈改进原型,确保满足需求。 |
| 架构设计,团队成员估计各自任务时间 | |
| 测试计划制定 | |
| 第 12-13 周 | Alpha 阶段任务分配 |
| Alpha 敏捷冲刺 | |
| 第 14 周 | 用户反馈与测试改进 |
| Alpha 阶段总结 | |
| Alpha 阶段博客 | |
| 第 15 周 | 对 Alpha 阶段进行事后分析,评估进度、协作和用户反馈,准备进入下一阶段。 |
现有安排表
| 周数 | 任务内容 |
|---|---|
| 第 9 周 | 团队组队完成,创建团队博客,新增成员余嘉祺融入团队 |
| 展示团队成员,完成角色分配,优化任务分工 | |
| 团队讨论并确定贡献分的分配规则,考虑新增成员因素 | |
| 第 10 周 | 编写项目需求规格说明书,明确功能和用户需求,重点规划学科资源推荐功能 |
| 原型设计与任务难度估计,采用三点估算法重新评估 | |
| 编码规范与环境搭建,统一开发标准 | |
| 第 11 周 | 根据用户反馈改进原型,重点测试学科识别准确性 |
| 架构设计,团队成员基于校正时间重新估计任务 | |
| 测试计划制定,增加资源链接有效性测试 | |
| 第 12-13 周 | Alpha 阶段任务分配,新成员负责资源库建设 |
| Alpha 敏捷冲刺,每日进度跟踪与调整 | |
| 第 14 周 | 用户反馈与测试改进,重点验证学科资源匹配准确性 |
| Alpha 阶段总结,包含新增成员贡献评估 | |
| Alpha 阶段博客,展示资源推荐功能特色 | |
| 第 15 周 | 对 Alpha 阶段进行事后分析,评估进度、协作和用户反馈,特别分析资源推荐功能效果 |
校正方法
我们采用三点估计法进行时间校正,具体公式为:校正时间 = (乐观时间 + 4 × 最可能时间 + 悲观时间) ÷ 6。以需求分析阶段为例,乐观时间3天,最可能时间5天,悲观时间7天,计算得出校正时间5天。这种方法综合考虑了技术风险、团队协作效率和个人能力差异,并且考虑到有新成员加入,可以使进度加快一部分,使时间规划更加科学合理。
3 团队分工:
团队成员分工表
| 成员 | 分工职责 |
|---|---|
| 肖俊 | 项目管理与进度协调、技术架构决策、后端核心开发 |
| 陈俊彦 | 前端界面开发、知识图谱可视化、Agent功能实现 |
| 蓝毅 | 后端架构设计、FastAPI开发、系统协调与集成 |
| 杨腾竣 | 向量数据库管理、知识库维护、后端业务逻辑 |
| 曾梓垚 | ChatGLM模型集成、RAG系统优化、Docker容器化部署 |
| 王坤平 | Neo4j知识图谱开发、图数据库维护、知识点关联算法 |
| 何睿欣 | 系统架构设计、大模型优化、项目文档编写 |
| 余嘉祺(新增) | 学科资源库建设、百度网盘链接管理、系统测试与质量保障 |
4 每个人完成的情况以及感想:
| 成员姓名 | 完成情况 | 个人感想 |
|---|---|---|
| 肖俊 | 团队组建、需求分析、项目管理框架搭建 | 作为组长,深刻体会到项目管理的不易。需要平衡技术决策和团队协调,确保每个成员都能发挥所长。最欣慰的是看到团队成员在遇到技术难题时能够主动协作解决。 |
| 陈俊彦 | Gradio前端原型 | |
| 蓝毅 | API接口设计 | |
| 杨腾竣 | 向量数据库研究 | |
| 曾梓垚 | RAG系统设计 | |
| 王坤平 | Neo4j环境搭建 | |
| 何睿欣 | 系统架构设计 | |
| 余嘉祺 | 资源库规划 |


