Mindket

用 Voyage 嵌入作物照片并存进 Qdrant

新上架第 1 版 · 更新于

概览

一个手动启动的 n8n 工作流:它列出 Google Cloud Storage 存储桶里的作物照片,用 Voyage AI 做嵌入。向量被存进一个 Qdrant 集合,每次四张照片。

用 Voyage 嵌入作物照片并存进 Qdrant 是一款 n8n 工作流,属于开发类,由 Mindket 上架。可免费获取。当前为第 1 版,最近更新于 。在本页下载,或复制它的 JSON,再导入 n8n 画布。在 n8n 里启用之前,它不会运行。

速览

用在
  • n8n Cloud:在那里新建一个工作流,把文件导入进去
  • 你自己的 n8n 服务器:同一个文件,同样的步骤
  • Qdrant Cloud 或你自己的 Qdrant:存放向量的集合
  • 另一个存储桶或文件夹:改存储桶名称和前缀,就能载入另一套图片

平台

连接 3 个应用

运行方式

触发

手动运行

你点 Execute workflow 时开始运行,要在两个节点里设这些值:

  • Qdrant 集群地址、集合名称、向量维度和批大小,设在 Qdrant cluster variables 里
  • 存储桶名称和文件夹前缀,设在 Google Cloud Storage 里

动作

  1. 先问 Qdrant 集合是否存在,不存在就创建,并在作物名称上建一个关键字索引
  2. 列出 Google Cloud Storage 存储桶里文件夹前缀下的每个对象
  3. 为每张照片算出公开链接和作物名称,作物名称取自所在的文件夹,番茄的照片被丢掉
  4. 照片按四张一批分组,每张照片得到一个 UUID
  5. Voyage AI 把每一批变成嵌入向量
  6. 向量作为点存进 Qdrant,带着作物名称和链接

结果

一个 Qdrant 集合,每张照片一个点,里面有它的向量、作物名称和链接

集成

开始之前要准备好这些。

Qdrant

向量数据库

把照片向量存成带命名向量 voyage 的点,集合和索引缺失时也由它创建。

需要Qdrant 集群地址和 API 密钥,放在一个 Qdrant API 凭据里

Voyage AI

嵌入模型

用 voyage-multimodal-3 根据公开地址把每张照片变成向量。

需要Voyage AI API 密钥,放在一个 Header Auth 凭据里

Google Cloud Storage

照片存储

列出存储桶里某个文件夹前缀下的对象,这些对象就是照片。

需要Google Cloud 账号,放在一个 Google Cloud Storage 凭据里

工作流检查

由 Mindket 于 2026年11月13日检查

步骤
13 个步骤,手动启动
AI
没有步骤调用 AI 模型
登录
需要登录:Qdrant、Google Cloud Storage、api.voyageai.com
API 密钥
文件里没有留下 API 密钥
步骤类型
Mindket 的检查器能读懂它全部 7 种步骤类型

以上内容读自工作流文件,并非实际运行的结果。

关于

它是什么

这个 n8n 工作流往一个 Qdrant 集合里填入图片向量。手动触发器启动它。它先检查集合是否存在,不存在就创建,并在 crop_name 上建一个索引。接着列出 Google Cloud Storage 存储桶里的照片,跳过番茄文件夹,每次四张地向 Voyage AI 要每张照片的嵌入向量。每张照片成为一个点,带着作物名称和地址。干活的是十三个节点,旁边还有十二张便签解释各个步骤。

适合谁

想在向量数据库里建一个带标签的图片集合,用于搜索、分类或异常检查的开发者和数据团队。如果你的图片是私密的,就别选它。Voyage 从公开地址下载每张照片,所以存储桶里的文件必须不用登录就能读取。

谁在用,怎么用
行业谁在用怎么用例子
农业数据团队为带标签的作物照片建索引,供以后分类用一个团队载入按作物分文件夹的照片,比如黄瓜和小麦。
电商目录工程师为按类别分好的商品建一个图片索引一位工程师从以各个类别命名的文件夹里载入商品照片。
机器学习机器学习工程师为最近邻测试准备一个带标签的集合一位工程师每个类别载入一个文件夹,并在这些点上测试分类器。
研究分析师把图片数据集放进向量数据库,按含义搜索一位分析师把照片和它们的文件夹名称一起放在一个集合里。

