团队作业3-需求改进&系统设计

团队作业3-综合报告(Alpha阶段)

项目 详情
这个作业属于哪个课程 计科23级12班
这个作业要求在哪里 作业要求链接
这个作业的目标 对现有项目进行设计和需求&原型改进,进行 Alpha 阶段任务分配

队名与队员:

MCoder,Manage Code & Organize Development EffoRt

王宥程-3123004714

关健佳-3121004072

高泽彤-3123004304

黎火坤-3123004310

翁广驰-3123004409

王怡欧-3223004344

1. 需求与原型改进

原型:

图片1

  • 针对课堂讨论提出的问题与建议进行修改

    • 问题1:知识需要手动导入,无自动解析分块的方式

      • 修改1:增加 pdf 解析,按规则分块的能力,提供修改分块后导入功能
    • 问题2:无图片理解能力,只能给予文本问答,缺少对图片的理解。

      • 修改2:增加多模态处理能力
  • 加分:面向目标用户的原型展示与访谈摘要

    • 目标用户:政策解读人员、企业法务/运营、普通公众、知识维护者。
    • 主要痛点:
      • 找条文慢、语义难、上下文碎片,难以形成可引用的解释。
      • 大量PDF杂质文本,导入后检索不准;问答难追溯。
      • 不同问答平台行为不一致,缺少统一记录与反馈机制。
    • 场景(产品前/后):
      • 使用前:手工搜PDF,复制粘贴,问答毫无记忆,无法复盘。
      • 使用后:将法规导入为结构化段落,RAG检索提取上下文,形成可追溯回答并留存记录,支持反馈与人工修订。
    • User Story:
      • 作为“政策解读人员”,我希望上传一份最新版补偿政策PDF,系统自动切分为条款段落,我在导入页微调后提交;当我询问“住宅类补偿标准”,系统返回带出处的回答,并显示Top-5相关条款与相似度。我可以对回答点赞并记录修订意见,后续同类问题自动引用已修订版本。
  • 上周《需求规格说明书》的不足与改进要点(摘要)

    • 不足:Prompt 设计功能缺失

    • 改进:

      • 增加Prompt设置接口与会话管理改进;
  • 功能定位与优先级(四象限)

    • 高价值/低成本:Prompt设置、会话选择与清理、反馈点赞/点踩、非流式回答详情。
    • 高价值/高成本:Milvus集成与调优、RBAC与审计、知识版本管理、多模态问答增强。
    • 低价值/低成本:UI细节美化、系统信息页文案优化、导入页提示。
    • 低价值/高成本:多人实时协作编辑、跨库全文检索聚合(暂缓)。
  • WBS与进度计划(根据修改后的需求)

    • WBS(交付件树):
      • 前端UI:问答页(流式/非流式/检索展示)、知识库管理(CRUD/导入/解析)、系统信息(会话/Prompt/健康状态)、图片问答页。
      • 后端API:/knowledge系列、/qa/ask/qa/ask-stream/qa/ask-image/qa/feedback/sessions/settings/prompt/qa/{id}/human-review
      • 服务层:KnowledgeServiceQAServiceEmbeddingServiceVectorStoreSettingsServiceMemoryService
      • 数据层:SQLite模型与会话存储、Milvus集合与索引、初始化脚本。
      • 运维与配置:run.py双端启动、config.py环境变量、日志与健康检查。
    • 进度计划(Alpha迭代,7天):
      • D1-D2:会话/Prompt与人工介入接口;解析页多策略;系统信息页健康状态。
      • D3-D4:Milvus检索调优与降级;知识版本/来源字段;图片问答增强。
      • D5:前端联调与可用性迭代;反馈闭环。
      • D6:端到端回归与性能基线;问题单收敛。
      • D7:文档完善与演示准备。

