n8n向量质心计算工作流 - 自动化数据处理解决方案
n8n工作流,向量计算,质心算法,数据处理自动化,AI应用,Webhook集成

n8n工作流:计算向量集合的质心

概述

此工作流接收JSON格式的向量数组,验证所有向量是否具有相同的维度,并计算质心。它被设计为可在不同项目中重复使用。

工作流结构
节点及其功能:

接收向量(Webhook):接受包含向量数组的GET请求,参数为vectors。

预期输入:JSON格式的vectors参数。
示例请求:/webhook/centroid?vectors=[[2,3,4],[4,5,6],[6,7,8]]
输出:将接收到的数据传递给下一个节点。

提取和解析向量(Set节点):将输入字符串转换为适当的JSON数组进行处理。

确保vectors是有效的数组。
如果参数缺失,可能会生成错误。
预期输出示例:
{
“vectors”: [[2,3,4],[4,5,6],[6,7,8]]
}

验证和计算质心(Code节点):验证向量维度并计算质心。

验证:确保所有向量具有相同数量的维度。
计算:对每个维度求平均值以确定质心。
如果验证失败:返回指示维度不一致的错误消息。
成功输出示例:
{
“centroid”: [4,5,6]
}

错误输出示例:
{
“error”: “Vectors have inconsistent dimensions.”
}

返回质心响应(Respond to Webhook节点):将最终响应发送回客户端。

如果计算成功,则返回质心。
如果发生错误,则返回描述性错误消息。
示例响应:
{
“centroid”: [4, 5, 6]
}

输入
JSON向量数组,其中每个向量都是数值数组。
示例输入
{
“vectors”: [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
}

设置指南
在n8n中创建新工作流。
添加Webhook节点(接收向量)以接收JSON输入。
添加Set节点(提取和解析向量)以提取和转换数据。
添加Code节点(验证和计算质心)以:
验证维度。
计算质心。
添加Respond to Webhook节点(返回质心响应)以返回结果。
Function节点脚本示例
const input = items[0].json;
const vectors = input.vectors;

if (!Array.isArray(vectors) || vectors.length === 0) {
return [{ json: { error: “Invalid input: Expected an array of vectors.” } }];
}

const dimension = vectors[0].length;
if (!vectors.every(v => v.length === dimension)) {
return [{ json: { error: “Vectors have inconsistent dimensions.” } }];
}

const centroid = new Array(dimension).fill(0);
vectors.forEach(vector => {
vector.forEach((val, index) => {
centroid[index] += val;
});
});

for (let i = 0; i < dimension; i++) {
centroid[i] /= vectors.length;
}

return [{ json: { centroid } }];

测试
使用Postman或n8n UI等工具发送示例输入并验证响应。
修改输入向量以测试不同场景。

此工作流为向量质心计算提供了一个简单而灵活的解决方案,确保验证和可靠性。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。