从文本 RAG 到多模态企业智能体:Box 与 Gemini Embeddings 2 的架构演进

2026-08-19 30 预计阅读时间: 1 分钟
来源: cloud.google.com AI 摘要 Original link

Disclaimer: This article is an AI-assisted summary. Read it together with the original source when precision matters. The summary may omit context, version differences, or edge cases and is not official documentation.

预计阅读时间:11 分钟

企业内容从来不只有文字。财务模型依赖表格的行列关系,临床报告同时包含照片和病理图像,工程文档用流程图表达系统逻辑,合同中的关键信息还可能藏在扫描页和批注框里。

Box 与 Google Cloud 正在把 Gemini Multimodal Embeddings 2 集成到 Box Agentic Platform。关键变化不是简单增加一种搜索模型,而是让文本、文档页面、表格渲染图、图表和普通图片进入统一的语义向量空间,使企业智能体能够检索并交叉验证过去容易丢失的视觉与空间信息。

文本 RAG 为什么会在复杂文档上失真

传统 RAG 通常先提取文本,再按字符数或 token 数切块。处理普通报告正文时,这套方法已经相当有效;一旦内容的含义依赖版面,扁平化文本就会破坏证据结构。

以财务表格为例,下面三个值只有在保留列标题、行标题和单位后才有意义:

Revenue    120    148
Margin     18%    21%

如果解析器把标题、数字和脚注拆进不同文本块,检索系统可能找到 21%,却无法可靠回答它属于哪个年份、哪个业务单元,或者这个数字是否经过调整。

多模态嵌入提供了另一种表示路径:直接对页面渲染结果、图表或表格图像建立向量,同时保留文件、页码、区域坐标和原始文本等元数据。这样做带来三项能力:

  • 保留空间关系:行列、视觉层级、批注框和图例不再只是无序字符串。
  • 支持跨模态检索:自然语言问题可以召回幻灯片中的图表,图片也可以反向关联文字说明。
  • 连接异构文件:PDF 政策、Excel 跟踪表、PPT 汇报和 PNG 宣传物料可以进入同一检索流程。

统一向量空间并不意味着可以丢掉 OCR、文档解析和结构化元数据。实际系统仍需保存原始文件、证据位置和权限信息,因为向量负责召回相似内容,而不是充当最终事实来源。

多模态智能体的三个高价值模式

财务分析:让数字重新回到表格和图表中

财务、审计和研究团队经常需要回答:某个指标来自哪一页、图表趋势是否支持管理层摘要、脚注是否改变了指标口径。

多模态检索可以把书面说明、财务矩阵和趋势图放入同一个候选集合。智能体随后比较文本主张与视觉证据,例如发现报告声称增长加速,但折线图显示最近两个季度已经放缓。

这里最重要的输出不是一段流畅总结,而是可定位的证据:文件版本、页码、表格区域、单位和脚注都应随答案返回。

临床辅助:跨越照片、病理图像和风险矩阵

临床资料可能同时包括外部症状照片、显微病理图像、实验室报告和分诊网格。多模态索引能够把这些内容放进统一的候选空间,帮助系统检索相关视觉模式,并与风险框架交叉参考。

但这类系统只能定位为决策支持。嵌入相似度不是诊断结论,视觉召回也不能替代经验证的医学模型、医生复核和紧急处置流程。上线时必须记录模型版本、输入证据、输出引用和人工审批结果。

跨文档核对:主动发现业务冲突

企业风险常常存在于文件之间,而不是单个文件内部。例如,最新 Excel 价目表已经更新,宣传图片仍显示旧价格;签署版 PDF 合同缺少法务邮件要求增加的条款;会议纪要中的日期与项目计划不一致。

多模态智能体可以先跨格式召回相关证据,再执行字段抽取、版本比较和冲突判断。这个模式比单纯的问答更接近可执行工作流:发现矛盾后创建审查任务,而不是直接修改受控内容。

可以这样实践:按证据单元设计索引

下面的配置是一个可改造的示例,并非 Box 或 Gemini 的官方接口定义。它展示了如何把页面、表格、图表和权限元数据组织成可审计的摄取流程。

