{
  "id": "QGCfa3ryox2OEBTG",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Simple RAG chatbot",
  "tags": [],
  "nodes": [
    {
      "id": "a94cdaf0-a036-435a-9d44-971a4c6956dd",
      "name": "Google Drive Trigger",
      "type": "n8n-nodes-base.googleDriveTrigger",
      "position": [
        496,
        -368
      ],
      "parameters": {
        "event": "fileCreated",
        "options": {},
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "triggerOn": "specificFolder",
        "folderToWatch": {
          "__rl": true,
          "mode": "list",
          "value": "1cDW1qkq76TX5Hr4k_JWBZjMigOf4hdC3",
          "cachedResultUrl": "https://drive.google.com/drive/folders/1cDW1qkq76TX5Hr4k_JWBZjMigOf4hdC3",
          "cachedResultName": "Snapfectly RAG"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "0b22f8be-3b90-4079-a4bc-867419478519",
      "name": "Download file",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        704,
        -368
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.id }}"
        },
        "options": {},
        "operation": "download"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "a0868cac-fb37-48c3-804f-ec58ab130a29",
      "name": "Pinecone Vector Store",
      "type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
      "position": [
        896,
        -368
      ],
      "parameters": {
        "mode": "insert",
        "options": {},
        "pineconeIndex": {
          "__rl": true,
          "mode": "list",
          "value": "snapfectly",
          "cachedResultName": "snapfectly"
        }
      },
      "credentials": {
        "pineconeApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "abfa54c4-c88a-4362-ae5c-89bc1a63193c",
      "name": "Embeddings OpenAI",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "position": [
        896,
        -160
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "1a035b2f-99bd-4673-a6c1-775b7494d9cc",
      "name": "Default Data Loader",
      "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
      "position": [
        1072,
        -160
      ],
      "parameters": {
        "options": {},
        "textSplittingMode": "custom"
      },
      "typeVersion": 1.1
    },
    {
      "id": "5bed9568-6db7-4bcd-85cc-1dbcfd673b76",
      "name": "Recursive Character Text Splitter",
      "type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
      "position": [
        1072,
        0
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "080c49d0-665f-4f01-8098-05a7fb7f2e88",
      "name": "AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -64,
        -368
      ],
      "parameters": {
        "options": {
          "systemMessage": "## Your Role\nYou are a helpful assistant that finds information from our vector store to answer user questions.\n\n## How You Work\n1. When a user asks a question, search the vector store for relevant information\n2. Use the retrieved information to provide accurate answers\n3. Always base your response on what you find in the database\n4. if you didn't find an answer, just say it don't try to fill the gap\n\n## Response Rules\n- **Answer directly** - Give the user what they asked for first\n- **Use retrieved data only** - Don't make up information\n- **Be clear about sources** - Mention when information comes from the database\n- **If no information found** - Tell the user \"I couldn't find information about that in the database\"\n- **Stay helpful** - Offer to search for related topics if the exact answer isn't available"
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "31a42bd8-60ca-48f6-bbf8-ba303cdf9ff6",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -192,
        -160
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "3bbb2363-49b4-4fc8-a49c-9e6ace38f1a3",
      "name": "Simple Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        -48,
        -160
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "475324a5-6e46-4e3c-9494-defc406e4e0c",
      "name": "Embeddings OpenAI1",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "position": [
        96,
        0
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "8ee72c96-167e-4baa-9e3a-15d101ca5e52",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -352,
        -464
      ],
      "parameters": {
        "color": 3,
        "width": 752,
        "height": 672,
        "content": "## Agent"
      },
      "typeVersion": 1
    },
    {
      "id": "6d384a15-5bb8-4654-b0a5-e39a3764e75b",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        400,
        -464
      ],
      "parameters": {
        "color": 5,
        "width": 1008,
        "height": 672,
        "content": "## Insert documents into pinecone"
      },
      "typeVersion": 1
    },
    {
      "id": "bf7498d8-c3c8-42bc-b3f3-eca2ea027eec",
      "name": "When chat message received",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "position": [
        -272,
        -368
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.3
    },
    {
      "id": "9097259b-2ec7-4cd6-995e-6dc34d8e43f8",
      "name": "Reranker Cohere",
      "type": "@n8n/n8n-nodes-langchain.rerankerCohere",
      "position": [
        240,
        0
      ],
      "parameters": {},
      "credentials": {
        "cohereApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "166b7c53-c144-44e3-8207-976ad590c14f",
      "name": "Vector Store",
      "type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
      "position": [
        96,
        -160
      ],
      "parameters": {
        "mode": "retrieve-as-tool",
        "topK": 10,
        "options": {},
        "useReranker": true,
        "pineconeIndex": {
          "__rl": true,
          "mode": "list",
          "value": "snapfectly",
          "cachedResultName": "snapfectly"
        },
        "toolDescription": "use this to retrieve information from our vector database"
      },
      "credentials": {
        "pineconeApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "bc2ff0c7-9231-4306-9600-520cc82547b1",
  "connections": {
    "Vector Store": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Download file": {
      "main": [
        [
          {
            "node": "Pinecone Vector Store",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Simple Memory": {
      "ai_memory": [
        [
          {
            "node": "AI Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Reranker Cohere": {
      "ai_reranker": [
        [
          {
            "node": "Vector Store",
            "type": "ai_reranker",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings OpenAI": {
      "ai_embedding": [
        [
          {
            "node": "Pinecone Vector Store",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings OpenAI1": {
      "ai_embedding": [
        [
          {
            "node": "Vector Store",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "Default Data Loader": {
      "ai_document": [
        [
          {
            "node": "Pinecone Vector Store",
            "type": "ai_document",
            "index": 0
          }
        ]
      ]
    },
    "Google Drive Trigger": {
      "main": [
        [
          {
            "node": "Download file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When chat message received": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Recursive Character Text Splitter": {
      "ai_textSplitter": [
        [
          {
            "node": "Default Data Loader",
            "type": "ai_textSplitter",
            "index": 0
          }
        ]
      ]
    }
  }
}