基于Supabase的RAG聊天机器人n8n工作流 - 文档嵌入与智能问答
RAG聊天机器人,n8n工作流,Supabase,向量嵌入,Together AI,OpenRouter,文档检索,智能问答

## 工作流概述

这是一个基于检索增强生成(RAG)技术的智能聊天机器人工作流,使用n8n平台构建。该工作流分为两个主要部分:文档训练阶段和聊天响应阶段。

## 第一阶段:文档训练流程

### 📌 Telegram触发器
– **类型**: `telegramTrigger`
– **功能**: 等待新的Telegram消息来触发工作流
– **状态**: 当前已禁用

### 📄 训练内容获取
– **类型**: `googleDocs`
– **功能**: 使用Google Docs URL获取文档内容
– **认证**: 服务账户认证

### ✂️ 文本分块处理
– **类型**: `code`
– **功能**: 将获取的文档文本分割成较小的块(每块1000字符)
– **逻辑**: 循环遍历文本并进行切片

### 🧠 文档嵌入生成
– **类型**: `httpRequest`
– **功能**: 调用Together AI嵌入API为每个文本块生成向量嵌入
– **详情**: 发送包含模型名称和文本块的JSON数据

### 🛢 嵌入向量存储
– **类型**: `supabase`
– **功能**: 将每个文本块及其嵌入向量保存到Supabase的embed表中

## 第二阶段:聊天响应流程

### 💬 聊天消息接收
– **类型**: `chatTrigger`
– **功能**: 当用户发送聊天消息时启动工作流
– **详情**: 向用户发送初始问候消息

### 🧩 用户消息嵌入
– **类型**: `httpRequest`
– **功能**: 为用户输入消息生成嵌入向量
– **详情**: 调用Together AI嵌入API

### 🔍 嵌入向量搜索
– **类型**: `httpRequest`
– **功能**: 基于生成的嵌入向量在Supabase数据库中搜索最相似的5个文本块
– **详情**: 调用Supabase RPC函数`matchembeddings1`

### 📦 上下文聚合
– **类型**: `aggregate`
– **功能**: 将所有检索到的文本块组合成单一聚合上下文供LLM使用

### 🧠 基础LLM链
– **类型**: `chainLlm`
– **功能**: 将用户问题+聚合上下文传递给LLM生成详细答案
– **详情**: 包含提示指令,要求LLM仅基于上下文回答

### 🤖 OpenRouter聊天模型
– **类型**: `lmChatOpenRouter`
– **功能**: 提供实际处理提示的AI语言模型
– **详情**: 通过OpenRouter使用`qwen/qwen3-8b:free`模型

## 重要注意事项

⚠️ **仅运行第一个工作流一次**
– 第一个工作流会将内容转换为嵌入格式并保存到数据库中,为RAG聊天做好准备
– 重复运行会导致数据重复

## 技术特点

– **RAG架构**: 结合检索和生成技术,提供基于文档的准确回答
– **向量搜索**: 使用Supabase进行高效的相似性搜索
– **多模型支持**: 可通过OpenRouter使用多种AI模型
– **实时响应**: 支持即时聊天交互
– **可扩展性**: 易于添加新的文档源和模型

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