• 文档
  • 使用Qdrant和n8n自动化流程

n8n-qdrant

使用 Qdrant 和 n8n 自动化流程,超越简单的 RAG

时间:45分钟难度:中等

本教程展示了如何将 Qdrant 与 n8n 低代码自动化平台结合,以涵盖超出基本检索增强生成 (RAG) 的用例。您将学习如何使用向量搜索进行推荐非结构化大数据分析

在 n8n 中设置 Qdrant

要开始使用 Qdrant 和 n8n,您需要在凭据选项卡中提供 Qdrant 实例凭据。从列表中选择QdrantApi

Qdrant 云

Qdrant Cloud 连接到 n8n

  1. 打开 云仪表板 并选择一个集群。
  2. 集群详细信息中,复制Endpoint地址——这将用作 n8n 中的Qdrant URL
  3. 导航到API 密钥选项卡并复制您的 API 密钥——这将是 n8n 中的API Key

有关演练,请参阅此分步视频指南

本地模式

对于完全本地的实验驱动设置,n8n 的自托管 AI Starter Kit是一个有价值的选择。这是一个用于本地 AI 和低代码开发环境的开源 Docker Compose 模板。

该套件包括一个Qdrant 本地实例。开始使用

  1. 按照存储库中的说明安装 AI Starter Kit。
  2. 使用docker-compose.yml文件中的值填写连接详细信息。

AI Starter Kit 的docker-compose.yml中 Qdrant 的默认配置如下

qdrant:
  image: qdrant/qdrant
  hostname: qdrant
  container_name: qdrant
  networks: ['demo']
  restart: unless-stopped
  ports:
    - 6333:6333
  volumes:
    - qdrant_storage:/qdrant/storage

在此配置中,n8n Qdrant 凭据中的Qdrant URLhttp://qdrant:6333/。要设置本地 Qdrant API 密钥,请将以下行添加到 YAML 文件中

qdrant:
  ...
  volumes:
    - qdrant_storage:/qdrant/storage
  environment:
    - QDRANT_API_KEY=test

保存配置并运行 Starter Kit 后,使用QDRANT_API_KEY值(例如,test)作为API Key,使用http://qdrant:6333/作为Qdrant URL

向量搜索确定对象之间语义相似性的能力通常用于解决模型的幻觉,为基于检索增强生成(RAG)的应用程序提供记忆。然而,向量搜索不仅仅是“知识库”的角色。

向量空间中相似性和不相似性度量的结合将向量搜索扩展到推荐、发现搜索和大规模非结构化数据分析。

overview

推荐

在搜索新音乐、电影、书籍或食物时,我们可能很难准确表达我们想要什么。相反,我们通常通过与我们喜欢或不喜欢的事物示例进行比较来发现新内容。

Qdrant 推荐 API 通过使用正面和负面示例作为锚点,使这些发现搜索成为可能。它有助于根据您的偏好找到新的相关结果。

recommendations

电影推荐

想象一个家庭电影之夜——您已经看了《哈利·波特》666 遍,渴望一部关于年轻巫师的新系列。您最喜欢的流媒体服务反复推荐千年传奇的所有七个部分。沮丧之余,您转向 n8n 创建一个代理电影推荐工具

设置

  1. 数据集:我们使用来自 IMDB Top 1000 Kaggle 数据集的电影描述。
  2. 嵌入模型:我们将使用 OpenAI text-embedding-3-small,但您可以选择任何其他合适的嵌入模型。

工作流程

一个模板代理电影推荐工作流由三部分组成

  1. 电影数据上传器:嵌入电影描述并使用Qdrant 向量存储节点将它们上传到 Qdrant(现在也可以使用n8n 的官方 Qdrant 节点来完成)。在模板工作流中,数据集从 GitHub 获取,但您可以使用任何受支持的存储,例如Google Cloud Storage 节点
  2. AI 代理:使用AI 代理节点根据您的自然语言请求制定推荐 API 调用。选择一个 LLM 作为“大脑”并为由 Qdrant 提供支持的推荐工具定义一个JSON 模式。此模式允许 LLM 将您的请求映射到工具输入格式。
  3. 推荐工具:一个子工作流,它使用HTTP 请求节点调用 Qdrant 推荐 API(现在也可以使用n8n 的官方 Qdrant 节点来完成)。代理从您的聊天消息中提取相关和不相关的电影描述,并将它们传递给工具。工具使用text-embedding-3-small嵌入它们,并使用 Qdrant 推荐 API 获取电影推荐,然后将其传递回代理。

