Qdrant RAG와 Ollama를 사용한 로컬 AI Kaggle 대회 어시스턴트 구축
고급
이것은Engineering, AI분야의자동화 워크플로우로, 23개의 노드를 포함합니다.주로 Set, Merge, Switch, Markdown, ReadWriteFile 등의 노드를 사용하며인공지능 기술을 결합하여 스마트 자동화를 구현합니다. Qdrant RAG와 Ollama를 사용하여 로컬 AI Kaggle 경쟁 어시스턴트 구축
사전 요구사항
- •Qdrant 서버 연결 정보
사용된 노드 (23)
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"meta": {
"instanceId": "13a0050774c7f2acc1474b06f046215039c01087a78215e5a78461e6efc6cb1a",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "70b42807-a6c6-4159-b278-e77311727798",
"name": "로컬 파일 트리거",
"type": "n8n-nodes-base.localFileTrigger",
"position": [
-3060,
-40
],
"parameters": {
"path": "C:\\\\ipynb\\\\loadme",
"events": [
"add"
],
"options": {
"usePolling": true,
"followSymlinks": true,
"awaitWriteFinish": true
},
"triggerOn": "folder"
},
"typeVersion": 1
},
{
"id": "893f1157-6c00-4b8e-b726-462ab371fadf",
"name": "기본 데이터 로더",
"type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
"position": [
-1500,
300
],
"parameters": {
"options": {}
},
"typeVersion": 1
},
{
"id": "9a9bfcee-1966-415c-a59f-552e1f35aae9",
"name": "재귀적 문자 텍스트 분할기",
"type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
"position": [
-1360,
440
],
"parameters": {
"options": {},
"chunkSize": 40,
"chunkOverlap": 10
},
"typeVersion": 1
},
{
"id": "a7c971a5-39ac-4715-9e1b-a56af9713b06",
"name": "설정",
"type": "n8n-nodes-base.set",
"position": [
-3040,
180
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "6b7d26f9-3a38-417e-85d0-4e9d42476465",
"name": "path",
"type": "string",
"value": "=C:\\\\ipynb\\\\loadme\\\\"
},
{
"id": "bb4471c7-d894-4739-99a6-4be247794ffa",
"name": "filename",
"type": "string",
"value": "={{ $json.path.split('\\\\').last() }}"
}
]
}
},
"typeVersion": 3.3
},
{
"id": "6384792b-de76-4e43-b26e-12c2d15c2dd2",
"name": "병합",
"type": "n8n-nodes-base.merge",
"position": [
-1740,
260
],
"parameters": {},
"typeVersion": 2.1
},
{
"id": "db4de019-755e-4b91-ac70-f30825f14033",
"name": "파일 유형 가져오기",
"type": "n8n-nodes-base.switch",
"position": [
-2620,
80
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "html",
"conditions": {
"options": {
"version": 1,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "75188d2f-4bea-44ea-a579-9b9a1bd1ea93",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.fileType }}",
"rightValue": "html"
}
]
},
"renameOutput": true
}
]
},
"options": {}
},
"typeVersion": 3
},
{
"id": "4c56a14c-6c56-4cc1-b7fb-a09caa3d646d",
"name": "파일 가져오기",
"type": "n8n-nodes-base.readWriteFile",
"position": [
-2840,
80
],
"parameters": {
"options": {},
"fileSelector": "={{ $json.path }}{{ $json.filename }}"
},
"typeVersion": 1
},
{
"id": "c14a711f-29ab-475f-aeff-3a070c797537",
"name": "TEXT에서 추출",
"type": "n8n-nodes-base.extractFromFile",
"position": [
-2440,
80
],
"parameters": {
"options": {},
"operation": "text"
},
"typeVersion": 1
},
{
"id": "22ff782e-c612-4928-9033-111cf516d07e",
"name": "요약 체인",
"type": "@n8n/n8n-nodes-langchain.chainSummarization",
"position": [
-2040,
-20
],
"parameters": {
"options": {
"summarizationMethodAndPrompts": {
"values": {
"summarizationMethod": "refine"
}
}
},
"chunkSize": 4000
},
"typeVersion": 2
},
{
"id": "70fa17a5-3ec9-4a81-86bc-503581505ea1",
"name": "스티커 노트",
"type": "n8n-nodes-base.stickyNote",
"position": [
-3100,
-180
],
"parameters": {
"color": 7,
"width": 995,
"height": 554,
"content": "## Step 1. Watch Folder and Import New Documents\n[Read more about Local File Trigger](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.localfiletrigger)\n\nWith n8n's local file trigger, we're able to trigger the workflow when files are created in our target folder. We still have to import them however as the trigger will only give the file's path. The \"Extract From\" node is used to get at the file's contents."
},
"typeVersion": 1
},
{
"id": "a51cc8ac-e310-4825-adc6-fc57c68c09aa",
"name": "스티커 노트1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2060,
-200
],
"parameters": {
"color": 7,
"width": 824,
"height": 770,
"content": "## Step 2. Summarise and Vectorise Document Contents\n[Learn more about using the Qdrant VectorStore](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstoreqdrant)\n\nCapturing the document into our vector store is intended for a technique we'll use later known as Retrieval Augumented Generation or \"RAG\" for short. For our scenario, this allows our LLM to retrieve context more efficiently which produces better respsonses."
},
"typeVersion": 1
},
{
"id": "6d59dc6a-692a-4752-a811-8b3033898fa4",
"name": "Qdrant 벡터 저장소",
"type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant",
"position": [
-1600,
60
],
"parameters": {
"mode": "insert",
"options": {},
"qdrantCollection": {
"__rl": true,
"mode": "id",
"value": "test_rag"
}
},
"credentials": {
"qdrantApi": {
"id": "wqHGuxoW5RJJYSIl",
"name": "QdrantApi account"
}
},
"typeVersion": 1
},
{
"id": "f75f45cd-4aed-48a2-bb09-5db20b00a029",
"name": "마크다운",
"type": "n8n-nodes-base.markdown",
"position": [
-2260,
80
],
"parameters": {
"html": "={{ $json.data }}",
"options": {}
},
"typeVersion": 1
},
{
"id": "34fdd670-f568-4351-81c7-79fde68b8192",
"name": "Embeddings Ollama",
"type": "@n8n/n8n-nodes-langchain.embeddingsOllama",
"position": [
-1560,
420
],
"parameters": {
"model": "mxbai-embed-large:latest"
},
"credentials": {
"ollamaApi": {
"id": "jBqODDnXWJw9rGcS",
"name": "Ollama account"
}
},
"typeVersion": 1
},
{
"id": "4c4f71db-e496-4528-b0e5-dc5ffb27a2e8",
"name": "Ollama 요약기",
"type": "@n8n/n8n-nodes-langchain.lmOllama",
"position": [
-1900,
140
],
"parameters": {
"model": "ALIENTELLIGENCE/contentsummarizer:latest",
"options": {}
},
"credentials": {
"ollamaApi": {
"id": "jBqODDnXWJw9rGcS",
"name": "Ollama account"
}
},
"typeVersion": 1
},
{
"id": "0a2954cc-bec6-4750-ae75-6362761e41b6",
"name": "채팅 메시지 수신 시",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"position": [
-3020,
540
],
"webhookId": "9dd3e051-58a3-4c46-bd41-58c001f009f9",
"parameters": {
"options": {}
},
"typeVersion": 1.1
},
{
"id": "1ebe053c-0e26-44c6-b543-756ad551b99d",
"name": "AI 에이전트",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-2840,
540
],
"parameters": {
"options": {
"systemMessage": "This is a helpful and exacting data science LLM model and master Kaggle python programmer.\n\nIf Kaggle contest requirements are given from the chat input; first deeply research the problem.\n\nAccess the tool: \"previous_entry\" when preparing your background research.\n\nThen Ask any needed questions to clarify and understand the requirements necessary to build a program to address the challenge.\n\nReview your proposed program for errors and bugs.\n\nThen present the program.\n\nIf errors are returned; then iteratively debug with the chat user."
}
},
"typeVersion": 1.7
},
{
"id": "e042ec84-3bb6-466f-9957-0509a181d61b",
"name": "벡터 저장소 도구",
"type": "@n8n/n8n-nodes-langchain.toolVectorStore",
"position": [
-2580,
740
],
"parameters": {
"name": "previous_entry",
"description": "={{ $('When chat message received').item.json.chatInput }}"
},
"typeVersion": 1
},
{
"id": "fbae9bc0-6ea4-4a26-ad76-eb84bc5d06c2",
"name": "윈도우 버퍼 메모리",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
-2760,
780
],
"parameters": {
"contextWindowLength": 15
},
"typeVersion": 1.3
},
{
"id": "2f567628-fd1d-406b-aec7-46684bd6f5e6",
"name": "Qdrant 벡터 저장소2",
"type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant",
"position": [
-2680,
920
],
"parameters": {
"options": {},
"qdrantCollection": {
"__rl": true,
"mode": "list",
"value": "test_rag",
"cachedResultName": "test_rag"
}
},
"credentials": {
"qdrantApi": {
"id": "wqHGuxoW5RJJYSIl",
"name": "QdrantApi account"
}
},
"typeVersion": 1
},
{
"id": "3aea837f-7676-45da-b6b1-fb2f6c5f8cd9",
"name": "Ollama 채팅 모델3",
"type": "@n8n/n8n-nodes-langchain.lmChatOllama",
"position": [
-2900,
760
],
"parameters": {
"model": "qwen3:8b",
"options": {}
},
"credentials": {
"ollamaApi": {
"id": "jBqODDnXWJw9rGcS",
"name": "Ollama account"
}
},
"typeVersion": 1
},
{
"id": "a9298132-e5b9-44a2-9928-a1adf7cf9fc4",
"name": "Embeddings Ollama2",
"type": "@n8n/n8n-nodes-langchain.embeddingsOllama",
"position": [
-2660,
1080
],
"parameters": {
"model": "mxbai-embed-large:latest"
},
"credentials": {
"ollamaApi": {
"id": "jBqODDnXWJw9rGcS",
"name": "Ollama account"
}
},
"typeVersion": 1
},
{
"id": "a1c71691-8e41-4633-a1ab-4991833fb7c6",
"name": "Ollama 채팅 모델4",
"type": "@n8n/n8n-nodes-langchain.lmChatOllama",
"position": [
-2360,
900
],
"parameters": {
"model": "qwen3:8b",
"options": {}
},
"credentials": {
"ollamaApi": {
"id": "jBqODDnXWJw9rGcS",
"name": "Ollama account"
}
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"6384792b-de76-4e43-b26e-12c2d15c2dd2": {
"main": [
[
{
"node": "6d59dc6a-692a-4752-a811-8b3033898fa4",
"type": "main",
"index": 0
}
]
]
},
"f75f45cd-4aed-48a2-bb09-5db20b00a029": {
"main": [
[
{
"node": "22ff782e-c612-4928-9033-111cf516d07e",
"type": "main",
"index": 0
},
{
"node": "6384792b-de76-4e43-b26e-12c2d15c2dd2",
"type": "main",
"index": 1
}
]
]
},
"a7c971a5-39ac-4715-9e1b-a56af9713b06": {
"main": [
[
{
"node": "4c56a14c-6c56-4cc1-b7fb-a09caa3d646d",
"type": "main",
"index": 0
}
]
]
},
"4c56a14c-6c56-4cc1-b7fb-a09caa3d646d": {
"main": [
[
{
"node": "db4de019-755e-4b91-ac70-f30825f14033",
"type": "main",
"index": 0
}
]
]
},
"db4de019-755e-4b91-ac70-f30825f14033": {
"main": [
[
{
"node": "c14a711f-29ab-475f-aeff-3a070c797537",
"type": "main",
"index": 0
}
]
]
},
"34fdd670-f568-4351-81c7-79fde68b8192": {
"ai_embedding": [
[
{
"node": "6d59dc6a-692a-4752-a811-8b3033898fa4",
"type": "ai_embedding",
"index": 0
}
]
]
},
"c14a711f-29ab-475f-aeff-3a070c797537": {
"main": [
[
{
"node": "f75f45cd-4aed-48a2-bb09-5db20b00a029",
"type": "main",
"index": 0
}
]
]
},
"4c4f71db-e496-4528-b0e5-dc5ffb27a2e8": {
"ai_languageModel": [
[
{
"node": "22ff782e-c612-4928-9033-111cf516d07e",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"e042ec84-3bb6-466f-9957-0509a181d61b": {
"ai_tool": [
[
{
"node": "1ebe053c-0e26-44c6-b543-756ad551b99d",
"type": "ai_tool",
"index": 0
}
]
]
},
"a9298132-e5b9-44a2-9928-a1adf7cf9fc4": {
"ai_embedding": [
[
{
"node": "2f567628-fd1d-406b-aec7-46684bd6f5e6",
"type": "ai_embedding",
"index": 0
}
]
]
},
"70b42807-a6c6-4159-b278-e77311727798": {
"main": [
[
{
"node": "a7c971a5-39ac-4715-9e1b-a56af9713b06",
"type": "main",
"index": 0
}
]
]
},
"3aea837f-7676-45da-b6b1-fb2f6c5f8cd9": {
"ai_languageModel": [
[
{
"node": "1ebe053c-0e26-44c6-b543-756ad551b99d",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"a1c71691-8e41-4633-a1ab-4991833fb7c6": {
"ai_languageModel": [
[
{
"node": "e042ec84-3bb6-466f-9957-0509a181d61b",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"893f1157-6c00-4b8e-b726-462ab371fadf": {
"ai_document": [
[
{
"node": "6d59dc6a-692a-4752-a811-8b3033898fa4",
"type": "ai_document",
"index": 0
}
]
]
},
"6d59dc6a-692a-4752-a811-8b3033898fa4": {
"main": [
[]
]
},
"22ff782e-c612-4928-9033-111cf516d07e": {
"main": [
[
{
"node": "6384792b-de76-4e43-b26e-12c2d15c2dd2",
"type": "main",
"index": 0
}
]
]
},
"2f567628-fd1d-406b-aec7-46684bd6f5e6": {
"ai_vectorStore": [
[
{
"node": "e042ec84-3bb6-466f-9957-0509a181d61b",
"type": "ai_vectorStore",
"index": 0
}
]
]
},
"fbae9bc0-6ea4-4a26-ad76-eb84bc5d06c2": {
"ai_memory": [
[
{
"node": "1ebe053c-0e26-44c6-b543-756ad551b99d",
"type": "ai_memory",
"index": 0
}
]
]
},
"0a2954cc-bec6-4750-ae75-6362761e41b6": {
"main": [
[
{
"node": "1ebe053c-0e26-44c6-b543-756ad551b99d",
"type": "main",
"index": 0
}
]
]
},
"9a9bfcee-1966-415c-a59f-552e1f35aae9": {
"ai_textSplitter": [
[
{
"node": "893f1157-6c00-4b8e-b726-462ab371fadf",
"type": "ai_textSplitter",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 엔지니어링, 인공지능
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
⚡AI驱动의YouTube播放列表및视频摘要与분석v2
AI YouTube播放列表与视频분석채팅봇
If
Set
Code
+
If
Set
Code
72 노드dmr
기타
문서를 학습 노트로 분해
사용模板化MistralAI및Qdrant将文档分解为学习笔记
Set
Wait
Merge
+
Set
Wait
Merge
42 노드Jimleuk
기타
AI 스마트 어시스턴트: Supabase 스토리지 및 Google Drive 파일과 대화
AI스마트어시스턴트:与Supabase存储및Google Drive文件对话
If
Set
Wait
+
If
Set
Wait
62 노드Mark Shcherbakov
엔지니어링
Supabase 스토리지 내 파일과 대화하는 AI 에이전트
与Supabase存储中文件对话의AI스마트体
If
Merge
Switch
+
If
Merge
Switch
33 노드Mark Shcherbakov
엔지니어링
n8n 로컬 테스트
Llama3, Postgres, Qdrant와 Google Drive를 사용하여 프라이빗 문서 질문 응답 시스템을 생성합니다.
Set
Google Drive
Agent
+
Set
Google Drive
Agent
20 노드David Olusola
내부 위키
시각화 참조 라이브러리에서 n8n 노드를 탐색
可视化 참조 라이브러리에서 n8n 노드를 탐색
If
Ftp
Set
+
If
Ftp
Set
113 노드I versus AI
기타