3. 系统设计

  • 架构设计(分层与职责)

    • 前端(Streamlit):三页签UI,问答流式渲染、检索知识展示、PDF解析与人工编辑、系统信息及Prompt设置(frontend.py)。
    • API层(FastAPI):路由与依赖注入,统一模型序列化(main.py)。
    • 服务层:
      • 问答编排与日志记录(qa_service.py):检索→上下文→LLM→写 QARecord→返回含检索相似度。
      • 知识管理与导入解析(knowledge_service.py):CRUD、PDF分段与导入、Milvus索引维护。
      • 向量检索封装(vector_store.py):集合创建、索引、Top-K检索、维度校验。
      • Embedding生成(embedding_service.py):OpenAI兼容/Ollama两种调用路径。
      • 会话记忆(memory_service.py):基于 SQLChatMessageHistorysession_id管理历史。
      • Prompt设置(settings_service.py):系统与答案模板持久化。
    • 数据层:SQLite(ORM模型、会话历史)、Milvus(向量集合与索引)。
    • 外部接口:OpenAI兼容模型(文本/图像)、Ollama嵌入端点。
  • 关键流程(文本问答)

    • 用户提问→生成查询向量→Milvus检索Top-K→构建上下文→LLM生成→写入 QARecord→返回答案+检索条目。

4. Alpha任务分配计划

  • Product Backlog(按优先级与依赖)

    • P0:文本问答链路稳定(检索/上下文/流式)、PDF解析与人工编辑导入、反馈机制闭环。
    • P1:会话管理改进与Prompt设置、Milvus健康状态展示与降级路径。
    • P2:人工介入端到端、知识版本/来源字段、多模态图片问答增强。
  • Sprint Backlog(已有功能清单)

    • 后端:

      • 知识库管理 CRUD:POST/GET/PUT/DELETE
      • PDF解析与导入
      • 文本问答(非流式与流式)。
      • 图片理解问答,多模态处理实现。
      • 反馈机制
      • 会话管理
      • Prompt设置
      • 向量检索与索引
    • 前端:

      • 问答页:问题输入、流式回答渲染、非流式详情、Top-5检索条目及相似度展示、反馈按钮、过程日志查看与保存
      • 图片问答:图片上传与问题输入,非流式展示答案。
      • 知识库管理:新增知识、列表展示、删除、快速导入PDF、解析-人工编辑-选段导入
      • 系统信息与配置:Prompt设置编辑与保存,会话列表加载、创建、清空
  • 甘特图:
    图片2

5. 测试计划

  • 测试范围与目标

    • 覆盖产品主要能力:知识库CRUD、文本问答(非流式/流式)、图片问答、PDF解析与导入、会话与Prompt设置、反馈机制。
    • 目标:正确性、稳定性、可追溯、性能(响应时间、流式首字节)与降级有效性。
  • 测试类型

    • 单元测试:KnowledgeService.parse_pdf切分准确性;EmbeddingService两种端点的异常/超时;VectorStore.ensure_collection维度校验;SettingsServiceCRUD。
    • API集成测试:/knowledge系列、/qa/ask/qa/ask-stream/qa/ask-image/qa/feedback/sessions/settings/prompt
    • 端到端(E2E):前端流式渲染、检索展示、解析导入与问答闭环;会话选择与清理。
    • 性能与健壮性:Top-K检索耗时、首字节时间、并发下流式稳定;Milvus不可用时的降级行为。
    • 回归测试:对核心链路建立用例集,每次改动后回归。
  • 时间安排与角色

    • 与开发同步开展:后端完成一个接口即加入集成用例;前端完成功能即执行E2E。
    • 角色分工:
      • 后端同学主导单元测试与API集成;
      • 前端同学主导E2E与可用性;
      • PM收敛问题单与性能基线记录。
  • 资源与工具

    • 测试数据:政策PDF样本(章节/条款结构多样),标准问题集与期望回答模板。
    • 工具:requests/httpx集成测试脚本、uvicorn本地后端、streamlit前端、Milvus本地/容器化部署。
  • 入口/退出准则

    • 入口:所有P0功能接口可用,基本页面可访问。
    • 退出:P0链路回归通过,流式与非流式稳定,关键错误率<1%,性能指标达标。
posted @ 2025-11-22 18:08  JianjiaGuan  阅读(17)  评论(0)    收藏  举报