{"workflow":{"id":13575,"name":"Chat with PDF, CSV, and JSON documents using Google Gemini RAG","views":331,"recentViews":2,"totalViews":331,"createdAt":"2026-02-21T19:29:47.306Z","description":"## Overview\n\nTurn documents into an AI-powered knowledge base.\n\nUpload PDF, CSV, or JSON files and ask natural-language questions about their content using a Retrieval-Augmented Generation (RAG) workflow powered by Google Gemini. The workflow extracts, embeds, and semantically searches document data to generate accurate, source-grounded answers.\n\nDesigned as a simple and extensible starting point for building AI document assistants.\n\n---\n\n## Key Features\n\n- Upload and analyze **PDF, CSV, and JSON**\n- AI chatbot with semantic document search\n- Retrieval-Augmented Generation (RAG) architecture\n- Answers grounded in uploaded documents\n- Beginner-friendly workflow with clear documentation\n- Easy to extend for production use\n\n---\n\n## How It Works\n\n1. Upload a document via form trigger  \n2. Content is split into searchable chunks  \n3. Gemini generates embeddings  \n4. Data is stored in a vector store  \n5. The chatbot retrieves context and answers questions  \n\n---\n\n## Requirements\n\n- Google Gemini API credentials\n\n---\n\n## Notes\n\n- Uses an **in-memory vector store** (data resets on restart)\n- Can be replaced with Pinecone, Supabase, Weaviate, or other persistent databases\n- Gemini API usage may incur costs depending on document size and query volume","workflow":{"id":"lneyM4DwfKEiLcpY","meta":{"tags":["AI","RAG","Chatbot","Documents","Knowledge Base","Gemini","Automation"],"useCase":"Turn documents into an interactive AI knowledge base and chatbot.","createdBy":{"url":"https://ainconsulting.com","name":"Md. Khalid Ali"},"categories":["AI","Productivity","Knowledge Base"],"instanceId":"","description":"Upload PDF, CSV, or JSON files and ask questions about their content using an AI-powered Retrieval-Augmented Generation (RAG) workflow built with Google Gemini. Demonstrates document ingestion, vector storage, and conversational retrieval in a beginner-friendly automation.","templateCredsSetupCompleted":true},"name":"AI Multi-Format Document Q&A (PDF, CSV, JSON)","tags":[],"nodes":[{"id":"b558578b-4be9-4fb0-b339-ed135510ec28","name":"Document Upload Form","type":"n8n-nodes-base.formTrigger","position":[-704,-192],"webhookId":"63535cab-49e2-4d33-a1f2-29d512b1a6ef","parameters":{"options":{"appendAttribution":false},"formTitle":"Document Upload for Knowledge Base","formFields":{"values":[{"fieldType":"file","fieldLabel":"Document File","acceptFileTypes":".pdf, .csv, .json"}]},"formDescription":"Upload PDF, CSV, or JSON files"},"typeVersion":2.3},{"id":"285ec04b-4619-479a-b50e-b4a57ef6a330","name":"Add Metadata","type":"n8n-nodes-base.set","position":[-512,-192],"parameters":{"options":{},"assignments":{"assignments":[{"id":"id-1","name":"filename","type":"string","value":"={{ $json['Document File'][0].filename }}"},{"id":"id-2","name":"fileType","type":"string","value":"={{ $json['Document File'][0].mimetype }}"},{"id":"id-3","name":"uploadDate","type":"string","value":"={{ $json.submittedAt }}"}]},"includeOtherFields":true},"typeVersion":3.4},{"id":"fabb9bbe-9bac-4dbd-b854-fa7b8dede758","name":"Vector Store Insert","type":"@n8n/n8n-nodes-langchain.vectorStoreInMemory","position":[-256,-192],"parameters":{"mode":"insert","memoryKey":{"__rl":true,"mode":"id","value":"Document_File"}},"typeVersion":1.3},{"id":"f73dc9fd-da62-4435-804e-be58a1c919da","name":"Document Loader","type":"@n8n/n8n-nodes-langchain.documentDefaultDataLoader","position":[-176,48],"parameters":{"options":{},"dataType":"binary","textSplittingMode":"custom"},"typeVersion":1.1},{"id":"f5f283b0-7584-4404-8b3c-aac6c725b4ea","name":"Chatbot Trigger","type":"@n8n/n8n-nodes-langchain.chatTrigger","position":[-1568,304],"webhookId":"a28ad270-0da3-485d-8f46-9ffc08e263d7","parameters":{"public":true,"options":{"title":"AI Document Knowledge Base Assistant","subtitle":"Ask any questions about the uploaded document"},"initialMessages":"Hi! I'm your virtual assistant. You can ask me anything about the knowledge database that I have."},"typeVersion":1.4},{"id":"dffdf4a3-c72c-4f55-bb55-0ab1c7e804bb","name":"Knowledge Base Agent","type":"@n8n/n8n-nodes-langchain.agent","position":[-1360,304],"parameters":{"text":"={{ $json.chatInput }}","options":{"systemMessage":"You are an advanced AI Knowledge Base Assistant designed to answer questions strictly based on uploaded documents.\n\nOPERATING RULES:\n\n1. Always search the knowledge base before answering.\n2. Only use information retrieved from the vector database.\n3. If the answer is not found, clearly say: \"I could not find this information in the uploaded documents.\"\n4. Never hallucinate or invent details.\n5. When possible, cite the source filename and relevant section.\n6. Provide structured, clear, and concise answers.\n7. If the user asks for summaries, provide a well-organized summary.\n8. If the user asks for analysis, compare, or insights, derive them strictly from the retrieved data.\n9. If the uploaded file is CSV or JSON, interpret it intelligently (tables, fields, values, trends).\n10. Keep answers professional, factual, and helpful.\n\nRESPONSE STYLE:\n\n- Use bullet points when helpful\n- Use short paragraphs\n- Be precise and information-dense\n- Avoid filler text"},"promptType":"define"},"typeVersion":3},{"id":"1bb26476-a290-4cf2-8243-3fa7bd658617","name":"Chat Memory","type":"@n8n/n8n-nodes-langchain.memoryBufferWindow","position":[-1264,480],"parameters":{"contextWindowLength":10},"typeVersion":1.3},{"id":"f4ca267b-9623-4a8f-8698-fc771185fc4b","name":"Embeddings Google Gemini","type":"@n8n/n8n-nodes-langchain.embeddingsGoogleGemini","position":[-320,48],"parameters":{"modelName":"models/gemini-embedding-001"},"typeVersion":1},{"id":"a1b48a08-63f2-4f8e-a905-df7545affc08","name":"Google Gemini Chat Model","type":"@n8n/n8n-nodes-langchain.lmChatGoogleGemini","position":[-1424,480],"parameters":{"options":{}},"typeVersion":1},{"id":"dd4ea245-64ad-4243-9741-8512e51fa0c3","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-816,-240],"parameters":{"color":6,"width":992,"height":608,"content":"## Document Ingestion"},"typeVersion":1},{"id":"8b98eaff-7c1c-4621-8c25-c5ff3292a563","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[-1632,160],"parameters":{"color":6,"width":800,"height":560,"content":"## Chat and AI response"},"typeVersion":1},{"id":"249ef950-2c97-4a43-abd4-7e7316a318d2","name":"Vector Store Retrieve","type":"@n8n/n8n-nodes-langchain.vectorStoreInMemory","position":[-1120,480],"parameters":{"mode":"retrieve-as-tool","topK":5,"memoryKey":{"__rl":true,"mode":"id","value":"Document_File"},"toolDescription":"Search the knowledge base for information from uploaded documents"},"typeVersion":1.3},{"id":"2660e12e-00c0-48dd-918d-f2195b7b9d84","name":"Token Splitter","type":"@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter","position":[-176,208],"parameters":{"options":{},"chunkOverlap":200},"typeVersion":1},{"id":"fa62450f-95da-47db-9fce-7781e38ae8db","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[-1088,-944],"parameters":{"width":1488,"height":624,"content":"## Chat with PDF, CSV, and JSON documents using AI\n\nThis workflow turns uploaded documents into an AI-powered knowledge base. Users can upload PDF, CSV, or JSON files and ask questions about their content through a chatbot interface. The workflow converts documents into embeddings and retrieves relevant information before generating answers, ensuring responses are grounded in uploaded data.\n\nThis template is designed as a simple starting point for building document assistants using Retrieval-Augmented Generation (RAG). It demonstrates how ingestion, vector storage, and AI interaction work together in a practical automation workflow.\n\n## How it works\n\n1. A document is uploaded using the form trigger  \n2. The content is extracted and split into smaller chunks  \n3. Google Gemini generates embeddings  \n4. Data is stored in a vector store  \n5. The chatbot retrieves relevant context  \n6. AI generates answers based on retrieved content  \n\n## Setup steps\n\n1. Add Google Gemini API credentials  \n2. Activate the workflow  \n3. Upload a PDF, CSV, or JSON document  \n4. Open the chat interface and ask questions"},"typeVersion":1},{"id":"8546dc07-be90-4787-a15d-8160f874d97a","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[-1184,-240],"parameters":{"width":368,"content":"## Processes uploaded files and converts them into searchable embeddings used for semantic retrieval."},"typeVersion":1},{"id":"1ca4171f-0379-492a-9892-a0c628c8dd1f","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[-1632,0],"parameters":{"width":368,"content":"## Retrieves relevant document context and generates grounded AI answers using a RAG-based agent."},"typeVersion":1},{"id":"89ee1a7c-ffee-4274-b3df-db075ef59c98","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[176,-240],"parameters":{"width":368,"height":176,"content":"## Uses an in-memory vector store. Data resets when the workflow restarts. Replace with a persistent database for production use."},"typeVersion":1}],"active":false,"pinData":{},"settings":{"executionOrder":"v1"},"versionId":"4c20faf5-2dcd-4f4b-bdd7-15677f93f6dd","connections":{"Chat Memory":{"ai_memory":[[{"node":"Knowledge Base Agent","type":"ai_memory","index":0}]]},"Add Metadata":{"main":[[{"node":"Vector Store Insert","type":"main","index":0}]]},"Token Splitter":{"ai_textSplitter":[[{"node":"Document Loader","type":"ai_textSplitter","index":0}]]},"Chatbot Trigger":{"main":[[{"node":"Knowledge Base Agent","type":"main","index":0}]]},"Document Loader":{"ai_document":[[{"node":"Vector Store Insert","type":"ai_document","index":0}]]},"Document Upload Form":{"main":[[{"node":"Add Metadata","type":"main","index":0}]]},"Vector Store Retrieve":{"ai_tool":[[{"node":"Knowledge Base Agent","type":"ai_tool","index":0}]]},"Embeddings Google Gemini":{"ai_embedding":[[{"node":"Vector Store Insert","type":"ai_embedding","index":0},{"node":"Vector Store Retrieve","type":"ai_embedding","index":0}]]},"Google Gemini Chat Model":{"ai_languageModel":[[{"node":"Knowledge Base Agent","type":"ai_languageModel","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":17,"nodeTypes":{"n8n-nodes-base.set":{"count":1},"n8n-nodes-base.stickyNote":{"count":6},"n8n-nodes-base.formTrigger":{"count":1},"@n8n/n8n-nodes-langchain.agent":{"count":1},"@n8n/n8n-nodes-langchain.chatTrigger":{"count":1},"@n8n/n8n-nodes-langchain.lmChatGoogleGemini":{"count":1},"@n8n/n8n-nodes-langchain.memoryBufferWindow":{"count":1},"@n8n/n8n-nodes-langchain.vectorStoreInMemory":{"count":2},"@n8n/n8n-nodes-langchain.embeddingsGoogleGemini":{"count":1},"@n8n/n8n-nodes-langchain.documentDefaultDataLoader":{"count":1},"@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"Md Khalid Ali","username":"khalidali","bio":"AI and automation consultant helping organizations streamline operations, unlock value from data, and build intelligent, scalable workflows. Through Ain Consulting, I design practical automation and AI solutions using n8n that reduce manual effort, improve decision-making, and accelerate digital transformation. With professional experience in digital technology and product-driven environments, I focus on delivering structured, business-aligned automation that produces measurable impact.","verified":false,"links":["www.ainconsulting.com"],"avatar":"https://gravatar.com/avatar/a2503ec564b3a438599234fddba3491e022d10eab1e7db1358534480d98cb77b?r=pg&d=retro&size=200"},"nodes":[{"id":38,"icon":"fa:pen","name":"n8n-nodes-base.set","codex":{"data":{"alias":["Set","JS","JSON","Filter","Transform","Map"],"resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/database-monitoring-and-alerting-with-n8n/","icon":"📡","label":"Database Monitoring and Alerting with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/","icon":"📹","label":"The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/","icon":"🧰","label":"Learn to Build Powerful API Endpoints Using Webhooks"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.set/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"input\"]","defaults":{"name":"Edit Fields"},"iconData":{"icon":"pen","type":"icon"},"displayName":"Edit Fields (Set)","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":565,"icon":"fa:sticky-note","name":"n8n-nodes-base.stickyNote","codex":{"data":{"alias":["Comments","Notes","Sticky"],"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"input\"]","defaults":{"name":"Sticky Note","color":"#FFD233"},"iconData":{"icon":"sticky-note","type":"icon"},"displayName":"Sticky Note","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1119,"icon":"fa:robot","name":"@n8n/n8n-nodes-langchain.agent","codex":{"data":{"alias":["LangChain","Chat","Conversational","Plan and Execute","ReAct","Tools"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Agents","Root Nodes"]}}},"group":"[\"transform\"]","defaults":{"name":"AI Agent","color":"#404040"},"iconData":{"icon":"robot","type":"icon"},"displayName":"AI Agent","typeVersion":3,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1163,"icon":"fa:database","name":"@n8n/n8n-nodes-langchain.memoryBufferWindow","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memorybufferwindow/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Memory"],"Memory":["For beginners"]}}},"group":"[\"transform\"]","defaults":{"name":"Simple Memory"},"iconData":{"icon":"database","type":"icon"},"displayName":"Simple Memory","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1191,"icon":"fa:grip-lines-vertical","name":"@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.textsplitterrecursivecharactertextsplitter/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Text Splitters"]}}},"group":"[\"transform\"]","defaults":{"name":"Recursive Character Text Splitter"},"iconData":{"icon":"grip-lines-vertical","type":"icon"},"displayName":"Recursive Character Text Splitter","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1209,"icon":"fa:database","name":"@n8n/n8n-nodes-langchain.vectorStoreInMemory","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstoreinmemory/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Vector Stores","Tools","Root Nodes"],"Tools":["Other Tools"],"Vector Stores":["For Beginners"]}}},"group":"[\"transform\"]","defaults":{"name":"Simple Vector Store"},"iconData":{"icon":"database","type":"icon"},"displayName":"Simple Vector Store","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1225,"icon":"file:form.svg","name":"n8n-nodes-base.formTrigger","codex":{"data":{"alias":["table","submit","post"],"resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.formtrigger/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Other Trigger Nodes"]}}},"group":"[\"trigger\"]","defaults":{"name":"On form submission"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NiIgaGVpZ2h0PSI0MCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzAwQjdCQyIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzQuOTc4IDM3LjczMmExLjU2IDEuNTYgMCAwIDEtMS41NjIgMS41NjNINi4yNmExLjU2IDEuNTYgMCAwIDEtMS41NjMtMS41NjNWOS42MDdjMC0uNDA1LjE1Ny0uNzk0LjQzOC0xLjA4Nmw2LjMwNC02LjUzMXY1LjM0NEg4LjIxM2ExLjE3MiAxLjE3MiAwIDEgMCAwIDIuMzQzaDQuNDNhMS4xNyAxLjE3IDAgMCAwIDEuMTcxLTEuMTcxVi4yMzJoMTkuNjAyYTEuNTYgMS41NiAwIDAgMSAxLjU2MiAxLjU2M3YxMC4zMjdsLTIuODYgMi44Ni04LjI1MiA4LjI3NmE0MTMuMDA2IDQxMy4wMDYgMCAwIDEtMS42NTQgMS42NjJsLS4zMzcuMzM3YTIgMiAwIDAgMC0uNTU3IDEuMDhMMjAuMyAzMS45MjJjLS4xMDguNjM4LS4yMTUgMS4wNzkuMjExIDEuNDE4LjQwMy4zMi45LjE3NCAxLjU0LjA2Nmw1LjQwOC0uOTI4YTIgMiAwIDAgMCAxLjA4LS41NTZsNi40NC02LjQyOXptLTI0LjAzLTIxLjI2NWExLjE4IDEuMTggMCAwIDAgMS4xNzEgMS4xNzJoMTMuMTYzYTEuMTcyIDEuMTcyIDAgMSAwIDAtMi4zNDRIMTIuMTE5YTEuMTcgMS4xNyAwIDAgMC0xLjE3MiAxLjE3Mm03LjI5NCAxNC43NjZhMS4xNyAxLjE3IDAgMCAwLTEuMTcyLTEuMTcySDEyLjEyYTEuMTcyIDEuMTcyIDAgMSAwIDAgMi4zNDNoNC45NTFhMS4xNyAxLjE3IDAgMCAwIDEuMTcyLTEuMTcybS44Ni03LjM5MWExLjE3IDEuMTcgMCAwIDAtMS4xNzItMS4xNzJoLTUuODExYTEuMTcyIDEuMTcyIDAgMSAwIDAgMi4zNDNoNS44MWExLjE2NCAxLjE2NCAwIDAgMCAxLjE3My0xLjE3MSIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iIzAwQjdCQyIgZD0ibTMzLjUzMiAxNi4zOTcgNC4yODktNC4yODkgMy43NTggMy43MSAxLjYxNy0xLjYxNiAyLjI1OCAyLjI1N2MuMjE4LjIxOC4zNC41MTMuMzQzLjgyLS4wMDIuMzExLS4xMjUuNjA4LS4zNDQuODNsLTYuODA0IDYuNzk2YTEuMTMgMS4xMyAwIDAgMS0uODI4LjM0MyAxLjE1IDEuMTUgMCAwIDEtLjgyOC0uMzQzIDEuMTggMS4xOCAwIDAgMSAwLTEuNjU3bDUuOTc2LTUuOTY4LTEuMzEyLTEuMzEzLTEuMzgzIDEuNDE0LTEzLjE0OSAxMy4xMjUtNC42MTcuNzgyLjc4Mi00LjYxNy4zMzYtLjMzNyAyLjU2MiAyLjU1NWExLjEgMS4xIDAgMCAwIC44MjguMzQ0Yy4zMTIuMDA1LjYxMi0uMTIuODI4LS4zNDRhMS4xOCAxLjE4IDAgMCAwIDAtMS42NTZsLTIuNTYyLTIuNTYyek00NC43MzYgMTIuMjRjMCAuNDE0LS4xNjMuODEtLjQ1NCAxLjEwMmwtLjkyMi45MTQtMy44NTItMy44MjguOTMtLjkzYTEuNTYzIDEuNTYzIDAgMCAxIDIuMjAzIDBsMS42NCAxLjY0MWMuMjkxLjI5My40NTUuNjkuNDU1IDEuMTAyIi8+PC9zdmc+"},"displayName":"n8n Form Trigger","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1243,"icon":"file:binary.svg","name":"@n8n/n8n-nodes-langchain.documentDefaultDataLoader","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.documentdefaultdataloader/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Document Loaders"]}}},"group":"[\"transform\"]","defaults":{"name":"Default Data Loader"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI3NjgiIGhlaWdodD0iMTAyNCI+PHBhdGggZmlsbD0iIzdEN0Q4NyIgZD0iTTAgOTYwVjY0aDU3NmwxOTIgMTkydjcwNHptNzA0LTY0MEw1MTIgMTI4SDY0djc2OGg2NDB6TTMyMCA1MTJIMTI4VjI1NmgxOTJ6bS02NC0xOTJoLTY0djEyOGg2NHptMCA0NDhoNjR2NjRIMTI4di02NGg2NFY2NDBoLTY0di02NGgxMjh6bTI1Ni0zMjBoNjR2NjRIMzg0di02NGg2NFYzMjBoLTY0di02NGgxMjh6bTY0IDM4NEgzODRWNTc2aDE5MnptLTY0LTE5MmgtNjR2MTI4aDY0eiIvPjwvc3ZnPg=="},"displayName":"Default Data Loader","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1247,"icon":"fa:comments","name":"@n8n/n8n-nodes-langchain.chatTrigger","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-langchain.chattrigger/"}]},"categories":["Core Nodes","Langchain"]}},"group":"[\"trigger\"]","defaults":{"name":"When chat message received"},"iconData":{"icon":"comments","type":"icon"},"displayName":"Chat Trigger","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"},{"id":26,"name":"Langchain"}]},{"id":1261,"icon":"file:google.svg","name":"@n8n/n8n-nodes-langchain.embeddingsGoogleGemini","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.embeddingsgooglegemini/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Embeddings"]}}},"group":"[\"transform\"]","defaults":{"name":"Embeddings Google Gemini"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgNDggNDgiPjxkZWZzPjxwYXRoIGlkPSJhIiBkPSJNNDQuNSAyMEgyNHY4LjVoMTEuOEMzNC43IDMzLjkgMzAuMSAzNyAyNCAzN2MtNy4yIDAtMTMtNS44LTEzLTEzczUuOC0xMyAxMy0xM2MzLjEgMCA1LjkgMS4xIDguMSAyLjlsNi40LTYuNEMzNC42IDQuMSAyOS42IDIgMjQgMiAxMS44IDIgMiAxMS44IDIgMjRzOS44IDIyIDIyIDIyYzExIDAgMjEtOCAyMS0yMiAwLTEuMy0uMi0yLjctLjUtNCIvPjwvZGVmcz48Y2xpcFBhdGggaWQ9ImIiPjx1c2UgeGxpbms6aHJlZj0iI2EiIG92ZXJmbG93PSJ2aXNpYmxlIi8+PC9jbGlwUGF0aD48cGF0aCBmaWxsPSIjRkJCQzA1IiBkPSJNMCAzN1YxMWwxNyAxM3oiIGNsaXAtcGF0aD0idXJsKCNiKSIvPjxwYXRoIGZpbGw9IiNFQTQzMzUiIGQ9Im0wIDExIDE3IDEzIDctNi4xTDQ4IDE0VjBIMHoiIGNsaXAtcGF0aD0idXJsKCNiKSIvPjxwYXRoIGZpbGw9IiMzNEE4NTMiIGQ9Im0wIDM3IDMwLTIzIDcuOSAxTDQ4IDB2NDhIMHoiIGNsaXAtcGF0aD0idXJsKCNiKSIvPjxwYXRoIGZpbGw9IiM0Mjg1RjQiIGQ9Ik00OCA0OCAxNyAyNGwtNC0zIDM1LTEweiIgY2xpcC1wYXRoPSJ1cmwoI2IpIi8+PC9zdmc+"},"displayName":"Embeddings Google Gemini","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1262,"icon":"file:google.svg","name":"@n8n/n8n-nodes-langchain.lmChatGoogleGemini","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatgooglegemini/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]}}},"group":"[\"transform\"]","defaults":{"name":"Google Gemini Chat Model"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgNDggNDgiPjxkZWZzPjxwYXRoIGlkPSJhIiBkPSJNNDQuNSAyMEgyNHY4LjVoMTEuOEMzNC43IDMzLjkgMzAuMSAzNyAyNCAzN2MtNy4yIDAtMTMtNS44LTEzLTEzczUuOC0xMyAxMy0xM2MzLjEgMCA1LjkgMS4xIDguMSAyLjlsNi40LTYuNEMzNC42IDQuMSAyOS42IDIgMjQgMiAxMS44IDIgMiAxMS44IDIgMjRzOS44IDIyIDIyIDIyYzExIDAgMjEtOCAyMS0yMiAwLTEuMy0uMi0yLjctLjUtNCIvPjwvZGVmcz48Y2xpcFBhdGggaWQ9ImIiPjx1c2UgeGxpbms6aHJlZj0iI2EiIG92ZXJmbG93PSJ2aXNpYmxlIi8+PC9jbGlwUGF0aD48cGF0aCBmaWxsPSIjRkJCQzA1IiBkPSJNMCAzN1YxMWwxNyAxM3oiIGNsaXAtcGF0aD0idXJsKCNiKSIvPjxwYXRoIGZpbGw9IiNFQTQzMzUiIGQ9Im0wIDExIDE3IDEzIDctNi4xTDQ4IDE0VjBIMHoiIGNsaXAtcGF0aD0idXJsKCNiKSIvPjxwYXRoIGZpbGw9IiMzNEE4NTMiIGQ9Im0wIDM3IDMwLTIzIDcuOSAxTDQ4IDB2NDhIMHoiIGNsaXAtcGF0aD0idXJsKCNiKSIvPjxwYXRoIGZpbGw9IiM0Mjg1RjQiIGQ9Ik00OCA0OCAxNyAyNGwtNC0zIDM1LTEweiIgY2xpcC1wYXRoPSJ1cmwoI2IpIi8+PC9zdmc+"},"displayName":"Google Gemini Chat Model","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]}],"categories":[{"id":35,"name":"Document Extraction"},{"id":48,"name":"AI RAG"}],"image":[]}}