你需要会一点 n8n,也要懂一点云服务:三个凭据、一个公开的存储桶和一个 Qdrant 集群。

用在哪里

任何能访问 Qdrant、Voyage AI 和 Google Cloud Storage 的 n8n 都能运行它。Qdrant 可以是云端集群,也可以是你自己的服务器。

  • n8n Cloud:在那里新建一个工作流,把文件导入进去
  • 你自己的 n8n 服务器:同一个文件,同样的步骤
  • Qdrant Cloud 或你自己的 Qdrant:存放向量的集合
  • 另一个存储桶或文件夹:改存储桶名称和前缀,就能载入另一套图片

设置

点“下载”会把一个压缩包存到你的下载文件夹,里面有 workflow.json 和 Mindket 写的设置说明。这里涉及四个账号。

先准备好这些
需要说明
n8nn8n Cloud 或你自己的服务器
Qdrant一个集群,有地址和 API 密钥,放在一个 Qdrant API 凭据里
Voyage AI一个 API 密钥,放在一个 Header Auth 凭据里,名称为 Authorization,值是 Bearer 加你的密钥
Google Cloud Storage一个存储桶,里面是按类别分文件夹的公开图片,还有一个 Google Cloud Storage 凭据
  1. 在 n8n 里新建一个工作流,打开它的菜单,选 Import from File,选中 workflow.json。
  2. 添加 Qdrant API 凭据,在调用 Qdrant 的四个节点里选中它:Check Qdrant Collection Existence、Create Qdrant Collection、Payload index on crop_name 和 Batch Upload to Qdrant。
  3. 添加 Voyage 的 Header Auth 凭据,在 Embed crop image 里选中它。
  4. 添加一个 Google Cloud Storage 凭据。在 Google Cloud Storage 里选中它,把 <YOUR_BUCKET_NAME> 换成你的存储桶,并把 prefix 设为放着各类别文件夹的那个文件夹。
  5. 打开 Qdrant cluster variables,把 <YOUR_QDRANT_CLUSTER_URL> 换成你的集群地址。检查集合名称、批大小 4 和向量维度 1024。
  6. 看一下 Filtering out tomato to test anomalies。它故意跳过番茄文件夹,所以如果想要每个类别,就删掉它或改一改。
  7. 点 Execute workflow。

如何使用

点 Execute workflow。运行时集合缺失就创建,列出存储桶,分批嵌入照片并保存。每个集合只运行一次,因为再运行一次会把每张照片再存一遍。

想要不同的效果,改这里
要改的在哪里改
存储桶和文件夹Google Cloud Storage 里的 bucketName 和 prefix
集合、批大小和向量维度Qdrant cluster variables 里的值
被跳过的文件夹Filtering out tomato to test anomalies 里的条件
每张照片附带保存的字段Batches in the API's format 里的 batchPayloadQdrant
嵌入模型Embed crop image 里的 model,向量维度要跟着改

示例

一个存储桶里有 agricultural-crops/cucumber/ 和 agricultural-crops/wheat/,每个里面有几张照片,另外还有一个 tomato 文件夹。

运行会跳过番茄的照片。其他每张照片都成为集合里的一个点,带着向量 voyage、一个像 cucumber 这样的 crop_name,以及指向这张照片的 image_path。

新手与专家

新手:n8n 把工作流画成用线连起来的方框,每个方框是一个节点,只做一件事。这个工作流有两个阶段。第一阶段准备 Qdrant 集合。第二阶段把照片变成向量并保存。先在一个有十张照片的存储桶上试试。

专家:Qdrant 和 Voyage 都用普通的 HTTP Request 节点调用,所以命名向量 voyage 和批量点的格式都由你掌握。

值得细看的地方
节点做什么要知道的
Check Qdrant Collection Existence问 Qdrant 集合是否存在If collection exists 读取 result.exists
Create Qdrant Collection创建集合,带一个命名向量,用 Cosine 距离向量维度要和模型一致,文件里的模型是 1024
Payload index on crop_name在 crop_name 上加一个关键字索引以后要统计每种作物的照片数,就需要这个索引
Batch Upload to Qdrant按批量格式保存 id、向量和 payloadid 就是 Code 节点里生成的 UUID

注意事项