设置它,运行聊天并询问“一些关于巫师但不是哈利·波特的东西”。您会得到什么结果?


如果您想详细了解如何逐步构建此工作流,请观看下面的视频

此推荐场景易于适应任何语言或数据类型(图像、音频、视频)。

大数据分析

将数据映射到反映项目相似性和不相似性关系的向量空间的能力,为数据分析提供了一系列数学工具。

向量搜索专用解决方案旨在处理数十亿个数据点并快速计算它们之间的距离,从而简化大规模聚类、分类、不相似性采样、去重、插值异常检测

这种向量搜索功能与 n8n 等自动化工具的结合,创建了生产级解决方案,能够监控数据时间变化、管理数据漂移并在看似非结构化的数据中发现模式。

一个实际的例子胜过千言万语。让我们看看基于 Qdrant 的异常检测和分类工具,它们旨在由n8n AI 代理节点用于数据分析自动化。

为了使其更有趣,这次我们将重点关注图像数据。

异常检测工具

“异常”的一个定义在将数据点的向量表示投影到 2D 空间后直观地得出——Qdrant webUI提供了此功能。

不属于任何簇的点更有可能是异常的。

anomalies-on-2D

有了这种直觉,就有了构建异常检测工具的秘诀。我们将在农作物异常检测中演示它。Qdrant 将用于

  1. 存储向量化图像。
  2. 为每个作物簇识别一个“中心”(代表)。
  3. 定义每个簇的边界。
  4. 检查新图像是否落在这些边界内。如果图像不适合任何簇,则将其标记为异常。或者,您可以检查图像是否对特定簇异常。

anomaly-detection

设置

  1. 数据集:我们使用 农作物图像分类数据集
  2. 嵌入模型Voyage AI 多模态嵌入模型。它可以将图像和文本数据投影到共享向量空间中。

1. 将图像上传到 Qdrant

由于 Qdrant 向量存储节点不支持预定义列表之外的嵌入模型(不包括 Voyage AI),我们通过 HTTP 请求节点中的直接 API 调用将数据嵌入并上传到 Qdrant。

随着支持任意向量化输入的官方 Qdrant 节点的发布,HTTP 请求节点现在可以被这种原生集成取代。

工作流程

有三个工作流:(1)将图像上传到 Qdrant(2)设置集群中心和阈值(3)异常检测工具本身。

一个1/3 将图像上传到 Qdrant 模板工作流包含以下块

  1. 检查集合:验证 Qdrant 中是否存在指定名称的集合。如果不存在,则创建一个。
  2. Payload Index:在crop_name payload(元数据)字段上添加一个payload 索引。此字段存储作物类别标签,对其进行索引可以提高 Qdrant 中可过滤搜索的速度。它改变了向量索引的构建方式,使其适应过滤约束下的快速向量搜索。有关更多详细信息,请参阅此Qdrant 过滤指南
  3. 获取图像:使用Google Cloud Storage 节点从 Google Cloud Storage 获取图像。
  4. 生成 ID:为每个数据点分配 UUID。
  5. 嵌入图像:使用 Voyage API 嵌入图像。
  6. 批量上传:将嵌入批量上传到 Qdrant。

2. 定义聚类代表

我们根据标记数据的可用性使用了两种方法(这不是一个详尽的列表)来定义聚类代表

方法描述
中心点聚类中距离所有其他聚类点总距离最小的点。此方法需要每个聚类的标记数据。
完美代表由理想聚类成员的文本描述定义的代表——Voyage AI 嵌入的多模态性允许这种技巧。例如,对于樱桃:“中等大小的树上结有细长树枝和锯齿状叶子的小而有光泽的红色水果。” 在向量空间中,最接近此描述的图像被选为代表。此方法需要实验才能使描述与真实数据对齐。

工作流程

这两种方法都在用于异常检测的 2/3 模板工作流中进行了演示。

方法步骤
中心点1. 从 Qdrant 采样标记的聚类点。
2. 使用 Qdrant 的距离矩阵 API计算聚类的成对距离矩阵。此 API 有助于可扩展的聚类分析和数据点关系探索。在此文章中了解更多信息。
3. 对于每个点,计算其到所有其他点的距离之和。总距离最小(或 COSINE 距离度量相似度最高)的点是中心点。
4. 将此点标记为聚类代表。
完美代表1. 定义每个聚类的文本描述(例如,AI 生成)。
2. 使用 Voyage 嵌入这些描述。
3. 找到最接近描述的图像嵌入。
4. 将此图像标记为聚类代表。

