需求评审时,一句"做个 AI 知识库问答"很容易达成共识。真正难的是判断:现有文档能不能用、答案靠不靠谱、权限会不会泄露、投入是否值得。本文用一个常见案例,讲清楚如何通过一次技术穿刺回答这些问题。
什么是技术穿刺?
在本文中,技术穿刺指围绕一个高风险问题,在有限时间内打通最小业务链路,用运行结果支持方案选择和投入决策 。它与敏捷开发中的 Spike 接近:先回答关键问题,再估算后续工作,而不是一开始就建设完整产品。
假设业务方提出:"把公司的文档接入 AI,让员工直接提问。"完整产品可能涉及文档管理、权限配置、聊天界面、反馈系统和运营后台。首次穿刺只选一条链路:
text
上传文档 → 解析和切分 → 检索相关片段 → 生成回答 → 展示引用来源
这条链路跑通后,还要验证它在错误、缺失和越权场景下如何表现。能演示一次正确回答,不等于技术风险已经排除。
穿刺前,先写清楚要回答什么
建议把目标压缩成四类问题:
- **技术风险:**扫描件能否解析?检索能否找到正确段落?模型会不会在没有依据时编造答案?
- **支持方案:**现有文档、权限系统、服务接口和运行环境能否支撑这条链路?需要补哪些能力?
- **投入判断:**继续做成产品要多少开发和维护工作?单次问答及预期月度成本是否可接受?
- **演示效果:**业务人员能否沿着"提问---回答---查看引用"核对结果,并看到系统如何处理无答案和无权限问题?
实验开始前写下这些问题,结束时逐项回答,可以避免 Demo 很好看,却没有验证真正影响决策的风险。
案例:企业知识库问答的最小穿刺方案
选取约 20~50 份有代表性的文档,覆盖 PDF、Word、表格,以及少量扫描件。再请业务人员准备一组真实问题,至少包括四种类型:
| 问题类型 | 示例 | 要验证什么 |
|---|---|---|
| 单文档问题 | "新员工如何申请测试环境?" | 能否定位并引用正确段落 |
| 跨文档问题 | "申请、审批和开通分别由谁负责?" | 能否组合多个来源,并避免张冠李戴 |
| 无答案问题 | "明年的测试环境政策会如何变化?" | 能否明确表示无法确认 |
| 无权限问题 | "其他部门的内部预算是多少?" | 是否阻止越权检索和回答 |
最小实现只需要文档导入、检索、问答、引用展示,以及记录请求耗时和调用成本。页面可以简单,但引用必须能定位到原文,方便业务人员核对。
一条容易漏掉的风险:权限
如果系统先检索全库,再在页面上隐藏无权限文档的引用,模型仍可能利用这些内容生成答案。因此,权限约束需要进入检索链路:先确定当前用户可访问的文档范围,再检索、生成回答。穿刺时应使用不同权限账号,对同一问题重复测试。
风险排查:每项风险都要留下证据
| 风险 | 验证方法 | 发现问题后的支持方案 |
|---|---|---|
| 文档解析不完整 | 抽查标题、表格、图片和扫描件的解析结果 | 增加 OCR,或更换、组合解析方式 |
| 检索命中错误 | 将检索片段与业务人员标注的参考段落对照 | 调整切分、关键词检索或重排策略 |
| 回答缺少依据 | 检查引用是否支持结论,并测试无答案问题 | 增加拒答规则与引用校验 |
| 权限越界 | 用不同权限账号提出相同问题 | 在检索阶段过滤可访问文档 |
| 响应慢或成本高 | 记录端到端耗时、调用量与单次成本 | 调整检索范围、模型选择和缓存策略 |
每次失败都应保存输入问题、检索结果、系统回答和预期结果。例如,"回答错了"不足以指导修复;"正确段落没有进入检索结果"与"检索正确但生成时误读",对应的是两种不同方案。
支持方案:穿刺成功后还缺什么
穿刺时可以手工导入文档、使用固定测试账号;正式使用则需要补齐持续运行能力。建议在结论中分别说明:
- **数据支持:**文档由谁维护,更新如何同步,扫描件和复杂表格如何处理。
- **系统支持:**如何对接登录与权限,如何记录日志,如何处理服务失败。
- **效果支持:**谁维护测试问题集,如何收集错误案例,何时重新评估效果。
- **运营支持:**预计使用量是多少,成本和响应时间如何持续监控。
这样,穿刺结论才能从"技术上能跑"推进到"具备继续建设的条件"。
投入判断:用门槛代替"感觉不错"
以下是示例评估框架,阈值应在实际项目中由业务要求和预算确定;表中的结果栏需要用实测数据填写。
| 指标 | 示例通过条件 | 需要记录的结果 |
|---|---|---|
| 有答案问题的引用命中情况 | 达到事先约定的目标 | 命中数量、失败样本 |
| 无答案问题的处理 | 不编造关键事实 | 错误回答及原因 |
| 权限测试 | 无越权引用或回答 | 测试账号与请求日志 |
| 响应时间 | 满足业务可接受范围 | P50、P95 耗时 |
| 问答成本 | 符合预计使用量下的预算 | 单次成本与月度估算 |
投入也应分开估算:一次性开发 包括文档接入、检索与问答、权限对接和测试;持续投入包括模型调用、存储、文档更新、效果评估与问题处理。文档质量和权限结构越复杂,后两项工作越不能忽略。
穿刺结束后,给出明确建议:
- **继续投入:**关键指标达标,剩余问题有可执行的解决方案。
- **调整方案后再验证:**某项关键风险未过关,但已有明确替代路径。
- **暂缓投入:**权限、答案可靠性或成本达不到业务底线。
演示效果:连续展示三种情况
演示时不要只挑一个"答对了"的问题。可以让业务人员连续看到以下过程:
text
问题 A:新员工如何申请测试环境?
预期效果:系统给出步骤,并引用操作手册的对应段落。
问题 B:明年的测试环境政策会如何变化?
预期效果:现有文档没有依据,系统明确表示无法确认。
问题 C:其他部门的内部预算是多少?
预期效果:当前账号没有访问权限,系统不返回预算内容。
上面是演示脚本和预期效果,并非已经完成的测试结果。实际演示应保留页面录屏或截图、引用原文和测试记录,让旁观者能够复核。
总结
一次有价值的技术穿刺,交付物可以只是一个简单页面、一份测试记录和一张决策表。关键是通过"文档---检索---回答---引用---权限"这一条最小链路,尽早回答:能否做、风险在哪里、需要哪些支持、是否值得继续投入。
对于企业知识库问答,先获得这些证据,再决定是否建设完整产品,比直接按一张聊天页面估算项目更可靠。