RAG-Chatbot für Ihre Website mit Supabase erstellen

Experte

Dies ist ein Support Chatbot, AI RAG-Bereich Automatisierungsworkflow mit 18 Nodes. Hauptsächlich werden FormTrigger, HtmlExtract, HttpRequest, ConvertToFile, Agent und andere Nodes verwendet. Ein Website-Frage-Antwort-Chatbot mit RAG, OpenAI GPT-4o-mini und Supabase-Vektordatenbank erstellen

Voraussetzungen
  • Möglicherweise sind Ziel-API-Anmeldedaten erforderlich
  • OpenAI API Key
  • PostgreSQL-Datenbankverbindungsdaten
  • Supabase URL und API Key
Workflow-Vorschau
Visualisierung der Node-Verbindungen, mit Zoom und Pan
Workflow exportieren
Kopieren Sie die folgende JSON-Konfiguration und importieren Sie sie in n8n
{
  "id": "klsAKNm0Q07J8RXY",
  "meta": {
    "instanceId": "fcb622cbd5234c565b9b78babeaf0ea2455df9d2aad0d1adff7c1ef99583e685",
    "templateCredsSetupCompleted": true
  },
  "name": "Build RAG Chatbot for Your Website Using Supabase",
  "tags": [],
  "nodes": [
    {
      "id": "c2c34da8-27e8-4881-a3fd-3b5f6987e0bf",
      "name": "Wenn Chat-Nachricht empfangen",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "position": [
        500,
        -580
      ],
      "webhookId": "dec328cc-f47e-4727-b1c5-7370be86a958",
      "parameters": {
        "mode": "webhook",
        "public": true,
        "options": {}
      },
      "typeVersion": 1.1
    },
    {
      "id": "31f5d600-1694-4d50-a581-0880f65a7755",
      "name": "HTML-Extraktion",
      "type": "n8n-nodes-base.htmlExtract",
      "position": [
        -460,
        -540
      ],
      "parameters": {
        "options": {},
        "extractionValues": {
          "values": [
            {
              "key": "title",
              "cssSelector": "title, h1"
            },
            {
              "key": "content",
              "cssSelector": "p, article, .content, .post-content, main"
            },
            {
              "key": "meta_description",
              "attribute": "content",
              "cssSelector": "meta[name='description']",
              "returnValue": "attribute"
            },
            {
              "key": "links",
              "attribute": "href",
              "cssSelector": "a[href]",
              "returnValue": "attribute"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "d48d0d67-cfb6-4058-96e2-4198b40650bc",
      "name": "Standard-Datenlader",
      "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
      "position": [
        20,
        -360
      ],
      "parameters": {
        "loader": "jsonLoader",
        "options": {
          "metadata": {
            "metadataValues": [
              {
                "name": "website_url",
                "value": "={{ $('Enter Website Url').item.json['Website Url'] }}"
              }
            ]
          }
        },
        "dataType": "binary"
      },
      "typeVersion": 1
    },
    {
      "id": "32b79786-e8d1-4083-80e9-4d2eada2c46b",
      "name": "Rekursiver Zeichen-Text-Splitter",
      "type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
      "position": [
        120,
        -160
      ],
      "parameters": {
        "options": {},
        "chunkSize": 3000,
        "chunkOverlap": 500
      },
      "typeVersion": 1
    },
    {
      "id": "b7541584-131f-4868-b8dd-053ab509ab1b",
      "name": "Supabase Vektorspeicher",
      "type": "@n8n/n8n-nodes-langchain.vectorStoreSupabase",
      "position": [
        -40,
        -540
      ],
      "parameters": {
        "mode": "insert",
        "options": {},
        "tableName": {
          "__rl": true,
          "mode": "list",
          "value": "documents",
          "cachedResultName": "documents"
        },
        "embeddingBatchSize": 100
      },
      "credentials": {
        "supabaseApi": {
          "id": "E3H0gensGX1OYVwU",
          "name": "Supabase account"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "7b923d0f-c803-4b3c-afd8-ee680793c955",
      "name": "Website-URL eingeben",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -820,
        -540
      ],
      "webhookId": "b02a5096-11b0-4677-acfa-fcac5722498c",
      "parameters": {
        "options": {},
        "formTitle": "Form",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Website Url",
              "placeholder": "Enter Website Url"
            }
          ]
        },
        "formDescription": "Enter Website Url"
      },
      "typeVersion": 2.2
    },
    {
      "id": "9e961fc5-b937-4f0e-b9f5-8ada4f3598f5",
      "name": "Kurznotiz 1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -180,
        -680
      ],
      "parameters": {
        "color": 3,
        "width": 520,
        "height": 100,
        "content": "## Generating Embeddings from Website Content"
      },
      "typeVersion": 1
    },
    {
      "id": "7f4feec8-62a8-47a0-a8d6-9bce01261b1a",
      "name": "Kurznotiz 2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        380,
        -680
      ],
      "parameters": {
        "width": 300,
        "height": 80,
        "content": "## User-Initiated Question"
      },
      "typeVersion": 1
    },
    {
      "id": "1c11199e-d217-4f2d-8afe-913f902ef47c",
      "name": "Kurznotiz 3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        700,
        -680
      ],
      "parameters": {
        "color": 3,
        "width": 540,
        "height": 80,
        "content": "## Vector-Based Answer Retrieval"
      },
      "typeVersion": 1
    },
    {
      "id": "ddb37d99-4e8d-4eef-83da-6b3088360062",
      "name": "Kurznotiz",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -840,
        -680
      ],
      "parameters": {
        "width": 640,
        "height": 100,
        "content": "## Website Data Extraction\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "eeffcae9-2e9c-48f2-ad13-2b75b7218fe2",
      "name": "Website-Daten-Scraping",
      "type": "n8n-nodes-base.httpRequest",
      "maxTries": 3,
      "position": [
        -640,
        -540
      ],
      "parameters": {
        "url": "={{ $json['Website Url'] }}",
        "options": {
          "timeout": 30000,
          "redirect": {
            "redirect": {
              "maxRedirects": 5
            }
          }
        }
      },
      "retryOnFail": true,
      "typeVersion": 4.1
    },
    {
      "id": "df8e6032-41f2-4f95-8906-7150ce565d8a",
      "name": "In Datei konvertieren",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        -320,
        -540
      ],
      "parameters": {
        "options": {},
        "operation": "toJson"
      },
      "typeVersion": 1.1
    },
    {
      "id": "697c29c6-6bcd-4748-a874-3c754f9b034e",
      "name": "Einbettungen Cohere",
      "type": "@n8n/n8n-nodes-langchain.embeddingsCohere",
      "position": [
        -100,
        -360
      ],
      "parameters": {},
      "credentials": {
        "cohereApi": {
          "id": "5VhbvbDzLliD5nO9",
          "name": "CohereApi account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "d8d3a79a-1ac2-42dd-b383-e39bbcbded75",
      "name": "Frage & Antwort Abruf",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        820,
        -580
      ],
      "parameters": {
        "options": {
          "systemMessage": "=# Overview  \nYou are an AI agent that responds strictly using information from stored document embeddings in a supabase vector store.  \n\n## Context  \n- The agent is designed to provide accurate, document-based answers.  \n- It must avoid using external knowledge or assumptions.  \n\n## Instructions  \n1. Analyze the user's question.  \n2. Retrieve relevant content from the document embeddings using supabase.  \n3. Construct a response only from the matching document chunks.\n## Tools  \n- Vector store containing embedded documents\n- Embeddings Cohere  \n\n## SOP (Standard Operating Procedure)  \n1. Receive user query.  \n2. Search the vector store for relevant document chunks.  \n3. Extract and synthesize an answer using only that content.  \n4. If no matches, issue fallback message.  \n\n## Final Notes  \n- Do not rely on prior training or external facts.  \n- The response must remain strictly grounded in the documents.  "
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "65d51d86-cae3-4cdb-9d95-025962195953",
      "name": "Daten aus Supabase Vektorspeicher",
      "type": "@n8n/n8n-nodes-langchain.vectorStoreSupabase",
      "position": [
        1000,
        -360
      ],
      "parameters": {
        "mode": "retrieve-as-tool",
        "topK": null,
        "options": {},
        "toolName": "documents_knowledge_base",
        "tableName": {
          "__rl": true,
          "mode": "list",
          "value": "documents",
          "cachedResultName": "documents"
        },
        "toolDescription": "work with documents data in Supabase vector store",
        "includeDocumentMetadata": false
      },
      "credentials": {
        "supabaseApi": {
          "id": "E3H0gensGX1OYVwU",
          "name": "Supabase account"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "6ef28803-e21f-4733-a6a9-d894b97dbb35",
      "name": "Einbettungen mit Cohere",
      "type": "@n8n/n8n-nodes-langchain.embeddingsCohere",
      "position": [
        1020,
        -140
      ],
      "parameters": {},
      "credentials": {
        "cohereApi": {
          "id": "5VhbvbDzLliD5nO9",
          "name": "CohereApi account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "4796d1f3-ab76-4ed4-86b3-96bca2aae4e9",
      "name": "Chat-Speicher",
      "type": "@n8n/n8n-nodes-langchain.memoryPostgresChat",
      "position": [
        900,
        -320
      ],
      "parameters": {
        "tableName": "chat_memory",
        "contextWindowLength": 3
      },
      "credentials": {
        "postgres": {
          "id": "lf7D6rk7s95k7I12",
          "name": "Postgres account 2"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "2ce21a19-e586-4cc6-88ed-b1957b04a06a",
      "name": "OpenAI Chat-Modell",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        760,
        -340
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "FWzCPYhm2kVkOjE5",
          "name": "OpenAi account 7"
        }
      },
      "typeVersion": 1.2
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "1fe65722-2127-4e4c-8af6-d8c967259653",
  "connections": {
    "4796d1f3-ab76-4ed4-86b3-96bca2aae4e9": {
      "ai_memory": [
        [
          {
            "node": "d8d3a79a-1ac2-42dd-b383-e39bbcbded75",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "31f5d600-1694-4d50-a581-0880f65a7755": {
      "main": [
        [
          {
            "node": "df8e6032-41f2-4f95-8906-7150ce565d8a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "df8e6032-41f2-4f95-8906-7150ce565d8a": {
      "main": [
        [
          {
            "node": "Supabase Vector Store",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings Cohere": {
      "ai_embedding": [
        [
          {
            "node": "Supabase Vector Store",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "7b923d0f-c803-4b3c-afd8-ee680793c955": {
      "main": [
        [
          {
            "node": "eeffcae9-2e9c-48f2-ad13-2b75b7218fe2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2ce21a19-e586-4cc6-88ed-b1957b04a06a": {
      "ai_languageModel": [
        [
          {
            "node": "d8d3a79a-1ac2-42dd-b383-e39bbcbded75",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "d48d0d67-cfb6-4058-96e2-4198b40650bc": {
      "ai_document": [
        [
          {
            "node": "Supabase Vector Store",
            "type": "ai_document",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings mit Cohere": {
      "ai_embedding": [
        [
          {
            "node": "Daten aus Supabase Vector Store",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "eeffcae9-2e9c-48f2-ad13-2b75b7218fe2": {
      "main": [
        [
          {
            "node": "31f5d600-1694-4d50-a581-0880f65a7755",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c2c34da8-27e8-4881-a3fd-3b5f6987e0bf": {
      "main": [
        [
          {
            "node": "d8d3a79a-1ac2-42dd-b383-e39bbcbded75",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Daten aus Supabase Vector Store": {
      "ai_tool": [
        [
          {
            "node": "d8d3a79a-1ac2-42dd-b383-e39bbcbded75",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "32b79786-e8d1-4083-80e9-4d2eada2c46b": {
      "ai_textSplitter": [
        [
          {
            "node": "d48d0d67-cfb6-4058-96e2-4198b40650bc",
            "type": "ai_textSplitter",
            "index": 0
          }
        ]
      ]
    }
  }
}
Häufig gestellte Fragen

Wie verwende ich diesen Workflow?

Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.

Für welche Szenarien ist dieser Workflow geeignet?

Experte - Support-Chatbot, KI RAG

Ist es kostenpflichtig?

Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.

Workflow-Informationen
Schwierigkeitsgrad
Experte
Anzahl der Nodes18
Kategorie2
Node-Typen13
Schwierigkeitsbeschreibung

Für fortgeschrittene Benutzer, komplexe Workflows mit 16+ Nodes

Autor
InfyOm Technologies

InfyOm Technologies

@infyom

We are an AI Automation Agency focusing on various AI Automation Services like, workflow automation, shopify automation, chatbot developerment, custom ai agent development and more.

Externe Links
Auf n8n.io ansehen

Diesen Workflow teilen

Kategorien

Kategorien: 34