Files
agent-park/n8n-workflows
mzaxdandClaude 02cbe59a0c feat: 实现 AI 智能搜索功能
添加语义搜索能力,支持自然语言查询找到相关项目。

- 数据库:新增 embedding 字段用于向量存储
- 前端:新增 AI 搜索栏和结果组件,支持传统/AI 模式切换
- API:新增 /api/search/ai 端点处理语义搜索请求
- 国际化:添加 AI 搜索相关中英文翻译
- 探索任务:允许 FAILED 状态直接转到 IN_PROGRESS 简化重试

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-26 20:59:13 +08:00
..
2026-01-26 20:59:13 +08:00

n8n 工作流导入指南

本指南将帮助您导入和配置 AI 智能搜索系统的两个 n8n 工作流。

前置条件

确保您已经完成:

  • n8n 实例已运行
  • 已配置 OpenAI Embeddings 凭证
  • 已配置 Neon Database 凭证
  • Neon 数据库已应用迁移(添加 embedding 字段)

工作流 1: Project Vectorization(项目向量化)

功能说明

每 5 分钟自动执行一次,查询未向量化的项目,生成 OpenAI embeddings 并存储到数据库。

导入步骤

  1. 导入工作流

    • 打开 n8n 实例
    • 点击右上角 +Import from File
    • 选择 project-vectorization.json
    • 点击 Import
  2. 配置凭证

    • 点击 查询未向量化项目 节点

    • Credentials 下拉框中选择 Neon Database

    • 点击 Save

    • 点击 OpenAI Embeddings 节点

    • Credentials 下拉框中选择 OpenAI Embeddings

    • 点击 Save

    • 点击 更新 Embedding 节点

    • Credentials 下拉框中选择 Neon Database

    • 点击 Save

  3. 测试工作流

    • 点击工作流右上角 Test Workflow
    • 手动点击 Cron 节点的执行按钮
    • 查看每个节点的输出:
      • 查询未向量化项目 应返回项目列表(或空数组)
      • 构造文本内容 应添加 textContent 字段
      • OpenAI Embeddings 应返回向量数组
      • 更新 Embedding 应成功更新数据库
  4. 激活工作流

    • 点击左上角 Inactive 开关,变为 Active
    • 工作流将每 5 分钟自动执行

节点说明

节点 功能
Cron 定时触发器(每 5 分钟)
查询未向量化项目 查询 embedding 为空的 ACTIVE 项目
构造文本内容 合并项目字段生成用于向量化的文本
Split in Batches 分批处理(每批 5 个,避免 API 限流)
OpenAI Embeddings 调用 OpenAI API 生成向量
更新 Embedding 将向量写入数据库

工作流 2: AI Semantic SearchAI 语义搜索)

功能说明

接收 Webhook 请求,生成查询向量,执行向量相似度搜索,返回排序结果。

导入步骤

  1. 导入工作流

    • 打开 n8n 实例
    • 点击右上角 +Import from File
    • 选择 ai-semantic-search.json
    • 点击 Import
  2. 配置凭证

    • 依次配置以下节点的凭证为 OpenAI Embeddings

      • 生成查询向量 节点
    • 依次配置以下节点的凭证为 Neon Database

      • 向量相似度搜索 节点
      • 查询标签 节点
  3. 获取 Webhook URL

    • 点击 Webhook 节点
    • 复制 Production URL(格式类似:https://your-n8n.com/webhook/ai-search
    • 将此 URL 更新到 .env.localN8N_AI_SEARCH_WEBHOOK
  4. 测试工作流

    • 点击工作流右上角 Test Workflow
    • Webhook 节点中点击 Listen for Test Event
    • 使用以下命令测试:
curl -X POST https://your-n8n.com/webhook/ai-search \
  -H "Content-Type: application/json" \
  -d '{"query":"视频生成工具","locale":"zh","limit":5}'
  • 预期响应:
{
  "results": [
    {
      "project": { /* 项目数据 */ },
      "similarity": 0.89,
      "matchReason": "相似度: 89%"
    }
  ],
  "total": 5,
  "searchTime": 1234
}
  1. 激活工作流
    • 点击左上角 Inactive 开关,变为 Active

节点说明

节点 功能
Webhook 接收搜索请求(POST /webhook/ai-search
生成查询向量 将查询文本转换为向量
向量相似度搜索 使用 pgvector 执行余弦相似度搜索
准备标签查询 准备项目 ID 列表
查询标签 查询每个项目的标签
合并标签 将标签合并到搜索结果
格式化响应 生成最终的 JSON 响应

常见问题

Q1: 节点连接错误?

导入后如果节点连接线丢失,手动按以下顺序连接:

工作流 1 连接顺序:

Cron → 查询未向量化项目 → 构造文本内容 → Split in Batches → OpenAI Embeddings → 更新 Embedding → (循环回) Split in Batches

工作流 2 连接顺序:

Webhook → 生成查询向量 → 向量相似度搜索 → 准备标签查询 → 查询标签 → 合并标签 → 格式化响应

Q2: 凭证选择框为空?

  • 确保已在 n8n 中创建了 OpenAI EmbeddingsNeon Database 凭证
  • 如果凭证已创建但不可见,重新导入工作流

Q3: OpenAI API 错误?

  • 检查 API Key 是否有效
  • 确认 API Key 有足够的配额
  • 检查网络连接

Q4: 数据库连接错误?

  • 验证 Neon 数据库凭证配置正确
  • 检查数据库是否已应用迁移
  • 确认 pgvector 扩展已安装

更新环境变量

将获取的 Webhook URL 更新到项目的 .env.local 文件:

# n8n AI Search Webhook
N8N_AI_SEARCH_WEBHOOK="https://your-n8n.com/webhook/ai-search"

然后重启开发服务器:

pnpm dev

验证完整流程

  1. 启动向量化
    • 确保 Project Vectorization 工作流已激活
    • 等待 5 分钟或手动执行
    • 在 Neon SQL Editor 中检查:
SELECT COUNT(*) FROM "projects" WHERE "embedding" IS NOT NULL;
  1. 测试 AI 搜索
    • 访问 http://localhost:3000/zh/projects
    • 点击 按钮切换到 AI 模式
    • 输入查询:"帮我找能生成视频的 AI 工具"
    • 验证返回相关结果

完成后

所有工作流配置完成后,您的 AI 智能搜索系统就已就绪!

  • 向量化工作流会在后台自动运行
  • AI 搜索 API 可供前端调用
  • 用户可以使用自然语言查询项目