问题:我的 AWS Q Business Bot 未能理解我的数据
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 会根据文档结构隐式分块,但你可以加以影响:
- 确保文档包含标题(
h1、h2、h3)、项目符号、编号章节以及清晰的段落。 - 避免超大密集文本、格式糟糕的 PDF,以及未进行 OCR 的扫描页。
为结构化数据提供模式
{
"type": "object",
"properties": {
"step_name": { "type": "string" },
"description": { "type": "string" },
"owner": { "type": "string" },
"timestamp": { "type": "string" }
}
}
对日志或其他结构化数据源尤其有用。
我的最终方案——效果惊人
- 结构清晰的 S3 – 按域 → 模块 → 版本组织。
- 层级合理的 Confluence – 当页面层级干净时,Q 能理解 “父 → 子 → 子页面”。
- 基于角色的访问 – 用户根据 IAM 角色获得个性化答案。
- 定时重新索引 – 每次源数据更新后自动运行。
- 内容新鲜度 / 同步 – 同步策略与内容更新流程保持一致。
每个文档的元数据
titletagscategoryversionupdated_atsummary
我的收获
- Q 并非真的“零配置”;智能元数据才是关键。
- 层级和结构比单纯的数量更重要。
- 新鲜度元数据可以避免产生旧内容的幻觉。
source-of-truth: true的作用极其强大。- Q Business 很优秀,但前提是你的输入必须干净。
结论
起初我以为 AWS Q Business 没有检索到正确的数据,实际上是我没有提供合适的结构。修正数据源和元数据后:
- 检索准确率大幅提升
- 行业特定的答案变得精准
- 版本冲突消失
- 幻觉显著下降
如果你在企业搜索或内部助理中使用 AWS Q Business,元数据和索引策略决定了 AI 的质量。