N8N中文教程
高级 AI/Examples_and_concepts

什么是向量数据库?#

向量数据库以数字形式存储信息:

向量数据库是一种将数据存储为高维向量的数据库,这些向量是特征或属性的数学表示。(来源)

这使得快速且准确的相似性搜索成为可能。使用向量数据库时,你不再依赖传统的数据库查询方式,而是可以根据语义和上下文含义来查找相关数据。

简化示例#

一个向量数据库可以存储句子:“n8n 是一个可自行托管的源码可用自动化工具”,但它并不以文本形式存储,而是存储一组代表其特征的维度数组(0 到 1 之间的数值)。这并不是指把句子中的每个字母转换成数字,而是说向量数据库中的向量是对该句子的描述。

假设在某个向量存储中,0.1 表示“自动化工具”(automation tool),0.2 表示“源码可用”(source available),0.3 表示“可自行托管”(can be self-hosted)。那么最终可能得到如下向量:

句子向量(维度数组)
n8n 是一个可自行托管的源码可用自动化工具[0.1, 0.2, 0.3]
Zapier 是一个自动化工具[0.1]
Make 是一个自动化工具[0.1]
Confluence 是一个可自行托管的 Wiki 工具[0.3]

这个例子非常简化。

实际上,向量要复杂得多。一个向量的维度可以从几十到数千不等。各个维度与具体特征之间并非一一对应关系,因此你无法直接将单个维度翻译为单一概念。此示例仅提供一个近似的思维模型,而非真实的技术理解。

展示相似性搜索的强大功能#

Qdrant 提供了 向量搜索演示 来帮助用户理解向量数据库的能力。其中的 美食发现演示 展示了向量数据库如何基于视觉相似性匹配图片。

此演示使用了来自配送服务的数据。用户可以对某道菜的照片点赞或点踩,应用程序会根据菜肴的外观推荐更相似的菜品。还可以选择仅查看配送范围内餐厅的结果。(来源)

如需完整技术细节,请参考 Qdrant demo-food-discovery GitHub 仓库。

嵌入(Embeddings)、检索器(Retrievers)、文本分割器(Text Splitters)和文档加载器(Document Loaders)#

向量数据库需要其他工具协同工作:

  • 文档加载器和文本分割器:文档加载器用于导入文档和数据,并将其准备用于嵌入。文档加载器可结合文本分割器将文档切分为多个片段(chunks)。
  • 嵌入(Embeddings):这类工具负责将数据(如文本、图像等)转化为向量,或将向量还原为原始数据。请注意,n8n 目前仅支持文本嵌入(text embeddings)。
  • 检索器(Retrievers):检索器用于从向量数据库中提取文档。你需要将其与一个嵌入模型配对,以便将向量重新转换回可读数据。