AI 기반 Nextcloud 문서 채팅 시스템, LangChain 및 OpenAI 사용
고급
이것은AI, IT Ops분야의자동화 워크플로우로, 21개의 노드를 포함합니다.주로 If, Set, Code, Switch, Aggregate 등의 노드를 사용하며인공지능 기술을 결합하여 스마트 자동화를 구현합니다. AI 기반 Nextcloud 문서 채팅 시스템, LangChain 및 OpenAI 사용
사전 요구사항
- •OpenAI API Key
사용된 노드 (21)
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"meta": {
"instanceId": "634e789e9cac462123b2b4acaedfe20e105965d27f018a60d1d4305ae72b1acb"
},
"nodes": [
{
"id": "9745c907-14fe-49b8-9acf-b4e847bf2ebc",
"name": "채팅 메시지 수신 시",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"position": [
-1060,
-200
],
"webhookId": "42ca02f5-5d57-41aa-a8c7-34db652e2493",
"parameters": {
"public": true,
"options": {},
"initialMessages": "Hi there! 👋\nMy name is Johan. How can I assist you today?"
},
"typeVersion": 1.1
},
{
"id": "aa540b75-cb88-4f09-b76a-c1a66b2eb34b",
"name": "OpenAI 채팅 모델",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-1000,
40
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "qwen3-235b-a22b",
"cachedResultName": "qwen3-235b-a22b"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "e3etpZ3VT4nd9brg",
"name": "gwdg api"
}
},
"typeVersion": 1.2
},
{
"id": "fcb5b3c9-c0d4-41b1-8f76-58c2bb1bf822",
"name": "단순 메모리",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
-840,
40
],
"parameters": {},
"typeVersion": 1.3
},
{
"id": "da680124-9c4e-4bb7-9d70-8ae0d5515bb0",
"name": "AI Nextcloud",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-860,
-200
],
"parameters": {
"options": {}
},
"typeVersion": 1.9
},
{
"id": "cce0ea8a-5bd1-48ad-9e2c-bca053755278",
"name": "다른 워크플로우에 의해 실행 시",
"type": "n8n-nodes-base.executeWorkflowTrigger",
"position": [
-1620,
580
],
"parameters": {
"workflowInputs": {
"values": [
{
"name": "path"
}
]
}
},
"typeVersion": 1.1
},
{
"id": "d382c346-4f35-4772-a3e3-2104be66ffce",
"name": "스위치",
"type": "n8n-nodes-base.switch",
"position": [
-720,
500
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "pdf",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "902f5ebf-b91a-48d1-a1bf-9a46c98a0853",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.contentType }}",
"rightValue": "application/pdf"
}
]
},
"renameOutput": true
},
{
"outputKey": "md",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "8c48e515-832a-421c-8cde-7c1123c14467",
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.contentType }}",
"rightValue": "text/markdown"
}
]
},
"renameOutput": true
},
{
"outputKey": "docx",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "044f36c5-5787-4308-9b49-8b28d0288649",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.contentType }}",
"rightValue": "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
}
]
},
"renameOutput": true
}
]
},
"options": {}
},
"typeVersion": 3.2
},
{
"id": "14addc84-0661-4913-bf6b-9870cce876bf",
"name": "집계",
"type": "n8n-nodes-base.aggregate",
"position": [
-60,
500
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData"
},
"typeVersion": 1
},
{
"id": "e7a14c39-5853-4e2f-8549-47917eedd3ac",
"name": "출력",
"type": "n8n-nodes-base.set",
"position": [
120,
500
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "0f77cdc0-3115-4abd-91aa-069a36b1a7ac",
"name": "output",
"type": "string",
"value": "={{ $json.data }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "dc6ee0ee-b2e8-433d-8acb-b182dc6e8529",
"name": "스티커 노트",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1700,
260
],
"parameters": {
"color": 6,
"width": 2080,
"height": 700,
"content": "# Subworkflow \n\n## Nextcloud\n\nList Files in a gigven path and returns Dile contents form docs\n\nRequired Community Node:\nhttps://www.npmjs.com/package/n8n-nodes-word2text\n"
},
"typeVersion": 1
},
{
"id": "858059e4-6a66-4442-8a04-d9cd4fd6dcc0",
"name": "읽기 가능한 경우",
"type": "n8n-nodes-base.if",
"position": [
-1120,
580
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "or",
"conditions": [
{
"id": "dcc91aaa-d9bb-4c11-88b7-c569f811ec1d",
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.contentType }}",
"rightValue": "pdf"
},
{
"id": "b7695016-8a8d-460e-977e-f415443df1f2",
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.contentType }}",
"rightValue": "markdown"
},
{
"id": "ca8021f0-a853-4a09-aee9-96494a66d131",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.contentType }}",
"rightValue": "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "e3341daa-f89d-4666-848a-1dbcfb7a9f74",
"name": "파일 가져오기",
"type": "n8n-nodes-base.nextCloud",
"position": [
-1300,
580
],
"parameters": {
"path": "={{ $json.path }}",
"resource": "folder",
"operation": "list"
},
"credentials": {
"nextCloudApi": {
"id": "3nENap8sZI7MN816",
"name": "NextCloud account"
}
},
"typeVersion": 1
},
{
"id": "23d1168d-c0f1-412c-bfe2-fc229cd0567a",
"name": "파일 다운로드",
"type": "n8n-nodes-base.nextCloud",
"position": [
-900,
500
],
"parameters": {
"path": "={{ $json.path.urlDecode() }}",
"operation": "download"
},
"credentials": {
"nextCloudApi": {
"id": "3nENap8sZI7MN816",
"name": "NextCloud account"
}
},
"typeVersion": 1
},
{
"id": "9aaeb43a-6156-4c72-a090-9eb07fb2a85c",
"name": "경로 1 추가",
"type": "n8n-nodes-base.code",
"position": [
-320,
300
],
"parameters": {
"jsCode": "for (const item of $input.all()) {\n item.json.path = $('Switch').first().json.path;\n}\n\nreturn $input.all();"
},
"typeVersion": 2
},
{
"id": "fe21734c-e0e5-43f3-8bb9-4fd976ab61a9",
"name": "경로 2 추가",
"type": "n8n-nodes-base.code",
"position": [
-320,
500
],
"parameters": {
"jsCode": "// Loop over input items and add a new field called 'myNewField' to the JSON of each one\nfor (const item of $input.all()) {\n item.json.path = $('Switch').first().json.path;\n}\n\nreturn $input.all();"
},
"typeVersion": 2
},
{
"id": "46bb7f6b-7a0d-4761-b50b-50ed8a0fd01a",
"name": "경로 3 추가",
"type": "n8n-nodes-base.code",
"position": [
-320,
720
],
"parameters": {
"jsCode": "// Loop over input items and add a new field called 'myNewField' to the JSON of each one\nfor (const item of $input.all()) {\n item.json.path = $('Switch').first().json.path;\n}\n\nreturn $input.all();"
},
"typeVersion": 2
},
{
"id": "6124f284-2846-4c88-b075-2a2fec028664",
"name": "테스트 데이터",
"type": "n8n-nodes-base.code",
"position": [
-1460,
580
],
"parameters": {
"jsCode": "// Loop over input items and add a new field called 'myNewField' to the JSON of each one\nfor (const item of $input.all()) {\n item.json.path = item.json.path || '/test/folder';\n}\n\nreturn $input.all();"
},
"typeVersion": 2
},
{
"id": "7b11ef64-3887-4baa-a8ca-3c76c8f4eb02",
"name": "Nextcloud 도구",
"type": "@n8n/n8n-nodes-langchain.toolWorkflow",
"position": [
-700,
40
],
"parameters": {
"workflowId": {
"__rl": true,
"mode": "list",
"value": "fni6RBWYOcTGA0tT",
"cachedResultName": "nextcloud-folder"
},
"description": "Call this tool to read files from a folder (in Nextcloud). Pass the folder path as a parameter.",
"workflowInputs": {
"value": {
"path": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('path', ``, 'string') }}"
},
"schema": [
{
"id": "path",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "path",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"path"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
}
},
"typeVersion": 2.2
},
{
"id": "c78d765f-b6fe-40bb-9245-3ce50cb009b4",
"name": "스티커 노트1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1700,
-260
],
"parameters": {
"width": 1260,
"height": 460,
"content": "# Main Workflow\n\n## AI Agent\n\nAnswers question to folder contents. \n\nPut the Path to the folder into your question."
},
"typeVersion": 1
},
{
"id": "147fe75b-022f-4fb0-8259-bc91286f54ca",
"name": "PDF",
"type": "n8n-nodes-base.extractFromFile",
"position": [
-500,
300
],
"parameters": {
"options": {},
"operation": "pdf"
},
"typeVersion": 1
},
{
"id": "1bd71897-738a-46a2-b7e3-700e4ad9db8f",
"name": "마크다운",
"type": "n8n-nodes-base.extractFromFile",
"position": [
-500,
500
],
"parameters": {
"options": {},
"operation": "text",
"destinationKey": "text"
},
"typeVersion": 1
},
{
"id": "9ed19c46-55aa-4109-85c7-a8b9cf068568",
"name": "DOCX",
"type": "n8n-nodes-word2text.word2text",
"position": [
-500,
740
],
"parameters": {},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"147fe75b-022f-4fb0-8259-bc91286f54ca": {
"main": [
[
{
"node": "9aaeb43a-6156-4c72-a090-9eb07fb2a85c",
"type": "main",
"index": 0
}
]
]
},
"9ed19c46-55aa-4109-85c7-a8b9cf068568": {
"main": [
[
{
"node": "46bb7f6b-7a0d-4761-b50b-50ed8a0fd01a",
"type": "main",
"index": 0
}
]
]
},
"d382c346-4f35-4772-a3e3-2104be66ffce": {
"main": [
[
{
"node": "147fe75b-022f-4fb0-8259-bc91286f54ca",
"type": "main",
"index": 0
}
],
[
{
"node": "1bd71897-738a-46a2-b7e3-700e4ad9db8f",
"type": "main",
"index": 0
}
],
[
{
"node": "9ed19c46-55aa-4109-85c7-a8b9cf068568",
"type": "main",
"index": 0
}
]
]
},
"1bd71897-738a-46a2-b7e3-700e4ad9db8f": {
"main": [
[
{
"node": "fe21734c-e0e5-43f3-8bb9-4fd976ab61a9",
"type": "main",
"index": 0
}
]
]
},
"14addc84-0661-4913-bf6b-9870cce876bf": {
"main": [
[
{
"node": "e7a14c39-5853-4e2f-8549-47917eedd3ac",
"type": "main",
"index": 0
}
]
]
},
"e3341daa-f89d-4666-848a-1dbcfb7a9f74": {
"main": [
[
{
"node": "858059e4-6a66-4442-8a04-d9cd4fd6dcc0",
"type": "main",
"index": 0
}
]
]
},
"6124f284-2846-4c88-b075-2a2fec028664": {
"main": [
[
{
"node": "e3341daa-f89d-4666-848a-1dbcfb7a9f74",
"type": "main",
"index": 0
}
]
]
},
"9aaeb43a-6156-4c72-a090-9eb07fb2a85c": {
"main": [
[
{
"node": "14addc84-0661-4913-bf6b-9870cce876bf",
"type": "main",
"index": 0
}
]
]
},
"fe21734c-e0e5-43f3-8bb9-4fd976ab61a9": {
"main": [
[
{
"node": "14addc84-0661-4913-bf6b-9870cce876bf",
"type": "main",
"index": 0
}
]
]
},
"46bb7f6b-7a0d-4761-b50b-50ed8a0fd01a": {
"main": [
[
{
"node": "14addc84-0661-4913-bf6b-9870cce876bf",
"type": "main",
"index": 0
}
]
]
},
"858059e4-6a66-4442-8a04-d9cd4fd6dcc0": {
"main": [
[
{
"node": "23d1168d-c0f1-412c-bfe2-fc229cd0567a",
"type": "main",
"index": 0
}
]
]
},
"23d1168d-c0f1-412c-bfe2-fc229cd0567a": {
"main": [
[
{
"node": "d382c346-4f35-4772-a3e3-2104be66ffce",
"type": "main",
"index": 0
}
]
]
},
"fcb5b3c9-c0d4-41b1-8f76-58c2bb1bf822": {
"ai_memory": [
[
{
"node": "da680124-9c4e-4bb7-9d70-8ae0d5515bb0",
"type": "ai_memory",
"index": 0
}
]
]
},
"7b11ef64-3887-4baa-a8ca-3c76c8f4eb02": {
"ai_tool": [
[
{
"node": "da680124-9c4e-4bb7-9d70-8ae0d5515bb0",
"type": "ai_tool",
"index": 0
}
]
]
},
"aa540b75-cb88-4f09-b76a-c1a66b2eb34b": {
"ai_languageModel": [
[
{
"node": "da680124-9c4e-4bb7-9d70-8ae0d5515bb0",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"9745c907-14fe-49b8-9acf-b4e847bf2ebc": {
"main": [
[
{
"node": "da680124-9c4e-4bb7-9d70-8ae0d5515bb0",
"type": "main",
"index": 0
}
]
]
},
"cce0ea8a-5bd1-48ad-9e2c-bca053755278": {
"main": [
[
{
"node": "6124f284-2846-4c88-b075-2a2fec028664",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 인공지능, IT 운영
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
빌드 커스텀 n8n 워크플로우 MCP 서버
구축할 수 있는 개별 n8n 워크플로우 MCP 서버
If
N8n
Set
+
If
N8n
Set
46 노드Jimleuk
기타
컨텍스트 혼합 RAG AI 콘텐츠
Google Drive에서 Supabase 상황 벡터 데이터베이스로 동기화, RAG 애플리케이션 사용
If
Set
Code
+
If
Set
Code
76 노드Michael Taleb
AI RAG
AI 어시스턴트와 Airtable 대화 및 데이터 분석
AI스마트어시스턴트与Airtable对话及데이터분석
If
Set
Merge
+
If
Set
Merge
41 노드Mark Shcherbakov
엔지니어링
基于AI의MIS에이전트
基于AI의관리信息系统에이전트
If
Set
Code
+
If
Set
Code
129 노드Kumar Shivam
지원
브랜드화 AI 추동 웹사이트 채팅 로봇 생성
브랜드화된 AI 드라이브드 웹사이트 채팅 로봇 생성
If
Set
Code
+
If
Set
Code
24 노드Wayne Simpson
제품
AI 스마트 어시스턴트: Supabase 스토리지 및 Google Drive 파일과 대화
AI스마트어시스턴트:与Supabase存储및Google Drive文件对话
If
Set
Wait
+
If
Set
Wait
62 노드Mark Shcherbakov
엔지니어링