7 天知识库验收练习:从启动源码到说明失败边界
目标是留下一份自己的验收记录,而不是七天内完成生产级系统。已有 Java 基础即可开始;某一项没有完成,可以多花一天,把错误记录下来。
准备 知识库服务源码、验收手册和 可编辑练习单。先按项目 README 选择运行模式,全文使用合成文档,避免带入公司或个人敏感资料。
第 1 项:启动并确定实验条件
动作: 记录操作系统、JDK、源码版本、运行模式和启动命令。启动项目后发出一条正常请求与一条未认证请求。
保留: 启动日志、请求方法和路径、响应状态、响应摘要。只写“启动成功”不够,还要知道服务监听在哪里、使用什么身份、数据保存到哪里。
完成条件: 能解释启动成功与业务请求成功的区别。失败时先按使用帮助区分环境、依赖、端口与认证问题。
第 2 项:理解一条答案的证据
动作: 用项目示例文档提出一个可回答的问题,再问一个文档里没有答案的问题。把引用 ID 对应到原文。
保留: 问题、原文、返回内容、证据 ID 与无答案响应。
完成条件: 能说明“找到相似内容”“有充分证据”“生成了正确答案”是不同结论。本地检索模式没有模型生成时,只验收它实际提供的检索与摘录能力。
第 3 项:验证租户与角色
动作: 在两个租户准备同名但内容不同的文档,分别使用两个已认证身份提相同问题;再用普通角色请求受限文档。
保留: 身份所属租户、文档归属、请求及实际引用。不要把客户端传入的 tenantId 当作身份保障。
完成条件: 能确认进入返回结果的每条证据都属于允许访问的范围。代码中查找身份从认证结果到查询过滤的实际传递位置。
第 4 项:修改文档,查清旧值来自哪里
动作: 把一份规则从“年假五天”更新为“年假十天”,再查询同一问题。保留新旧文档标识与状态,不只看一段回答文字。
保留: 更新请求、当前版本、候选证据和实际引用。
完成条件: 能解释当前版本在哪里确定,旧内容为什么不应再次进入结果。需要增加向量入库故障时,按文档更新指南另外设计回放;没有执行的分支标为待验证。
第 5 项:删除与收紧权限
动作: 删除当前文档,再提相同问题,检查是否错误回退到旧版本。另用项目支持的方式收紧文档权限,重新查询。
保留: 删除或修改权限的响应、后续查询、旧版本状态与拒答结果。
完成条件: 分清“停止提供文档内容”和“所有副本已经物理清除”。外部向量库、对象存储、备份与会话历史需要各自的清理策略,不能用本地一条查询替代。
第 6 项:把失败写成可重放用例
动作: 从前面的步骤选择一个失败,整理最小输入。记录预期、实际、影响、修正与再次运行结果;全部正常时,也可以使用教学实验里的未过滤对照实现观察失败。
保留: 一份别人能按步骤重放的记录。错误改了就重新执行相同输入,保留前后结果。超时与重试设计可结合接口截止时间指南继续练习,不把设计建议写成已测性能。
完成条件: 读者能够区分原始日志、规则推导与未来改进。
第 7 项:讲清楚自己做了什么
动作: 用三分钟交代业务范围、本人修改、请求链路、一个失败分支和未完成部分。对照项目表达样例写一段练习经历。
保留: 源码版本、运行记录、用例表与讲解提纲。下载并运行公开项目可以写成学习实践,自己新增了什么需要单独说明。
完成条件: 面对“为什么这样过滤”“旧版本为什么不能回退”“如何知道修复生效”的追问,有代码或记录可以核对。
