{
  "name": "Fadhil",
  "nodes": [
    {
      "parameters": {
        "options": {
          "systemMessage": "=Anda adalah ahli dalam membuat query SQL MySQL dan juga seorang data scientist.\n\nTugas Anda adalah menerjemahkan pertanyaan pengguna menjadi query SQL MySQL yang valid, efisien, dan aman.\n\nAnda akan diberikan konteks schema database yang diambil dari sistem RAG (vector database pada tool \"VS\"). Schema ini berisi informasi tabel, kolom, relasi, dan terkadang contoh data.\n\nIkuti aturan berikut dengan ketat:\n\n1. Hanya gunakan tabel dan kolom yang tersedia dalam schema yang diberikan.\n2. Jangan mengasumsikan atau membuat tabel, kolom, atau relasi yang tidak ada.\n3. Gunakan JOIN yang tepat berdasarkan relasi (foreign key) jika diperlukan.\n4. Pastikan query yang dihasilkan valid secara sintaks MySQL.\n5. Hanya buat query SELECT. Dilarang membuat INSERT, UPDATE, DELETE, DROP, ALTER, atau query yang mengubah data.\n6. Batasi hasil query secara wajar kecuali diminta (default gunakan LIMIT 100).\n7. Buat query yang efisien dan hindari subquery yang tidak perlu.\n8. Jika menggunakan agregasi (SUM, COUNT, AVG, dll), gunakan GROUP BY dengan benar.\n9. Jika pertanyaan ambigu, pilih interpretasi yang paling masuk akal berdasarkan schema dan contoh data.\n10. Jangan sertakan penjelasan, komentar, atau teks apapun selain query SQL.\n11. Jika schema tidak cukup untuk menjawab pertanyaan, berikan respon permintaan maaf dan mohon coba kembali.\n12. Lempar query ke tools \"Call_MYSQL\" , wajib! Jangan pernah tampilkan query ke user!\n13. Kalau kamu tidak menemukan hal yang di minta oleh user,maka bilang saja tidak tahu.\n14. Kalau mengalami rate limit reached tolong jangan di taampilkan\n\nFormat output:\n\n* Hanya berisi query SQL\n* Tanpa markdown\n* Tanpa penjelasan\n* Tanpa backtick\n\nStruktur table ada di vector database, pastikan gunakan nama kolom yang benar.\n\nContoh format schema yang mungkin diberikan:\n\nTable: <nama_tabel>\nColumns:\n\n* nama_kolom (tipe, constraint)\n  Relationships:\n* foreign_key \u2192 tabel_referensi.kolom\n\nSample Data ada di vector database juga, 1 punya 3 sample data.\n\nGunakan informasi tersebut untuk memahami struktur data dan menghasilkan query yang akurat.\n\nOutput query MYSQL yang didapat, tolong lemparkan ke tool \"Call_MYSQL\" untuk dieksekusi.\n\nTunggu jawaban dari tool \"Call_MYSQL\", lalu sajikan data yang diminta oleh user dengan bentuk sesuai permintaan.\n\nSecara default berikan jawaban data secara naratif dan mode text.\n\nJika pemanggilan tool gagal atau query error, berikan respon permintaan maaf dan mohon coba kembali.\n"
        }
      },
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 3,
      "position": [
        0,
        0
      ],
      "id": "edc26e81-7a67-4933-9120-27d89152b038",
      "name": "AI Agent"
    },
    {
      "parameters": {
        "public": true,
        "initialMessages": "Halo, apa yang bisa saya bantu hari ini?",
        "options": {
          "allowFileUploads": true,
          "allowedFilesMimeTypes": "application/pdf, plain/text, image/*",
          "customCss": ":root {\n  /* Colors */\n  --chat--color--primary: #e74266;\n  --chat--color--primary-shade-50: #db4061;\n  --chat--color--primary--shade-100: #cf3c5c;\n  --chat--color--secondary: #20b69e;\n  --chat--color-secondary-shade-50: #1ca08a;\n  --chat--color-white: #fff;\n  --chat--color-light: #f2f4f8;\n  --chat--color-light-shade-50: #e6e9f1;\n  --chat--color-light-shade-100: #c2c5cc;\n  --chat--color-medium: #d2d4d9;\n  --chat--color-dark: #101330;\n  --chat--color-disabled: #d2d4d9;\n  --chat--color-typing: #404040;\n\n  /* Base Layout */\n  --chat--spacing: 1rem;\n  --chat--border-radius: 0.25rem;\n  --chat--transition-duration: 0.15s;\n  --chat--font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;\n\n  /* Window Dimensions */\n  --chat--window--width: 400px;\n  --chat--window--height: 600px;\n  --chat--window--bottom: var(--chat--spacing);\n  --chat--window--right: var(--chat--spacing);\n  --chat--window--z-index: 9999;\n  --chat--window--border: 1px solid var(--chat--color-light-shade-50);\n  --chat--window--border-radius: var(--chat--border-radius);\n  --chat--window--margin-bottom: var(--chat--spacing);\n\n  /* Header Styles */\n  --chat--header-height: auto;\n  --chat--header--padding: var(--chat--spacing);\n  --chat--header--background: var(--chat--color-dark);\n  --chat--header--color: var(--chat--color-light);\n  --chat--header--border-top: none;\n  --chat--header--border-bottom: none;\n  --chat--header--border-left: none;\n  --chat--header--border-right: none;\n  --chat--heading--font-size: 2em;\n  --chat--subtitle--font-size: inherit;\n  --chat--subtitle--line-height: 1.8;\n\n  /* Message Styles */\n  --chat--message--font-size: 1rem;\n  --chat--message--padding: var(--chat--spacing);\n  --chat--message--border-radius: var(--chat--border-radius);\n  --chat--message-line-height: 1.5;\n  --chat--message--margin-bottom: calc(var(--chat--spacing) * 1);\n  --chat--message--bot--background: var(--chat--color-white);\n  --chat--message--bot--color: var(--chat--color-dark);\n  --chat--message--bot--border: none;\n  --chat--message--user--background: var(--chat--color--secondary);\n  --chat--message--user--color: var(--chat--color-white);\n  --chat--message--user--border: none;\n  --chat--message--pre--background: rgba(0, 0, 0, 0.05);\n  --chat--messages-list--padding: var(--chat--spacing);\n\n  /* Toggle Button */\n  --chat--toggle--size: 64px;\n  --chat--toggle--width: var(--chat--toggle--size);\n  --chat--toggle--height: var(--chat--toggle--size);\n  --chat--toggle--border-radius: 50%;\n  --chat--toggle--background: var(--chat--color--primary);\n  --chat--toggle--hover--background: var(--chat--color--primary-shade-50);\n  --chat--toggle--active--background: var(--chat--color--primary--shade-100);\n  --chat--toggle--color: var(--chat--color-white);\n\n  /* Input Area */\n  --chat--textarea--height: 50px;\n  --chat--textarea--max-height: 30rem;\n  --chat--input--font-size: inherit;\n  --chat--input--border: 0;\n  --chat--input--border-radius: 0;\n  --chat--input--padding: 0.8rem;\n  --chat--input--background: var(--chat--color-white);\n  --chat--input--text-color: initial;\n  --chat--input--line-height: 1.5;\n  --chat--input--placeholder--font-size: var(--chat--input--font-size);\n  --chat--input--border-active: 0;\n  --chat--input--left--panel--width: 2rem;\n\n  /* Button Styles */\n  --chat--button--padding: calc(var(--chat--spacing) * 5 / 8) var(--chat--spacing);\n  --chat--button--border-radius: var(--chat--border-radius);\n  --chat--button--font-size: 1rem;\n  --chat--button--line-height: 1;\n  --chat--button--color--primary: var(--chat--color-light);\n  --chat--button--background--primary: var(--chat--color--secondary);\n  --chat--button--border--primary: none;\n  --chat--button--color--primary--hover: var(--chat--color-light);\n  --chat--button--background--primary--hover: var(--chat--color-secondary-shade-50);\n  --chat--button--border--primary--hover: none;\n  --chat--button--color--primary--disabled: var(--chat--color-light);\n  --chat--button--background--primary--disabled: #81bbb1;\n  --chat--button--border--primary--disabled: none;\n  --chat--button--color--secondary: var(--chat--color-light);\n  --chat--button--background--secondary: hsl(0, 0%, 58%);\n  --chat--button--border--secondary: none;\n  --chat--button--color--secondary--hover: var(--chat--color-light);\n  --chat--button--background--secondary--hover: hsl(0, 0%, 51%);\n  --chat--button--border--secondary--hover: none;\n  --chat--button--color--secondary--disabled: var(--chat--color-light);\n  --chat--button--background--secondary--disabled: hsl(0, 0%, 78%);\n  --chat--button--border--secondary--disabled: none;\n  --chat--close--button--color-hover: var(--chat--color--primary);\n\n  /* Send and File Buttons */\n  --chat--input--send--button--background: var(--chat--color-white);\n  --chat--input--send--button--color: var(--chat--color--secondary);\n  --chat--input--send--button--background-hover: var(--chat--color--primary-shade-50);\n  --chat--input--send--button--color-hover: var(--chat--color-secondary-shade-50);\n  --chat--input--file--button--background: var(--chat--color-white);\n  --chat--input--file--button--color: var(--chat--color--secondary);\n  --chat--input--file--button--background-hover: var(--chat--input--file--button--background);\n  --chat--input--file--button--color-hover: var(--chat--color-secondary-shade-50);\n  --chat--files-spacing: 0.25rem;\n\n  /* Body and Footer */\n  --chat--body--background: var(--chat--color-light);\n  --chat--footer--background: var(--chat--color-light);\n  --chat--footer--color: var(--chat--color-dark);\n}\n\n\n/* You can override any class styles, too. Right-click inspect in Chat UI to find class to override. */\n.chat-message {\n\tmax-width: 50%;\n}",
          "responseMode": "streaming"
        }
      },
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "typeVersion": 1.4,
      "position": [
        -352,
        32
      ],
      "id": "e2ee0c9f-b897-4bb8-9e5b-0171001e3d03",
      "name": "When chat message received"
    },
    {
      "parameters": {
        "operation": "executeQuery",
        "query": "SELECT concat('SHOW CREATE TABLE `', TABLE_NAME, '`;') AS QUERIES, concat('SELECT * from `', TABLE_NAME, '` LIMIT 3;') AS SAMPLE\nFROM information_schema.tables where TABLE_SCHEMA LIKE '%archive%' and TABLE_TYPE LIKE '%BASE TABLE%';",
        "options": {}
      },
      "type": "n8n-nodes-base.mySql",
      "typeVersion": 2.5,
      "position": [
        -160,
        688
      ],
      "id": "cf39351d-4a82-491f-8258-b03c35db48ba",
      "name": "Cari schema",
      "credentials": {
        "mySql": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {},
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [
        -384,
        688
      ],
      "id": "e7836fbd-6899-41e8-9e10-e190316b66b8",
      "name": "Manual eksekusi schema db"
    },
    {
      "parameters": {
        "mode": "insert",
        "tableName": {
          "__rl": true,
          "value": "documents",
          "mode": "list",
          "cachedResultName": "documents"
        },
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.vectorStoreSupabase",
      "typeVersion": 1.3,
      "position": [
        944,
        608
      ],
      "id": "82a26dfa-1d6d-4d79-aaa4-028dd34e2034",
      "name": "Supabase Vector Store",
      "credentials": {
        "supabaseApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
      "typeVersion": 1.1,
      "position": [
        1056,
        864
      ],
      "id": "4de27648-c053-4f6a-bea7-f87edeb11f2f",
      "name": "Default Data Loader"
    },
    {
      "parameters": {
        "mode": "combine",
        "combineBy": "combineAll",
        "options": {}
      },
      "type": "n8n-nodes-base.merge",
      "typeVersion": 3.2,
      "position": [
        624,
        736
      ],
      "id": "d102a72e-4154-45e0-94ff-afd2c5b6761b",
      "name": "Merge",
      "alwaysOutputData": false,
      "onError": "continueRegularOutput"
    },
    {
      "parameters": {
        "options": {}
      },
      "type": "n8n-nodes-base.splitInBatches",
      "typeVersion": 3,
      "position": [
        144,
        608
      ],
      "id": "6e487e57-a9dc-4e27-a5f0-8a69ea1c752d",
      "name": "Loop Over Items"
    },
    {
      "parameters": {
        "operation": "executeQuery",
        "query": "{{ $json.QUERIES }}",
        "options": {}
      },
      "type": "n8n-nodes-base.mySql",
      "typeVersion": 2.5,
      "position": [
        416,
        624
      ],
      "id": "fd9598f8-40ec-45b9-9203-d5ca5c09b56e",
      "name": "Table Schema",
      "credentials": {
        "mySql": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "description": "Panggil tools ini \"Call_MYSQL\" untuk melakukan query data ke database dari query yang dihasilkan agent.\n\nInput berupa query MYSQL, masukan ke workflow inputs.",
        "workflowId": {
          "__rl": true,
          "value": "SFjryqhViQgeeRIi",
          "mode": "list",
          "cachedResultName": "My Sub-Workflow 1",
          "cachedResultUrl": "/workflow/SFjryqhViQgeeRIi"
        },
        "workflowInputs": {
          "mappingMode": "defineBelow",
          "value": {},
          "matchingColumns": [],
          "schema": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        }
      },
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "typeVersion": 2.2,
      "position": [
        160,
        208
      ],
      "id": "caa06c0a-892c-4e48-b0d1-62743fd05736",
      "name": "Call_MYSQL"
    },
    {
      "parameters": {
        "mode": "retrieve-as-tool",
        "toolDescription": "Vector store ini berisi representasi schema database MySQL yang digunakan untuk membantu sistem dalam menghasilkan query SQL secara akurat.\n\nSetiap dokumen di dalam vector store merepresentasikan satu tabel dalam database, yang mencakup:\n\n* Nama tabel\n* Daftar kolom beserta tipe data dan constraint (PRIMARY KEY, FOREIGN KEY, dll)\n* Relasi antar tabel (foreign key)\n* Deskripsi tabel (jika tersedia)\n* Contoh data (sample rows) untuk membantu memahami konteks isi tabel\n\nTujuan utama vector store ini adalah:\n\n* Membantu model memahami struktur database\n* Mengidentifikasi tabel dan kolom yang relevan terhadap pertanyaan pengguna\n* Mendukung pembuatan query SQL yang tepat dan efisien\n\nSaat digunakan dalam sistem RAG:\n\n* Sistem akan melakukan pencarian semantik terhadap vector store berdasarkan pertanyaan pengguna\n* Dokumen schema yang paling relevan akan dikembalikan sebagai konteks\n* Model akan menggunakan konteks tersebut untuk menyusun query SQL\n\nCatatan penting:\n\n* Informasi dalam vector store adalah satu-satunya sumber kebenaran untuk schema database\n* Model tidak boleh mengasumsikan struktur di luar yang tersedia dalam vector store\n* Relasi antar tabel harus digunakan sebagai acuan dalam melakukan JOIN\n\nFormat umum dokumen dalam vector store:\n\nTable: <nama_tabel>\n\nDescription: <deskripsi tabel>\n\nColumns:\n\n* <nama_kolom> (<tipe_data>, constraint)\n\nRelationships:\n\n* <kolom> \u2192 <tabel_referensi>.<kolom>\n\nSample Data:\n\n* (nilai1, nilai2, ...)\n\nDokumen disusun agar mudah dipahami secara semantik oleh model dan optimal untuk proses embedding.",
        "tableName": {
          "__rl": true,
          "value": "documents",
          "mode": "list",
          "cachedResultName": "documents"
        },
        "topK": 20,
        "useReranker": true,
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.vectorStoreSupabase",
      "typeVersion": 1.3,
      "position": [
        352,
        224
      ],
      "id": "f494b5dc-d674-4ee6-a4ea-95cbc7b0fe71",
      "name": "VS",
      "credentials": {
        "supabaseApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "modelName": "rerank-multilingual-v3.0"
      },
      "type": "@n8n/n8n-nodes-langchain.rerankerCohere",
      "typeVersion": 1,
      "position": [
        592,
        352
      ],
      "id": "a0765de6-bf30-41b5-b4c3-c94e02b667b9",
      "name": "Reranker Cohere",
      "credentials": {
        "cohereApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "contextWindowLength": 10
      },
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "typeVersion": 1.3,
      "position": [
        16,
        208
      ],
      "id": "f740b576-4daa-4e88-bd01-82d884f452c8",
      "name": "Simple Memory"
    },
    {
      "parameters": {
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "typeVersion": 1,
      "position": [
        -656,
        288
      ],
      "id": "868f9203-bb69-442a-aa9c-6a87b9da45e8",
      "name": "Google Gemini Chat Model",
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "operation": "executeQuery",
        "query": "{{ $json.SAMPLE }}",
        "options": {}
      },
      "type": "n8n-nodes-base.mySql",
      "typeVersion": 2.5,
      "position": [
        400,
        752
      ],
      "id": "f083da9c-cd55-40ad-9e9e-1abbd3053e1b",
      "name": "Sample Data",
      "credentials": {
        "mySql": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "operation": "executeQuery",
        "query": "SELECT concat('SHOW CREATE TABLE `', TABLE_NAME, '`;') AS QUERIES, concat('SELECT * from `', TABLE_NAME, '` LIMIT 3;') AS SAMPLE\nFROM information_schema.tables where TABLE_SCHEMA LIKE '%archive%' and TABLE_TYPE LIKE '%BASE TABLE%' and TABLE_NAME LIKE '%stores%';",
        "options": {}
      },
      "type": "n8n-nodes-base.mySql",
      "typeVersion": 2.5,
      "position": [
        -384,
        896
      ],
      "id": "9f87423c-f874-4f5a-b7ca-28364ee89e60",
      "name": "Cari schema1",
      "credentials": {
        "mySql": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "model": {
          "__rl": true,
          "value": "gpt-4.1",
          "mode": "list",
          "cachedResultName": "gpt-4.1"
        },
        "builtInTools": {},
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "typeVersion": 1.3,
      "position": [
        -128,
        208
      ],
      "id": "2e597e03-8db3-40f5-83d7-c4fddcd355b8",
      "name": "OpenAI Chat Model",
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "typeVersion": 1.2,
      "position": [
        880,
        864
      ],
      "id": "e292dc18-9ca0-4051-96d0-c2660e1bcfc2",
      "name": "Embeddings OpenAI",
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "model": {
          "__rl": true,
          "value": "claude-opus-4-6",
          "mode": "list",
          "cachedResultName": "Claude Opus 4.6"
        },
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
      "typeVersion": 1.3,
      "position": [
        -656,
        432
      ],
      "id": "13d40b97-e546-4d14-a9a5-52bfbffa3ede",
      "name": "Anthropic Chat Model",
      "credentials": {
        "anthropicApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "mode": "insert",
        "tableName": {
          "__rl": true,
          "value": "documents",
          "mode": "list",
          "cachedResultName": "documents"
        },
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.vectorStoreSupabase",
      "typeVersion": 1.3,
      "position": [
        1392,
        928
      ],
      "id": "5a1a6be6-15a3-4881-b069-0c50e37bf390",
      "name": "Supabase Vector Store1",
      "credentials": {
        "supabaseApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
      "typeVersion": 1.1,
      "position": [
        1584,
        1152
      ],
      "id": "74647a16-3703-4a54-b0d5-20e0c1ecc8f2",
      "name": "Default Data Loader1"
    },
    {
      "parameters": {
        "modelName": "models/gemini-embedding-001"
      },
      "type": "@n8n/n8n-nodes-langchain.embeddingsGoogleGemini",
      "typeVersion": 1,
      "position": [
        1360,
        1136
      ],
      "id": "346a32f8-69b8-49ba-98e8-9f75f8879b43",
      "name": "Embeddings Google Gemini",
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "mode": "retrieve-as-tool",
        "toolDescription": "Vector store ini berisi representasi schema database MySQL yang digunakan untuk membantu sistem dalam menghasilkan query SQL secara akurat.\n\nSetiap dokumen di dalam vector store merepresentasikan satu tabel dalam database, yang mencakup:\n\n* Nama tabel\n* Daftar kolom beserta tipe data dan constraint (PRIMARY KEY, FOREIGN KEY, dll)\n* Relasi antar tabel (foreign key)\n* Deskripsi tabel (jika tersedia)\n* Contoh data (sample rows) untuk membantu memahami konteks isi tabel\n\nTujuan utama vector store ini adalah:\n\n* Membantu model memahami struktur database\n* Mengidentifikasi tabel dan kolom yang relevan terhadap pertanyaan pengguna\n* Mendukung pembuatan query SQL yang tepat dan efisien\n\nSaat digunakan dalam sistem RAG:\n\n* Sistem akan melakukan pencarian semantik terhadap vector store berdasarkan pertanyaan pengguna\n* Dokumen schema yang paling relevan akan dikembalikan sebagai konteks\n* Model akan menggunakan konteks tersebut untuk menyusun query SQL\n\nCatatan penting:\n\n* Informasi dalam vector store adalah satu-satunya sumber kebenaran untuk schema database\n* Model tidak boleh mengasumsikan struktur di luar yang tersedia dalam vector store\n* Relasi antar tabel harus digunakan sebagai acuan dalam melakukan JOIN\n\nFormat umum dokumen dalam vector store:\n\nTable: <nama_tabel>\n\nDescription: <deskripsi tabel>\n\nColumns:\n\n* <nama_kolom> (<tipe_data>, constraint)\n\nRelationships:\n\n* <kolom> \u2192 <tabel_referensi>.<kolom>\n\nSample Data:\n\n* (nilai1, nilai2, ...)\n\nDokumen disusun agar mudah dipahami secara semantik oleh model dan optimal untuk proses embedding.",
        "tableName": {
          "__rl": true,
          "value": "documents",
          "mode": "list",
          "cachedResultName": "documents"
        },
        "topK": 20,
        "useReranker": true,
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.vectorStoreSupabase",
      "typeVersion": 1.3,
      "position": [
        1360,
        464
      ],
      "id": "61a28cf6-970e-40f9-bdec-aa5cd1a1a1f7",
      "name": "VS1",
      "credentials": {
        "supabaseApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "modelName": "rerank-multilingual-v3.0"
      },
      "type": "@n8n/n8n-nodes-langchain.rerankerCohere",
      "typeVersion": 1,
      "position": [
        1552,
        640
      ],
      "id": "c71da05e-d5d7-4c6f-9629-630d0895293b",
      "name": "Reranker Cohere1",
      "credentials": {
        "cohereApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {},
      "type": "n8n-nodes-base.wait",
      "typeVersion": 1.1,
      "position": [
        224,
        864
      ],
      "id": "40663288-1f10-4745-bb40-b305e9f69067",
      "name": "Wait"
    }
  ],
  "connections": {
    "When chat message received": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Cari schema": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Manual eksekusi schema db": {
      "main": [
        [
          {
            "node": "Cari schema",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Default Data Loader": {
      "ai_document": [
        [
          {
            "node": "Supabase Vector Store",
            "type": "ai_document",
            "index": 0
          }
        ]
      ]
    },
    "Merge": {
      "main": [
        [
          {
            "node": "Supabase Vector Store",
            "type": "main",
            "index": 0
          },
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [],
        [
          {
            "node": "Table Schema",
            "type": "main",
            "index": 0
          },
          {
            "node": "Sample Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Table Schema": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Call_MYSQL": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "VS": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Reranker Cohere": {
      "ai_reranker": [
        [
          {
            "node": "VS",
            "type": "ai_reranker",
            "index": 0
          }
        ]
      ]
    },
    "Simple Memory": {
      "ai_memory": [
        [
          {
            "node": "AI Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        []
      ]
    },
    "Sample Data": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Cari schema1": {
      "main": [
        []
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings OpenAI": {
      "ai_embedding": [
        [
          {
            "node": "Supabase Vector Store",
            "type": "ai_embedding",
            "index": 0
          },
          {
            "node": "VS",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "Anthropic Chat Model": {
      "ai_languageModel": [
        []
      ]
    },
    "Default Data Loader1": {
      "ai_document": [
        [
          {
            "node": "Supabase Vector Store1",
            "type": "ai_document",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings Google Gemini": {
      "ai_embedding": [
        [
          {
            "node": "Supabase Vector Store1",
            "type": "ai_embedding",
            "index": 0
          },
          {
            "node": "VS1",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "Reranker Cohere1": {
      "ai_reranker": [
        [
          {
            "node": "VS1",
            "type": "ai_reranker",
            "index": 0
          }
        ]
      ]
    },
    "Supabase Vector Store": {
      "main": [
        []
      ]
    },
    "Wait": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": true,
  "settings": {
    "executionOrder": "v1",
    "binaryMode": "separate"
  },
  "versionId": "f7b66292-30f2-421c-8c50-ca7a0f1bc9df",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "id": "sIUB3a6ADlaxWaOY",
  "tags": []
}