跳到正文

向量数据库

Vector Database

高级通用

向量数据库(Vector Database)是存储嵌入向量并按相似度检索数据的数据库。它解决的是“用户说法与资料用词不同,却想找到相关内容”的问题,例如在产品帮助中心查找相近的问题。

你可能会说:「我想让用户用自己的话提问,也能找到帮助中心里措辞不同但意思相关的文章。」

读之前建议先了解(这是一个高级概念)

动手看看

帮助资料资料向量帮助中心向量模型向量库存好资料搜索结果
1

上线前,帮助中心先把「已支付订单如何修改收货地址」等资料交给模型,转成向量存进向量库。

要点

  1. 1

    先把内容变成可比较的向量

    我们先用嵌入模型把文章片段转换成数字向量,再把向量和原文、文章 ID 一起存起来。向量数据库负责保存和检索这些数据,不负责理解原文或生成答案。

  2. 2

    查询时寻找距离较近的内容

    用户提问时,你用同一套嵌入模型把问题转成向量,再查找相近的记录。这样,即使提问和文章没有使用同一个词,也有机会找到相关片段;相近不等于答案一定正确。

  3. 3

    结合筛选条件返回可用结果

    做帮助中心搜索时,你可能只想查当前产品版本的公开文章。可以把版本、可见范围等信息作为筛选条件,并在结果里保留原文和来源,方便后续展示或核对。

容易混淆的地方

嵌入向量是内容转换后的数字表示,向量数据库是存放这些表示并检索相近记录的系统,两者不是一回事。它也不等同于关键词搜索:关键词搜索擅长匹配明确的词,向量检索擅长寻找语义相近的内容;产品里可以把两种结果结合起来。

什么时候用

适合用

  • 做帮助中心搜索时,用户常用自己的说法描述问题,你想从大量文章中找出相关段落。
  • 做基于内部文档的问答工具时,先检索相关片段,再把原文和来源交给模型组织回答。
  • 给用户上传的资料做相似内容推荐时,需要从大量文本片段中找出意思接近的记录。

不适合用

  • 后台按订单号查询订单时,用普通数据库的索引精确查找更直接,不需要把订单号转成向量。
  • 报表要统计每月付款金额时,用数据库查询和聚合更合适,向量相似度不能替你算出准确总额。
  • 资料只有几条,而且只按固定标题查找时,直接用普通查询或关键词匹配就够了。

练一练

你在做产品帮助中心。用户输入的问题常与文章标题用词不同,但你仍想找出相关段落,并且只展示当前版本的文章。你会选哪种做法?

让 AI 帮你做

请为帮助中心设计向量数据库检索:按文章段落建立嵌入向量,保存原文、文章 ID 和产品版本;查询时检索相近段落并按版本筛选,返回内容与来源。请说明更新文章时如何同步数据,以及怎样验证检索结果。

接下来学什么