问题:我的 AWS Q Business Bot 未能理解我的数据

发布: (2025年12月13日 GMT+8 02:43)
5 min read
原文: Dev.to

Source: Dev.to

为什么元数据在 Q Business 中很重要

与需要手动控制向量化、分块和检索的传统 RAG 系统不同,AWS Q Business 会自动完成这些工作。但“自动”并不等于“完美”。

如果缺少元数据,Q 会在以下方面遇到困难:

  • 区分新旧内容的优先级
  • 理解文档类别
  • 将答案限定在特定团队或上下文中
  • 处理具有嵌套层级的 Confluence 页面
  • 管理有版本的文档
  • 区分真实来源与重复副本

最关键的是,Q 可能检索到“看起来相似”但实际上不正确的无关内容。元数据可以解决这个问题。

1. 清洁输入:结构化的数据源

每个数据源都需要:

  • 明确的文件夹/项目层级
  • 能传达含义的文档标题
  • 删除过期的版本
  • 必要时显式标注版本号
  • 合理的分组(S3 前缀 / Confluence 空间)

在 S3 中的示例重构

s3://company-knowledge-base/
  engineering/
    architecture/
      system-overview-v1.pdf
      service-boundaries-v2.md
    apis/
      public-api-spec-v3.yaml
      rate-limiting-rules-v1.pdf
    deployment/
      deployment-checklist-v3.md
      rollback-runbook-v2.md
    troubleshooting/
      common-errors/
        error-catalog-v2.json
        service-x-known-issues.md

  product/
    specs/
      feature-a-spec-v1.pdf
      feature-b-updates-v2.pdf
    roadmaps/
      q4-2025-roadmap.pdf

  operations/
    monitoring/
      alert-guide-v2.md
      oncall-playbook-v1.md
    logs/
      access-logs-structure.json
      application-log-fields.md

  knowledge/
    faq/
      internal-faq-v1.md
    glossary/
      terms-v2.md

仅此一步就将检索准确率提升了约 30%。

2. 元数据:让 Q Business “聪明”的秘密

Q Business 在检索时会参考多个元数据键。

推荐的元数据键

用途
title在排序时覆盖文件名
category帮助分类(例如 “engg.”、 “ops”)
tags多标签提升语义分组
version防止返回过时的答案
updated_at影响新鲜度评分
department支持基于权限的个性化
summary用于排序和二次排序
source-of-truth布尔值;对答案选择有强影响

附加在 S3 对象上的示例元数据

{
  "title": "ABC Execution Workflow",
  "category": "operations",
  "tags": ["abc", "execution", "workflow", "ops"],
  "version": "3.0",
  "updated_at": "2025-10-10",
  "source-of-truth": true,
  "department": "engineering",
  "summary": "Detailed ABC Process execution workflow."
}

这使得 Q 每次都能正确挑选出对应的 ABC 文档。

3. 索引控制:分块、模式与访问

AWS Q Business 会根据文档结构隐式分块,但你可以加以影响:

  • 确保文档包含标题(h1h2h3)、项目符号、编号章节以及清晰的段落。
  • 避免超大密集文本、格式糟糕的 PDF,以及未进行 OCR 的扫描页。

为结构化数据提供模式

{
  "type": "object",
  "properties": {
    "step_name": { "type": "string" },
    "description": { "type": "string" },
    "owner": { "type": "string" },
    "timestamp": { "type": "string" }
  }
}

对日志或其他结构化数据源尤其有用。

我的最终方案——效果惊人

  • 结构清晰的 S3 – 按域 → 模块 → 版本组织。
  • 层级合理的 Confluence – 当页面层级干净时,Q 能理解 “父 → 子 → 子页面”。
  • 基于角色的访问 – 用户根据 IAM 角色获得个性化答案。
  • 定时重新索引 – 每次源数据更新后自动运行。
  • 内容新鲜度 / 同步 – 同步策略与内容更新流程保持一致。

每个文档的元数据

  • title
  • tags
  • category
  • version
  • updated_at
  • summary

我的收获

  • Q 并非真的“零配置”;智能元数据才是关键。
  • 层级和结构比单纯的数量更重要。
  • 新鲜度元数据可以避免产生旧内容的幻觉。
  • source-of-truth: true 的作用极其强大。
  • Q Business 很优秀,但前提是你的输入必须干净。

结论

起初我以为 AWS Q Business 没有检索到正确的数据,实际上是我没有提供合适的结构。修正数据源和元数据后:

  • 检索准确率大幅提升
  • 行业特定的答案变得精准
  • 版本冲突消失
  • 幻觉显著下降

如果你在企业搜索或内部助理中使用 AWS Q Business,元数据和索引策略决定了 AI 的质量。

Back to Blog

相关文章

阅读更多 »