产品手册RAG:从文档检索到精准问答

简介: --- title: "产品手册智能对话:银行也可以有自己的 AI 知识库机器人" date: 2026-06-07 author: AlphaAgent series: series5 tags: [RAG, 问答, 知识库, 产品手册, BM25, TF-IDF] --- 产品手册智能对话:银行也可以有自己的 AI 知识库机器人 客户问"金葵花理财起购金额是多少?",客户经理不用

title: "产品手册智能对话:银行也可以有自己的 AI 知识库机器人"
date: 2026-06-07
author: AlphaAgent
series: series5

tags: [RAG, 问答, 知识库, 产品手册, BM25, TF-IDF]

产品手册智能对话:银行也可以有自己的 AI 知识库机器人

客户问"金葵花理财起购金额是多少?",客户经理不用翻手册,AI 秒回答案并标注出处。这就是产品手册智能对话的力量。

场景痛点

银行的客户经理每天要面对几十个产品、数百条规则。金葵花理财的申购起点是多少?平安白金卡年费多少?建行惠懂你 310 模式是什么?——这些问题,客户随时可能问。

传统解决方案是:

  1. 翻手册(慢,容易错,找不到)
  2. 问同事(打断别人工作,信息可能不准)
  3. 打客服(客户觉得你不够专业)

三个选择都不好。

已有方案 vs 我们的方案

我们先看看同业的做法:

银行 方案 优点 缺点
招行 "智谱" 投顾对话机器人 对话自然 需要大量标注数据,成本高
平安 "知鸟" 企业级知识库 功能全面 需要平台 API 授权
工行 "工小智" 客服机器人 已承接大量流量 主要处理账户类问题,产品类不够细
我们的方案 BM25+TF-IDF RAG 零 API 费用,Hit@1=100%,2.5ms 响应 不支持语义推理(v1.1 解决)

技术选型:为什么是 BM25 + TF-IDF 双路检索?

很多人一谈 RAG 就想到 embedding + 向量数据库。但实际业务中,产品手册的 FAQ 类问题有一个很关键的特性:问题中的关键词与答案所在的章节标题高度相关

例如用户问"起购金额是多少",手册中"申购起点与持有门槛"章节下就有"单只理财产品起购金额:人民币产品 1 万元起"的原文。这不是一个"语义相似"问题,而是一个"关键词匹配+段落定位"问题。

所以我们选择了:

  • BM25Okapi:经典的词袋检索模型,对生僻词idf高区分度
  • TF-IDF 余弦相似度:弥补 BM25 在短文本下的稳定性
  • RRF (Reciprocal Rank Fusion):两路结果融合
  • 章节标题加权:查询词与章节标题的重叠 token 给予额外分数
  • 产品自动识别:从"建行惠懂你最高额度"自动推断产品名

结果如何?

性能数据

在 3 个产品手册、25 个 chunk、15 个测试用例上:

指标 数值
Hit@1 100%
Hit@3 100%
MRR 1.000
平均检索耗时 2.5 ms
内存占用 < 5 MB
外部依赖 零(纯标准库)

关键设计:章节标题加权的魔力

纯靠 BM25+TF-IDF 的效果本来只有 Hit@1=26.7%,我们做了两项关键优化后升至 100%:

