客户案例
生产环境中的文档 AI 部署。客户名称按保密要求匿名,仅以行业与规模描述替代。 本页每一个数字都来自我们实际运维的索引,实测所得,非估算、非四舍五入。
25 年上市公司披露文件,一个可检索索引
资本市场 · 投研与投资者关系场景 · 生产环境部署
项目概览
| 行业 | 资本市场 — 投研与投资者关系 |
|---|---|
| 覆盖范围 | 2 家上市发行人 · 25 个报告年度(2001 年 6 月 – 2026 年 8 月) |
| 文档量 | 859 份 — 发行人披露文件 632 份、券商研报 227 份 |
| 格式分布 | PDF 673 · HTML 112 · DOCX 74 |
| 索引规模 | 36,395 个切片 · 约 3,519 万字符 |
| 研报覆盖 | 227 份研报来自 25 家机构 · 投资者关系活动记录 112 份 |
| 结构化产出 | 457 条财务指标入库可查,每条均可追溯到来源文件 |
| 部署方式 | 全私有化部署 · 语料目录只读挂载 · Qwen3-Embedding-4B 向量,磁盘缓存 158 MB |
上线前的问题
分析师需要的答案常常横跨四分之一个世纪:把 2008 年的报表附注与 2026 年的半年报对照着读, 把券商观点与发行人自述对照着读。人工做法是每个问题打开几十份 PDF,最早的年报还经常解析不出来, 数字要从表格里手工抄录,事后也无法回溯来源。
我们做了什么
- 基于内容哈希的幂等导入:重跑自动跳过未变更文件,失败文件重试且不产生重复登记,语料目录全程只读、不被修改。
- 分层路由:发行人披露、券商研报、投资者关系记录分别按各自的规则处理,而不是摊成一个文档堆。
- 混合检索:BM25 与稠密向量用 RRF 融合,再经 Cross-Encoder 精排。
- 时间窗口配合机构锚定与年份感知的查询解析:问到"某机构怎么看"时,窗口之外的研报同样进入候选集。
- 表格抽取进结构化指标库:营收、净利润这类问题直接由规范化数字作答,而不是从段落里猜。
- 分层自适应生成:数字直查只送 top-1 上下文,分析型问题送 top-3,复合问句拆分后再交错合并。
实测结果
| 指标 | 实测值 |
|---|---|
| 导入成功率 | 859 / 859 份,0 失败 |
| 检索命中率(10 问冒烟,发行人 A,17,590 切片) | 10 / 10 |
| 检索命中率(10 问冒烟,发行人 B,18,805 切片) | 10 / 10 |
| 10 问冒烟整轮耗时(发行人 B,纯关键词模式,含索引加载) | 4.6 秒 |
| 时间过滤后的候选集(发行人 A) | 17,590 → 829 切片,95.3% 的索引作为窗口外噪声被排除 |
| 时间过滤后的候选集(发行人 B) | 18,805 → 827 切片,95.6% 被排除 |
| 老旧 PDF 修复(2001–2010 年文件) | 约 5% 解析为 0 页,系尾部交叉引用表损坏;已自动修复,无需人工处理 |
| 抽取入库的财务指标 | 457 条 |
口径说明:文档数与切片数取自导入登记簿;命中率与候选集规模取自随部署一同提供的 10 问检索冒烟脚本, 在关闭向量检索、仅保留关键词检索的模式下运行;耗时覆盖进程启动、索引加载与全部 10 个查询, 测试环境为本地工作站。
踩过的坑,以及怎么修的
长周期语料出的问题,演示语料永远不会出。以下五个问题都在生产环境中真实发生过,每一项修复都配了回归用例。
| 现象 | 根因 | 修复 |
|---|---|---|
| 早于时间窗口的券商研报永远检索不到 | 默认 400 天窗口以库内最新报告为锚点,把较早的覆盖排除在外 | 机构锚定:查询中点名机构时,该机构全部研报无条件进入候选集 |
| 投资者关系活动记录从未入库 | 文件名分类器不识别该类别,直接跳过 | 扩展分类器,把投资者关系记录路由进披露层,并补回归用例 |
| 口语化提问返回不相关章节 | "赚了多少""分红"与财报规范表述"净利润""利润分配"之间存在词汇鸿沟 | 同义词以追加方式扩展查询,不替换原词,原词仍可命中 |
| 检索质量下降但没有任何报错 | 向量缓存不完整或重启漏传开关时,稠密检索静默降级为纯关键词 | 加载时校验缓存完整性,并用模型一致性键在更换模型时自动作废缓存 |
| 资产负债表数字粘连成一串 | PDF 表格单元格在抽取时合并,出现 3,294,053.003,320,386.00 这类字符串 |
在生成层做数字拆分与表格标签清洗,检索层与向量缓存保持不动,避免全量重嵌 |
公开基准数据
以下为我们自有流水线的实测值,完整方法见性能评测页
| 指标 | 实测值 |
|---|---|
| 443 页 OFD 端到端处理 | 124 秒 |
| 三层解析质检总分 | 0.924 |
| 表格结构误检 | 收敛 64% |
| 图片 token 成本节省(GPT-4o 口径) | 85.9% |