[T.5] 团队项目:功能规格说明书
| 项目 | 内容 |
|---|---|
| 这个作业属于哪个课程 | 2025年春季软件工程(罗杰、任健) |
| 这个作业的要求在哪里 | [T.5] 团队项目:功能规格说明书 |
| 我在这个课程的目标是 | 学习软件工程的基础知识,和团队成员们实践各种软件工程的方法与流程,开发一个让我们值得骄傲的项目 |
| 这个作业在哪个具体方面帮助我实现目标 | 制定团队项目功能规格说明书,为后续的团队开发提供参考与指导 |
一、写作目标
功能规格说明书(Functional Specification, FS)的目标,是将用户需求转化为系统具体功能设计的蓝图,为后续的开发、测试、维护等阶段提供清晰、准确、可操作的参考依据。
- 本功能规格说明书的目标:
- 定义 RAGnarok 系统应实现的功能、交互逻辑与行为规范,为开发、测试、部署提供依据
- 描绘用户画像
- 描述典型应用场景
- 对产品功能进行描述,说明本产品的能力边界
- 功能规格说明书的范畴(Scope)可以归纳为以下几个核心部分:
| 类别 | 内容 |
|---|---|
| 用户相关 | 用户分类、画像、使用目标、频率、代价、期望等 |
| 场景相关 | 使用系统的具体业务场景(如RAG调度、知识库查询) |
| 功能定义 | 详细描述每个系统功能的行为、入口、逻辑 |
| 系统边界 | 包括技术边界、处理容量、浏览器兼容性等 |
| 开发安排 | 明确哪些为Alpha/Beta阶段的功能 |
| 数据要求 | 说明数据收集内容、方式与含义 |
| 验收标准 | 每个功能点何时算完成?如何测试? |
| 术语定义 | 定义LLM、MCP、Pipeline、RAG等专有术语 |
| 风险与应对 | 潜在技术、用户、市场等不确定因素 |
二、概念和术语
| 术语 | 别名 / 缩写 | 定义 | 特殊说明 / 区别说明 |
|---|---|---|---|
| RAG | 检索增强生成 | 一种将信息检索与大语言模型生成结合的NLP技术,提高回答准确性。 | 不同于仅用LLM回答,RAG具备“可追溯的知识依据” |
| LLM | 大语言模型 | 通过大规模语料预训练的自然语言模型,可用于问答、写作、代码生成等任务。 | 示例有:GPT-4、Claude、通义千问等 |
| MCP | 模型上下文协议 | 一种统一描述模型输入输出上下文的数据协议,保障模块间标准连接。 | 本项目中是模块通信的中间语,强调结构兼容性 |
| Pipeline | 流水线架构 | 多个模块组成的问答流程,每一步功能独立且可自由编排。 | 每个流程节点如:检索 → 重排 → 生成 |
| 知识库 | Knowledge Base / KB | 经向量化处理后存储文档语义的数据库,可用于RAG检索。 | 分为公有库与私有库,支持权限隔离 |
| 向量化 | 嵌入、Embedding | 将文本转化为向量形式,便于进行语义匹配与检索。 | 是知识库构建的前置步骤 |
| 模块 | 组件、Component | 系统中可插拔的功能单元,例如检索器、排序器、LLM调用器。 | 各模块通过 MCP 接口连接,支持自由组合 |
| 多租户 | Multi-Tenant | 系统架构支持不同企业或用户拥有独立、隔离的数据与权限空间。 | 强调数据隔离 ≠ 多用户共享 |
| 智能Agent | Agent、流程Agent | 可根据目标任务自动调用多个模块、规划执行流程的智能体。 | 区别于普通问答,Agent具备多步推理与调用链条 |
| 开箱即用 | Out-of-the-box | 用户无需编程即可使用系统核心功能。 | 为C端用户提供界面化操作体验 |
产品描述
项目简述
RAGnarok 是一款面向开发者、企业和普通用户的一站式智能问答平台,致力于通过模块化 Pipeline 架构与模型上下文协议(MCP),实现大语言模型与外部知识的高效整合。项目诞生于当前 RAG 技术应用落地难、集成成本高的背景,旨在降低构建 AI 问答系统的门槛。通过标准化接入、灵活流程编排和多类型知识库管理,RAGnarok 不仅提升了问答准确性和数据安全性,也为企业定制化应用和个人便捷使用提供了坚实支撑。
用户和应用场景
用户画像
该产品的用户分为开发者、B端企业、C端用户
| 开发者 | B端企业 | C端用户 | |
|---|---|---|---|
| 身份特征 | 青年、从事信息技术职业 | 信息技术类企业 | 对RAG感兴趣的用户 |
| 潜在总量 | 10万 | 100 | 50万 |
| 使用习惯 | 用RAG构建项目、辅助开发。 | 在公共知识库上构建RAG工作流 | 在个人知识库上构建RAG |
| 对产品的期望 | 各功能模块能够自由拼装,并提供调试和监控机制,帮助迅速定位和解决问题。 | 期望平台支持安全的私有部署和高效的知识管理,降低接口开发和系统集成的复杂度,同时确保检索精度和数据安全。 | 追求简便的操作体验和精准的问答反馈,能够直接满足日常信息查询和知识检索需求。 |
| 为产品付出 | 付费意愿一般(买断或按量付)生产内容意愿强 | 付费意愿强(买断或按量付)生产内容意愿一般 | 付费意愿弱(买断或按量付)生产内容意愿弱 |
典型应用场景
应用场景分为哪几类?
-
开发者场景
主要集中在开发者使用平台进行二次开发、模块集成、调试和监控的场景。
-
企业运营场景
企业用户使用平台进行跨系统集成、数据安全保障、私有化部署以及系统维护的场景。
-
C端用户日常使用场景
普通用户使用平台进行日常信息查询、知识检索和智能问答的场景。
每一类应用场景下:
2.1 开发者场景
2.1.1 包含的用户:
- 开发者:软件工程师、技术架构师、产品开发人员等。
2.1.2 系统为各类用户提供的服务:
- 提供标准化的开发工具包、二次开发支持,帮助开发者将功能模块快速集成进现有系统。
- 提供实时调试工具和日志监控功能,帮助开发者及时发现并解决问题。
- 提供详细的技术文档和支持,确保开发者能够高效开发和部署。
2.1.3 用户之间产生的关系:
- 开发者与平台的关系是技术和工具的关系,开发者依赖平台提供的功能实现自身目标,平台则依赖开发者的反馈来优化产品。
- 开发者也可能通过技术社区或论坛与其他开发者交流技术经验和解决方案。
2.1.4 为用户带来的好处与感受:
- 开发者能够高效集成、快速开发和部署,减少开发时间,提高产品质量。
- 实时调试和监控工具帮助开发者及时发现和解决问题,降低调试难度。
- 整个过程的流畅性和便捷性会大大增强开发者的满意感和成就感。
2.2 企业运营场景
2.2.1 包含的用户:
- B端企业:IT经理、系统管理员、运维人员、项目经理等。
2.2.2 系统为各类用户提供的服务:
- 提供私有部署和多租户隔离功能,帮助企业在确保数据安全的前提下高效运营。
- 提供系统集成、跨系统数据同步和自动化管理工具,帮助企业简化运营流程。
- 提供高可靠性和高安全性的运维支持,确保企业系统稳定运行。
2.2.3 用户之间产生的关系:
- 企业内部的IT团队、项目经理和运维人员与平台的关系主要是业务支持和技术支援。
- 企业间的合作关系也可能在使用平台时出现,比如多个合作伙伴共同使用平台的服务进行系统集成或数据共享。
2.2.4 为用户带来的好处与感受:
- 提供的私有部署和数据加密服务帮助企业保障数据安全,减少系统故障风险。
- 系统的高稳定性和多租户隔离功能大大提高了业务运作的可靠性和灵活性。
- 通过降低跨系统集成和维护的复杂度,企业能够节省人力和时间成本,增强业务竞争力。
- 企业管理层能够感受到系统提升运营效率和保障业务连续性的价值。
2.3 C端用户日常使用场景
2.3.1 包含的用户:
- C端普通用户:学生、白领、家庭用户等。
2.3.2 系统为各类用户提供的服务:
- 提供简洁易用的查询功能,帮助用户快速获取信息,解决日常生活中的疑问。
- 提供个性化推荐系统,根据用户的查询历史和兴趣推荐相关内容。
- 提供智能问答系统,快速响应用户的提问,确保答案准确性和及时性。
2.3.3 用户之间产生的关系:
- C端用户与平台之间建立了一种信息查询与获取的关系。平台成为用户获取知识和解答问题的重要工具。
- 用户可能在平台内分享问题和解答,或者通过平台的社交功能与其他用户互动。
2.3.4 为用户带来的好处与感受:
- 用户能够在短时间内获得精准、高效的答案,节省查询信息的时间和精力。
- 简洁直观的界面设计和流畅的操作体验让用户感到轻松愉快,增强平台的吸引力。
- 个性化推荐功能提升用户体验,让用户感到平台能针对个人需求提供定制化服务。
产品功能描述
- 功能实现与应用场景
-
RAGnarok的核心功能包括:
-
知识库管理:用户可以创建并管理公有库和私有库,支持多源数据导入(如PDF、Word、TXT等),并生成嵌入向量以便高效检索。
-
检索增强生成(RAG):结合知识库与AI工作流,实现对专业领域问题的高效解答。
-
工作流编排:允许用户构建和执行复杂的AI任务流,支持条件判断、并行加速等功能。
-
应用场景:
-
企业知识库问答:帮助企业快速获取内部知识,提升工作效率。
-
智能客服:根据用户问题动态检索并生成回答,提升客服效率。
-
教学辅助与科研文献助手:在教育和科研领域提供专业的文献和知识库支持。
-
- 显性与隐性依赖关系
- 知识库管理与RAG功能的依赖:RAGnarok的RAG功能依赖于用户上传并管理的知识库,知识库的质量直接影响回答的准确性。
- MCP协议与工作流编排:MCP协议提供的标准化数据接口确保了工作流组件和外部工具的无缝连接,工作流编排则需要依赖MCP协议来调度外部资源。
- 潜在问题与副作用
-
潜在问题:
-
性能瓶颈:在处理大量数据或高并发查询时,检索过程可能出现延迟或资源耗尽问题。
-
数据安全问题:私有库的数据需确保其安全性,防止未经授权的访问。
-
系统兼容性:不同用户可能使用不同版本的浏览器或操作系统,可能会导致功能兼容性问题。
-
解决方法:
-
负载均衡与优化:通过集群部署和缓存机制来优化查询性能,确保系统能够高效处理大规模数据。
-
权限管理与加密:使用强加密算法保护私有库数据,并设计严格的权限管理系统。
-
多浏览器支持:确保系统兼容主流浏览器,且在不支持的浏览器上提供明确提示和操作建议。
-
能力边界
-
用户数量最大限制
-
最大限制:
单个用户数量:基于当前系统架构,RAGnarok可支持大规模用户并发访问,实际容量受服务器资源限制。针对大规模并发,需通过分布式架构进行优化。
-
应对方式:
自动扩展与负载均衡:通过容器化部署和云服务扩展能力,在高负载情况下自动增加资源。
-
-
用户使用集中度
-
最大限制:
高峰负载:在业务高峰期,用户的请求可能集中,系统可能面临访问延迟。
-
应对方式:
动态资源调度:系统可根据负载自动扩展资源池,保证高峰期的业务流畅运行。
-
-
输入输出内容的上限
-
最大限制:
数据量限制:单次请求的数据量可能受到API调用频率和向量数据库的限制。
-
应对方式:
数据分页与分批处理:通过分页或批处理方式处理过大的数据请求。
-
-
支持的浏览器类型与版本
-
最大限制:
浏览器兼容性:目前系统支持主流浏览器(Chrome、Firefox、Safari、Edge等)的最新版本。
-
应对方式:
兼容性提示与降级:对于不支持的浏览器,提示用户升级至支持版本,或提供简化版功能。
-
-
用户入口差异
-
最大限制:
Web与移动端差异:移动端与Web版的功能可能会有所不同,尤其是在界面与交互方式上。
-
应对方式:
自适应设计:通过响应式设计,确保不同设备上的用户体验一致。
-
-
其他边界条件
-
最大限制:
跨库检索与多租户管理:支持多个租户同时使用,需确保数据隔离与权限控制。
-
应对方式:
租户隔离与数据加密:对每个租户的数据进行隔离存储,使用加密技术保证数据安全。
-
通过上述设计与考虑,RAGnarok能够在功能实现与能力边界上做出合理的平衡,确保系统的高效运行和稳定性。
-
产品目标
1. 产品应当可以实现的益处和效果
- 面向群体明确:为RAG开发者提供可拓展、高性能、私有化部署友好的工作流平台。
- 功能效果预期:
- 提供从文档加载、索引构建、向量数据库管理,到大语言模型调用的完整链路。
- 支持多种文档格式上传与解析,兼容市面主流embedding方案。
- 支持Docker一键部署,便于快速试用与集成。
- 开发者可基于插件机制拓展链路节点,实现业务自定义。
- 用户体验层面:
- 提供简洁直观的Web界面,便于非AI专家理解整体RAG工作流。
- 有详细文档和示例,降低使用门槛。
2. 本学期需积累多少真实用户(含数据可信保障)
- 目标真实用户数:200名以上
- 用户定义:
- GitHub上Star本项目的用户;
- 安装Docker镜像并实际运行过项目的用户;
- 访问官方文档并提交issue或反馈的用户;
- 使用数据上传功能、调用模型接口的实际行为记录。
- 确保数据可信的方式:
- GitHub提供唯一标识用户(用户名、ID),可用于数据统计;
- Docker Hub镜像下载量可作为部分参考;
- Web端加装轻量级匿名用户行为追踪(如 Google Analytics / 自建埋点服务);
- 调研问卷或用户反馈收集过程中,设置唯一邀请码或填写GitHub用户名验证。
3. 本学期需达成的日活跃用户目标(DAU)
- 目标DAU:≥30人
- 定义说明:DAU为每日有实质操作行为(例如上传文档、查看结果、发起构建)的唯一用户数(去重)。
- 目标意义:
- 反映用户是否在持续试用或集成项目;
- 对早期用户粘性和核心用户群稳定度的验证;
- 有助于快速获得Bug反馈和产品建议。
4. 系统内部需要积累的数据资源
- 目标数据规模:
- 累计上传文档数:≥300份
- 向量数据库构建任务:≥100次
- 模型调用日志记录:≥500次
- 用户反馈(issue/评论/建议):≥50条
- 数据价值:
- 用于分析常见数据格式与使用习惯;
- 为后续构建benchmark评测体系奠定数据基础;
- 生成用户行为热力图,帮助优化界面/链路设置。
5. 上架与下载目标
-
当前本项目为 Web端 + 后端工具链 + Docker部署,不涉及移动应用商店上架,但未来可考虑构建移动端简化版本用于Demo展示。
-
目标:将核心构建逻辑封装为Python包,并上传至PyPI。
-
版本要求:
- 实现核心功能模块(文件处理、索引构建、模型交互)。
- 提供标准化CLI接口与API文档。
- 版本号达到
v0.1.0,通过pip install ragnarok可直接安装。
-
发布平台:
- GitHub:作为主项目展示平台。
- DockerHub:提供镜像,便于一键部署。
- PyPI:模块化封装的用户可选接口。
-
目标使用量:
- GitHub Star:500+
- PyPI下载量:200+
- DockerHub镜像拉取量:300+
产品发布和分析
1. 发布后可能面临的风险与解决方案
| 潜在风险 | 说明 | 解决方案 |
|---|---|---|
| 用户无法理解产品链路 | RAG原理相对复杂 | 制作图文教程、交互式引导、Demo示例 |
| 安装部署失败 | 环境依赖复杂 | 提供Docker镜像+脚本部署;设立FAQ页面 |
| 初期反馈较少 | 用户不活跃,难以获取迭代建议 | 设置反馈激励机制(贡献榜、徽章、鸣谢) |
| 被同类产品替代 | 市面竞品众多 | 聚焦优势差异化功能(插件机制、本地部署、兼容性) |
2. 可收集 & 应收集的数据种类
- 用户行为数据(匿名或已登录用户):
- 页面访问次数、使用链路节点数、上传文件格式种类、接口调用次数。
- 使用频率数据:
- 日活用户数(DAU)、周活(WAU)、留存率(7日/30日)、平均会话时长。
- 功能点击热力图(可视化热图工具)
- 用户反馈:
- GitHub issue、pull request、问卷反馈、社群讨论数据。
- 部署信息(可选收集):
- 使用的embedding模型、数据库后端种类、是否部署私有实例。
3. 为支持数据收集所需准备工作
- 接入埋点系统(例如自建或使用现成方案如 Google Analytics、Matomo);
- 设置用户唯一识别机制(匿名 UUID 或 GitHub OAuth 登录);
- 设计并统计用户行为指标(如「上传文档」、「触发模型」等);
- 在文档和前端显著位置提示用户本项目会收集匿名使用数据(符合隐私合规要求);
- 创建内部数据可视化看板(如使用 Superset、Grafana)对接统计数据;
- 为PyPI包和Docker镜像分别配置自动下载统计插件或查询接口。

浙公网安备 33010602011771号