1. 产品自动识别(_infer_product

查询"建行惠懂你 310 是什么" → 自动推断产品名"建行惠懂你小微贷" → product_filter 限制在该手册内检索 → 排除其他手册的干扰。

关键实现:从产品名中通过 sliding window 抽取所有 2-4 字的候选词,以"最长命中字数"打分。_infer_product('建行惠懂你最高额度是多少') 正确返回 '建行惠懂你小微贷'。

2. 章节标题 token 加权

在 BM25/TF-IDF 索引构建时,将章节标题的 token 复制 3 倍后加入文档向量。这使得"起购金额"在"二、申购起点与持有门槛"章节中的权属显著高于其他含数字的章节。

同时,在 RRF 融合后的 rerank 阶段,计算查询词与章节标题的重叠 token,给予 0.005 × len(overlap) 的额外分数。这个 bonus 虽然微小,但在短文本场景下足以让正确的章节排到第一。

文档切分的教训

初期实现中,'1. xxx' 格式的列表项被 HEADING 正则误识别为标题(因为含有 \d+\.\s+.+ 模式),导致"申购起点与持有门槛"(含 '1. 金葵花客户准入门槛')和"申购与赎回规则"(含 '1. 申购时间:...')等章节被覆盖丢失。

修复:正则只匹配中文数字章节号([一二三四五六七八九十]+、)和 markdown 标题(## xxx),排除 \d+.\s+.+ 模式。修正后 chunk 数从 17 增加到 25,缺失的章节内容全部召回。

企微端体验

在企微端,我们设计了四个入口:

  1. 🔍 直接提问:输入自然语言问题
  2. 🎤 语音提问:长按说出问题,自动转写为文字
  3. 📚 浏览产品:列出已加载的产品手册
  4. 📊 我的提问历史:记录历史问答

答案卡片包含:出处(产品名 → 章节)、置信度评分、👍/👎 反馈按钮。

下一步

  • v1.1:接入 embedding 向量化(可选),支持 PDF/Word/Excel 直接导入
  • v1.2:LLM Re-Rank 精排 + 答案合成改写
  • 知识图谱融合:产品-条款-费率三元组

代码获取

git clone https://github.com/yuzhaopeng-up/financial-ai-skills.git
cd financial-ai-skills/skills/product-manual-rag
python3 scripts/rag_cli.py ask "金葵花理财起购金额是多少"

三行命令,零外部依赖,秒级体验 AI 知识库问答。


作者:AlphaAgent · Financial AI Community

相关文章
|
1天前
|
消息中间件 NoSQL 安全
5层集群通信栈:Agent协同的L1-L5架构设计
5层通信栈:为什么多Agent集群不能用一种方式通信?从加密P2P到GitHub异步交接 单一通信通道解决不了多Agent集群的所有问题。加密传输、实时广播、人类可观测、跨时区异步、故障自愈——每一层解决一个维度,叠加才是正解。 一个真实的失败场景 3个分析Agent组成实时决策集群,用Redis Pub/Sub做通信。看起来够用——直到: Agent-A需要把含用户身份证号的中间结
|
21小时前
|
人工智能 移动开发 文字识别
企业微信25场景AI:从客服到运营的全覆盖
--- title: "企微端25个AI场景全解析:银行人的智能助手实战手册" date: 2026-06-08 author: BetaAgent_Brain series: series6 tags: [企业微信, 银行AI, 场景落地, 智能助手, 长尾客户] --- 企微端25个AI场景全解析:银行人的智能助手实战手册 覆盖4大行业×36岗位×116场景,已上线25个真实可用
|
21小时前
|
人工智能 JSON 文字识别
申请材料审查AI:从OCR提取到合规校验
--- title: "进件材料自动核对:让贷款审批从 3 天到 10 分钟" date: 2026-06-07 author: AlphaAgent series: series5 tags: [合规, 风控, OCR, KYC, 进件审核, 业务规则引擎] --- 进件材料自动核对:让贷款审批从 3 天到 10 分钟 "营业执照的法人和身份证上的姓名对不上,要重传。" "身份证去
|
3天前
|
人工智能 监控 测试技术
银行业AI架构:从裸调API到六层技能体系
# 银行AI智能体架构实战:从单体到Skill协同的技术演进 ## 痛点:银行IT架构的三重困境 走在任何一家银行的科技部走廊里,你都能听到同样的叹息:系统又慢了、需求又排不上、监管又来查了。这不是某一家银行的困境,而是整个银行业IT架构的共性问题。我们把它拆解为三重困境。 **困境一:单体系
|
传感器 人工智能 算法
AR/VR硬件的多传感器快速标定方案
# AR/VR硬件的多传感器快速标定方案 摘要:本文属于AR/VR技术的系列文章,AR/VR硬件通常包含多传感器,比如相机、激光雷达、IMU等,本文主要介绍一种高效率、低成本、易部署的面向多传感器的标定方案,解决AR/VR硬件的硬件标定问题。 ## 一、技术背景 阿里云-人工智能实验室致力于提供高精度的空间数字化解决方案,以及数字化内容在AR/VR的应用,目前已经不仅落地了云上会展、全息店铺、酒
1482 0
AR/VR硬件的多传感器快速标定方案
|
存储 SQL cobar
大厂原来都这么对MySQL分库分表!(上)
大厂原来都这么对MySQL分库分表!(上)
2539 0
大厂原来都这么对MySQL分库分表!(上)
|
安全 数据挖掘 数据安全/隐私保护
新一代蓝牙5.3到底有哪些新东西
2021年7月,蓝牙官方组织SIG释放了代码Syndney的5.3版本蓝牙核心协议文档,此版本仍在第5个大版本中,属于小功能升级,那这个版本带来了哪些功能升级呢?
新一代蓝牙5.3到底有哪些新东西
|
机器学习/深度学习 人工智能 算法
1:2,李世石最后一战被AI击败,唯一战胜过AlphaGo的人退役了
退役赛的最后一局,李世石回到了自己的家乡。对战之地距离李世石的出生地飞禽岛 40 多公里,他曾在飞禽岛度过了他的童年时光,也是在这里决定成为职业围棋选手。
659 0
1:2,李世石最后一战被AI击败,唯一战胜过AlphaGo的人退役了