# ingestion.yaml
collection: quarterly-reporting
embedding_model: gemini-embeddings-2

inputs:
  - path: reports/q4-report.pdf
    render_pages: true
    extract_text: true
    evidence_units:
      - page
      - table
      - chart

  - path: finance/latest-pricing.xlsx
    render_sheets: true
    extract_cells: true
    evidence_units:
      - sheet
      - table_range

metadata:
  required:
    - document_id
    - version_id
    - mime_type
    - page_or_sheet
    - bounding_region
    - source_hash
    - access_policy_id

retrieval:
  candidate_count: 40
  rerank_count: 8
  require_permission_filter: true
  return_evidence_location: true

索引粒度不宜固定为整份文件,也不应退回任意 token 切块。可以把一页、一个表格区域或一张图表作为证据单元,再通过 document_id 和位置元数据恢复上下文。对于跨页流程图,还需要建立相邻页或父子区域关系。

检索质量必须通过任务级基准验证。下面的 Python 脚本可直接运行,用于计算多模态检索结果的 Recall@k 和证据位置命中率。示例结果是内置数据;接入真实系统时,只需把 ranked_ids 替换为检索服务返回的证据 ID。

# evaluate_retrieval.py
CASES = [
    {
        'query': '哪张图显示最近两个季度的利润率下降?',
        'relevant_ids': {'report:p12:chart-2'},
        'ranked_ids': [
            'report:p3:text-1',
            'report:p12:chart-2',
            'workbook:margin:table-1',
        ],
    },
    {
        'query': '宣传页价格是否与最新价目表一致?',
        'relevant_ids': {
            'flyer:p1:price-box',
            'pricing:sheet1:range-b4-c8',
        },
        'ranked_ids': [
            'flyer:p1:price-box',
            'pricing:sheet1:range-b4-c8',
            'email:pricing-update:text-1',
        ],
    },
]


def evaluate(cases, k=3):
    recalls = []
    exact_evidence_hits = 0

    for case in cases:
        expected = case['relevant_ids']
        retrieved = set(case['ranked_ids'][:k])
        recalls.append(len(expected & retrieved) / len(expected))
        exact_evidence_hits += int(expected <= retrieved)

    return {
        f'recall@{k}': sum(recalls) / len(recalls),
        'complete_evidence_rate': exact_evidence_hits / len(cases),
    }


if __name__ == '__main__':
    metrics = evaluate(CASES, k=3)
    for name, value in metrics.items():
        print(f'{name}: {value:.2%}')

运行命令:

python evaluate_retrieval.py

这组内置数据会得到 100% 的结果,仅用于验证脚本。真实评测集应包含难例,例如相似图表、旧版本文件、扫描质量较差的页面、同名指标、不同币种以及用户无权访问的正确答案。除了 Recall,还应测量错误引用率、权限泄漏率、版本新鲜度和端到端回答准确率。

从搜索升级为智能体时要守住的边界

多模态嵌入解决的是表示与召回问题,不会自动解决权限、事实核验和自动执行风险。生产架构至少应包含以下控制:

  • 在向量召回前或召回过程中执行用户级权限过滤,不能只在生成答案后隐藏引用。
  • 保存文件版本、内容哈希、页码或区域坐标,让每个结论都能回到原始证据。
  • 对冲突检测、合同审查和临床辅助设置置信度阈值与人工审批。
  • 分别评测文本到视觉、视觉到文本、跨文件核对和布局敏感检索,避免平均指标掩盖薄弱模态。
  • 为删除、权限变更和新版本建立索引同步机制,防止智能体继续引用过期内容。
  • 限制智能体的写入权限,把发现问题、提出建议和执行变更拆成不同授权步骤。

Box 与 Gemini Embeddings 2 所代表的架构变化,是把企业内容库从被动文件存储升级为受治理的语义证据层。真正决定效果的并不只是嵌入模型,而是证据单元设计、权限继承、精度基准、版本治理和人工审批能否一起工作。对于金融、生命科学和法务等高复杂度场景,多模态理解正在从增强功能变成基础能力,但它必须与可审计性同时落地。


相关推荐