AIを活用したNextcloudドキュメントチャットシステム、LangChainとOpenAIを使用
上級
これはAI, IT Ops分野の自動化ワークフローで、21個のノードを含みます。主にIf, Set, Code, Switch, Aggregateなどのノードを使用、AI技術を活用したスマート自動化を実現。 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 Chat Model",
"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": "Simple Memory",
"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": "Switch",
"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": "Aggregate",
"type": "n8n-nodes-base.aggregate",
"position": [
-60,
500
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData"
},
"typeVersion": 1
},
{
"id": "e7a14c39-5853-4e2f-8549-47917eedd3ac",
"name": "output",
"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": "If readable",
"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 Tool",
"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": "Markdown",
"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ワーキ Flow MCPサーバー
カスタムn8nワークフローMCPサーバーを構築する
If
N8n
Set
+
If
N8n
Set
46 ノードJimleuk
その他
コンテキスト・ハイブリッドRAG AIコピー
RAGアプリケーション向けのGoogle DriveからSupabaseコンテキストベクトルデータベースへの同期
If
Set
Code
+
If
Set
Code
76 ノードMichael Taleb
AI RAG検索拡張
ChatGPTとAirtableの対話やデータ分析のAIアシスタント
Airtableと対話しながらデータを分析するAIアシスタント
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
エンジニアリング