分批的步骤改用 JavaScript 重写了,再运行一次会把每张照片再存一遍。

  • 代码:原来的分批步骤是一个 Python Code 节点。在 n8n 2 里,原生 Python 没有 _input,也会拦住 uuid 这样的标准库导入,除非实例允许(n8n 文档,2026 年 11 月 12 日查阅)。Mindket 的版本用 JavaScript 做同样的事
  • 再次运行:UUID 每次运行都是随机的,所以再运行一次会把每张照片作为新点再加一遍
  • 公开照片:Voyage 从地址取每张图片。它的文档(2026 年 11 月 12 日查阅)允许 PNG、JPEG、WEBP 和 GIF,最大 20 MB、1600 万像素
  • 模型:文件里用的是 voyage-multimodal-3,那份文档仍把它列为推荐模型
  • 调用次数:批大小为 4 时,一百张照片会调用 Voyage 25 次、Qdrant 25 次
  • 你的数据:照片地址发给 Voyage,地址和作物名称发给 Qdrant。文件里没有任何凭据

README 和文件

README

用 Voyage 嵌入作物照片并存进 Qdrant

一个手动启动的 n8n 工作流。它列出 Google Cloud Storage 存储桶里的作物照片,用 Voyage AI 把每张照片变成嵌入向量,再把向量存进一个 Qdrant 集合,每次四张照片。

包里有什么

  • workflow.json:n8n 导出的工作流,二十五个节点。十三个干活,十二个是便签,解释各个步骤。里面没有任何凭据。
  • README.md:这份设置说明,压缩包里的是英文版。

我们相对原来的副本改了什么

  • 把照片分批并给每张照片一个 UUID 的步骤原来是一个 Python Code 节点。在 n8n 2 里,原生 Python 只提供 _items 和 _item,没有 _input,也会拦住 uuid 这样的标准库导入,除非实例允许(n8n 文档,2026 年 11 月 12 日查阅)。Mindket 的版本用 JavaScript 做同样的事。
  • Qdrant 集群地址和存储桶名称原来属于原作者。它们现在是占位符 <YOUR_QDRANT_CLUSTER_URL> 和 <YOUR_BUCKET_NAME>。
  • 有几个节点原来关联着作者 n8n 里的凭据。这些关联已删掉,请选你自己的。
  • 别的都没改。番茄过滤、批大小和便签都是文件原有的。

开始之前

  • 一个 n8n 实例,n8n Cloud 或自己的服务器都行。
  • 一个 Qdrant 集群,用 Qdrant Cloud 或自己的服务器都行,要有它的地址和一个 API 密钥。
  • 一个 Voyage AI API 密钥。
  • 一个 Google Cloud Storage 存储桶,里面的图片任何人不用登录就能读取,并按类别分文件夹,比如 agricultural-crops/cucumber/photo-1.jpg。Voyage 会从地址下载每张图片。

设置

  1. 在 n8n 里新建一个工作流,打开它的菜单,选 Import from File,选中 workflow.json。
  2. 添加一个 Qdrant API 凭据,填上你的集群地址和密钥。在 Check Qdrant Collection Existence、Create Qdrant Collection、Payload index on crop_name 和 Batch Upload to Qdrant 里选中它。
  3. 为 Voyage 添加一个 Header Auth 凭据。名称填 Authorization,值填 Bearer <YOUR_VOYAGE_KEY>,换成你自己的密钥。在 Embed crop image 里选中它。
  4. 添加一个 Google Cloud Storage 凭据,在 Google Cloud Storage 里选中它。
  5. 在那个节点里,把 <YOUR_BUCKET_NAME> 换成你的存储桶。把 prefix 设为放着各类别文件夹的那个文件夹。文件里用的是 agricultural-crops。
  6. 打开 Qdrant cluster variables,把 <YOUR_QDRANT_CLUSTER_URL> 换成你的集群地址,前面带 https://,结尾不要斜杠。检查集合名称、批大小 4 和向量维度 1024。
  7. 看一下 Filtering out tomato to test anomalies。它故意跳过番茄文件夹。如果想要每个类别,就删掉这个节点或改一改。
  8. 点 Execute workflow。