3. 定义集群边界

工作流程

用于异常检测的 2/3 模板工作流中演示的方法对两种类型的集群代表都以类似的方式工作。

  1. 在集群中,识别距离集群代表最远的数据点(也可以是第二或第 X 个最远点;定义它的最佳方法是通过实验——对我们来说,第 5 个最远点效果很好)。由于我们使用余弦相似度,这相当于与集群代表的相反(其向量乘以 -1)最相似的点。
  2. 将代表与相应最远点之间的距离保存为集群边界(阈值)。

4. 异常检测工具

工作流程

完成准备步骤后,您可以设置异常检测工具,如异常检测的 3/3 模板工作流所示。

步骤

  1. 选择集群代表定义方法。
  2. 获取所有集群,以比较候选图像。
  3. 使用 Voyage AI,将候选图像嵌入到相同的向量空间中。
  4. 计算候选图像与每个集群代表的相似度。如果相似度低于所有集群的阈值(超出集群边界),则将图像标记为异常。或者,您可以检查它是否对特定集群异常,例如樱桃集群。

图像数据中的异常检测具有多种应用,包括

  • 广告审核。
  • 垂直农业中的异常检测。
  • 食品行业中的质量控制,例如检测咖啡豆中的异常
  • 识别地图切片中的异常,用于自动化地图更新或生态监测等任务。

该工具易于适应这些用例。

分类工具

异常检测工具也可以用于分类,但有一种更简单的方法:K-近邻(KNN)分类。

“告诉我你的朋友是谁,我就会告诉你你是谁。”

KNN-2D

KNN 方法通过分析数据点的已分类邻居并为该点分配邻居中的多数类来标记数据点。这种方法不需要标记所有数据点——一小部分标记示例可以作为锚点,将标签传播到整个数据集。

让我们构建一个基于 KNN 的图像分类工具。

设置

  1. 数据集:我们将使用土地利用场景分类数据集。卫星图像分析在生态学、救援行动和地图更新中都有应用。
  2. 嵌入模型:与异常检测一样,我们将使用Voyage AI 多模态嵌入模型

此外,最好有测试和验证数据来确定数据集的最佳 K 值。

工作流程

将图像上传到 Qdrant 可以使用相同的工作流完成——1/3 将图像上传到 Qdrant 模板工作流,只需交换数据集即可。

KNN 分类工具模板有以下步骤

  1. 嵌入图像:使用 Voyage 嵌入待分类的图像。
  2. 获取邻居:从 Qdrant 检索 K 个最近的标记邻居。
  3. 多数投票:通过简单的多数投票确定邻域中的主要类别。
  4. 可选:解决平局:如果出现平局,则扩展邻域半径。

当然,这是一个简单的解决方案,存在更先进且精度更高,无需标记数据的方法——例如,您可以尝试使用 Qdrant 进行度量学习

尽管分类似乎是几十年前在机器学习中解决的任务,但在生产中处理起来却并非易事。数据漂移、类定义变化、标记错误数据以及类之间模糊差异等问题会带来意想不到的问题,需要持续调整分类器,而向量搜索由于其可扩展性,可能是一种不寻常但有效的解决方案。

现场演练

要了解 n8n 代理如何在实践中使用这些工具,并回顾“大数据分析”部分的主要思想,请观看我们的集成网络研讨会

结论

向量搜索不限于相似性搜索或基本 RAG。当与 n8n 等自动化平台结合时,它成为构建更智能系统的强大工具。想想客户支持中的动态路由、基于用户行为的内容审核或数据监控仪表板中的 AI 驱动警报。

本教程展示了如何使用 Qdrant 和 n8n 进行 AI 支持的推荐、分类和异常检测。但这仅仅是个开始——尝试向量搜索用于

  • 去重
  • 不相似性搜索
  • 多样化采样

有了 Qdrant 和 n8n,有很多空间可以创造独特的东西!

此页面有用吗?

感谢您的反馈!🙏

听到这个消息我们很抱歉。😔 您可以在 GitHub 上编辑此页面,或者创建一个 GitHub 问题。