RAG 与向量数据库:从键值存储到语义检索的直观理解

4 阅读1分钟

起因

没有理解透RAG中用向量数据库存数据这个直观的。传统后端用数据库存数据的时候能用DataGrip这些工具可视化数据,非常清晰明确,用向量数据库没有这么直观的感受。比如说key-value这种结构存之后是什么样的。

现在的理解

向量数据库最大的特点就是比普通表多一列超长数字数组(向量)。

普通业务表:
user_id  ->  { name, age, city }

RAG 向量表:
chunk_id ->  { text, metadata, embedding }

举例

key = chunk_001
value = {
  text: "RAG 会先检索相关知识,再生成回答。",
  metadata: {"doc": "rag.md", "page": 1},
  embedding: [0.12, -0.48, 0.77, ...]
}

chunk_001
   │
   ├─ 原文:给 LLM 阅读、最终引用
   ├─ 元数据:过滤用,例如来源、页码、用户权限
   └─ 向量:只负责“找得像不像”