一次运行的过程

  1. 你点 Execute workflow 时,手动触发器启动这次运行,Qdrant cluster variables 设好集群地址、集合名称、向量维度和批大小。
  2. Check Qdrant Collection Existence(HTTP Request 4.2)问 Qdrant 集合是否存在,If collection exists 读取回答。
  3. 如果不存在,Create Qdrant Collection 就创建它,带一个命名向量 voyage,用 Cosine 距离比较。随后 Payload index on crop_name 在 crop_name 字段上加一个关键字索引。
  4. Google Cloud Storage 列出前缀下的每个对象。Get fields for Qdrant 为每张照片生成一个 publicLink,并从它所在的文件夹取出 cropName。
  5. Filtering out tomato to test anomalies 丢掉番茄的照片。
  6. 一个 Code 节点按 batchSize 把照片分批,并给每张照片一个 UUID,因为 Qdrant 不会自己生成点 id。Batches in the API's format 把每一批整理成 Voyage 和 Qdrant 各自要的格式。
  7. Embed crop image 把一批照片发给 Voyage 的多模态嵌入 API,模型是 voyage-multimodal-3,input_type 设为 document。Batch Upload to Qdrant 把这一批连同 id、向量和 payload 一起保存。

改变结果

  • 存储桶和文件夹:Google Cloud Storage 里的 bucketName 和 prefix。
  • 集合、批大小和向量维度:Qdrant cluster variables 里的值。
  • 被跳过的文件夹:Filtering out tomato to test anomalies 里的条件。
  • 每张照片附带保存的字段:Batches in the API's format 里的 batchPayloadQdrant。
  • 嵌入模型:Embed crop image 里的 model。向量维度要跟着改,并换一个新集合。

注意事项

  • 每个集合只运行一次。UUID 每次运行都是随机的,所以再运行一次会把每张照片作为新点再存一遍。
  • Voyage 从地址取每张图片,所以文件必须是公开的。Voyage 的文档(2026 年 11 月 12 日查阅)说图片必须是 PNG、JPEG、WEBP 或 GIF,最大 20 MB、1600 万像素。它的地址还必须返回内容长度,并遵守 robots.txt。
  • 文件里用的是 voyage-multimodal-3,那份文档仍把它列为推荐模型。
  • 批大小为 4 时,一百张照片会调用 Voyage 25 次、Qdrant 25 次。
  • Voyage 按你的密钥计费嵌入,Qdrant 把向量存在你的集群里。
  • 每张照片的公开地址会发给 Voyage,地址和作物名称会发给 Qdrant。
  • 文件里没有任何凭据和密钥。
文件
NOTICE.md  749 B
README.md  5 KB
workflow.json  22 KB

3 个文件,共 27 KB,以 zip 压缩包下载。

更新内容

  • 第 1 版 · 2026-11-12

评价

还没有评分

写评价

还没有评价。

Mindket 的更多商品

查看 Mindket 的全部商品

anaksor-ocr

Sokheng · 工具包

这个模型从文档、收据和路牌照片里读取高棉语和英语文字,用一个检测器找文本行,再用识别器读每一行。适合需要在 Python 里做高棉语 OCR 的开发者。

新上架

Qwen2.5-7B-Instruct-GGUF

Qwen · 工具包

Qwen2.5-7B-Instruct 的 GGUF 文件,提供八种量化大小,可通过 llama.cpp 在本地聊天。适合想在自己电脑上用 7.6B 强力模型、又不想搭 Python 环境的人。

新上架

ACE-Step 1.5 XL SFT

ACE-Step · 工具包

用 4B 扩散解码器根据文字生成音乐,50 步并带引导控制,音频质量高于基础版。适合拥有 12 GB 或更多显存 GPU 的创作者。

新上架

开发类的相似商品

查看开发类的全部商品

Claude Code Skills & Plugins

alirezarezvani · 技能

为 Claude Code 和其他编程智能体提供 411 个现成技能,按角色分组,从工程、产品到营销、财务和合规。以插件方式安装。适合开发者和业务团队。

新上架29.8k

buzz

block · 工具包

可自行托管的工作空间,人和 AI 智能体在同样的房间里协作,基于 Nostr 中继,把每个动作记录为签名事件。适合想自己运行中继的团队。

新上架37.3k

plannotator

backnotprop · 工具包

把你的 AI 编程智能体的计划、规格和代码改动在浏览器里打开,让你加批注或评论,并把反馈直接发回给智能体。

新上架10.5k