WeaviateおよびOpenAIを基盤としたRAGドキュメント質問
上級
これはDocument Extraction, Multimodal AI分野の自動化ワークフローで、17個のノードを含みます。主にSet, FormTrigger, ExtractFromFile, ChatTrigger, LmChatOpenAiなどのノードを使用。 RAGベースのドキュメントQ&A:WeaviateとOpenAIでPDFコンテンツをクエリ
前提条件
- •OpenAI API Key
使用ノード (17)
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
"id": "hWxVTNvDEcGofp5O",
"meta": {
"instanceId": "be3e0177f1eeda5879f300082f54531dfa9819a5d7441e94ea64b32f8b1fd49c",
"templateCredsSetupCompleted": true
},
"name": "rag-with-weaviate",
"tags": [],
"nodes": [
{
"id": "4cfa559c-9cec-4a74-84d5-9cf4a2d7915a",
"name": "Weaviate Vector Store",
"type": "@n8n/n8n-nodes-langchain.vectorStoreWeaviate",
"position": [
432,
288
],
"parameters": {
"mode": "insert",
"options": {
"textKey": "text"
},
"weaviateCollection": {
"__rl": true,
"mode": "id",
"value": "FileUpload"
}
},
"credentials": {
"weaviateApi": {
"id": "qiTSL6FfsPCZLyUv",
"name": "Weaviate Credentials account"
}
},
"typeVersion": 1.2
},
{
"id": "c87c8fe2-56bf-405f-a91a-3b1af7cf2e8c",
"name": "デフォルトデータローダー",
"type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
"position": [
512,
496
],
"parameters": {
"options": {
"metadata": {
"metadataValues": [
{}
]
}
},
"jsonData": "={{ $json.text }}",
"jsonMode": "expressionData"
},
"typeVersion": 1
},
{
"id": "ac0c796a-3b1d-4ba6-83e5-23a673e4628d",
"name": "Embeddings OpenAI",
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"position": [
384,
496
],
"parameters": {
"options": {}
},
"credentials": {
"openAiApi": {
"id": "v6dOwJXW6XXHxHQw",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "d89bd8be-a275-4a57-a1a6-6006302ba3dd",
"name": "再帰的文字テキスト分割器1",
"type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
"position": [
544,
656
],
"parameters": {
"options": {},
"chunkSize": 500
},
"typeVersion": 1
},
{
"id": "dcabfdff-749b-4442-933d-409b1479d2c8",
"name": "ファイルから抽出",
"type": "n8n-nodes-base.extractFromFile",
"position": [
-48,
288
],
"parameters": {
"options": {
"maxPages": 99
},
"operation": "pdf",
"binaryPropertyName": "PDF_File"
},
"typeVersion": 1
},
{
"id": "779add5c-4770-472a-a2e9-934e1e2e4569",
"name": "フィールド編集",
"type": "n8n-nodes-base.set",
"position": [
128,
288
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "d719d94d-6597-402c-8958-dd270de82ce6",
"name": "text",
"type": "string",
"value": "={{ $json.text }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "eda536c5-d88f-45e4-9505-d3b1e6c5fa27",
"name": "チャットメッセージ受信時",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"position": [
992,
288
],
"webhookId": "683bf7e6-5f6f-43e0-afef-eb854d52ebed",
"parameters": {
"options": {}
},
"typeVersion": 1.1
},
{
"id": "94ed5f2b-fb86-42e8-a778-ab51d7a49d42",
"name": "Weaviate Vector Store1",
"type": "@n8n/n8n-nodes-langchain.vectorStoreWeaviate",
"position": [
1280,
624
],
"parameters": {
"options": {},
"weaviateCollection": {
"__rl": true,
"mode": "list",
"value": "FileUpload",
"cachedResultName": "FileUpload"
}
},
"credentials": {
"weaviateApi": {
"id": "qiTSL6FfsPCZLyUv",
"name": "Weaviate Credentials account"
}
},
"typeVersion": 1.3
},
{
"id": "ae3a9b66-a5c8-4108-980c-1c3ace05e528",
"name": "質問応答チェーン",
"type": "@n8n/n8n-nodes-langchain.chainRetrievalQa",
"position": [
1168,
288
],
"parameters": {
"text": "=Using only the attached Weaviate vector store collection (and no external knowledge), answer the following query:\n{{ $json.chatInput }}",
"options": {},
"promptType": "define"
},
"typeVersion": 1.6
},
{
"id": "d9110fef-f3ae-4c3a-bfc0-b3bfe0f6fcb0",
"name": "ベクトルストア検索器",
"type": "@n8n/n8n-nodes-langchain.retrieverVectorStore",
"position": [
1280,
480
],
"parameters": {},
"typeVersion": 1
},
{
"id": "79aaa15c-f0d6-4c88-bd15-ff7835131b2b",
"name": "OpenAI チャットモデル",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1152,
480
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "v6dOwJXW6XXHxHQw",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "9f961ef2-5466-475d-9ccb-1436469dee00",
"name": "Embeddings OpenAI1",
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"position": [
1360,
768
],
"parameters": {
"options": {}
},
"credentials": {
"openAiApi": {
"id": "v6dOwJXW6XXHxHQw",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "d46d3a49-ec16-40aa-928e-291fc90b9f2d",
"name": "付箋",
"type": "n8n-nodes-base.stickyNote",
"position": [
-256,
176
],
"parameters": {
"color": 5,
"width": 544,
"height": 336,
"content": "## Part 1: Manually upload data \nIn this example, we manually upload a 100+ page article from arXiv called [\"A Survey of Large Language Models\"](https://arxiv.org/pdf/2303.18223).\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n_**Note: This is a simple implementation of loading data. You can replace this block with your own (more advanced) data pipeline!**_"
},
"typeVersion": 1
},
{
"id": "9b192882-6d54-43c5-9ccb-cca0bcf456f4",
"name": "付箋1",
"type": "n8n-nodes-base.stickyNote",
"position": [
944,
176
],
"parameters": {
"color": 6,
"width": 640,
"height": 736,
"content": "## Part 3: Perform RAG over PDF file with Weaviate\nEnter your query by running the Chat Node and get a RAG response grounded in context."
},
"typeVersion": 1
},
{
"id": "431f55e3-9599-4de7-a363-2e82e6581101",
"name": "付箋3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-256,
-128
],
"parameters": {
"color": 4,
"width": 992,
"height": 288,
"content": "# RAG over a PDF file with Weaviate\nThis workflow allows you to upload a PDF file and ask questions about it using the Question and Answer Chain and the Weaviate Vector Store nodes. \n\n## Prerequisites\n1. **An existing Weaviate cluster.** You can view instructions for setting up a **local cluster** with Docker [here](https://weaviate.io/developers/weaviate/installation/docker-compose#starter-docker-compose-file) or a **Weaviate Cloud** cluster [here](https://weaviate.io/developers/wcs/quickstart).\n2. **API keys** to generate embeddings and power chat models. We use [OpenAI](https://openai.com/), but feel free to switch out the models as you like.\n3. **Self-hosted n8n instance.** See this [video](https://www.youtube.com/watch?v=kq5bmrjPPAY&t=108s) for how to get set up in just three minutes.\n\n\n💚 Sign up [here](https://console.weaviate.cloud/?utm_source=recipe&utm_campaign=n8n&utm_content=n8n_arxiv_template) for a 14-day free trial of Weaviate Cloud (no credit card required)."
},
"typeVersion": 1
},
{
"id": "588d9eee-f769-4c6b-9b16-2b1790118a4d",
"name": "PDFアップロード",
"type": "n8n-nodes-base.formTrigger",
"position": [
-224,
288
],
"webhookId": "8499e732-aff6-4e0f-85ac-4c0591012616",
"parameters": {
"options": {},
"formTitle": "Upload your file here",
"formFields": {
"values": [
{
"fieldType": "file",
"fieldLabel": "PDF File",
"multipleFiles": false,
"requiredField": true,
"acceptFileTypes": ".pdf"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "4d4244ef-c4af-4eb1-8389-6bd95cc5613e",
"name": "付箋2",
"type": "n8n-nodes-base.stickyNote",
"position": [
304,
176
],
"parameters": {
"color": 3,
"width": 624,
"height": 688,
"content": "## Part 2: Embed and load data into Weaviate collection\nWe generate embeddings for the full-text of the article and store them in Weaviate.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n_**Note: We don't add any metadata to Weaviate in this example. To add metadata, click on the Default Data Loader node → `Add Option` → `Metadata`.**_"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "61bb6430-21b1-4443-8924-34a83eab6965",
"connections": {
"588d9eee-f769-4c6b-9b16-2b1790118a4d": {
"main": [
[
{
"node": "dcabfdff-749b-4442-933d-409b1479d2c8",
"type": "main",
"index": 0
}
]
]
},
"779add5c-4770-472a-a2e9-934e1e2e4569": {
"main": [
[
{
"node": "4cfa559c-9cec-4a74-84d5-9cf4a2d7915a",
"type": "main",
"index": 0
}
]
]
},
"ac0c796a-3b1d-4ba6-83e5-23a673e4628d": {
"ai_embedding": [
[
{
"node": "4cfa559c-9cec-4a74-84d5-9cf4a2d7915a",
"type": "ai_embedding",
"index": 0
}
]
]
},
"dcabfdff-749b-4442-933d-409b1479d2c8": {
"main": [
[
{
"node": "779add5c-4770-472a-a2e9-934e1e2e4569",
"type": "main",
"index": 0
}
]
]
},
"79aaa15c-f0d6-4c88-bd15-ff7835131b2b": {
"ai_languageModel": [
[
{
"node": "ae3a9b66-a5c8-4108-980c-1c3ace05e528",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"9f961ef2-5466-475d-9ccb-1436469dee00": {
"ai_embedding": [
[
{
"node": "94ed5f2b-fb86-42e8-a778-ab51d7a49d42",
"type": "ai_embedding",
"index": 0
}
]
]
},
"c87c8fe2-56bf-405f-a91a-3b1af7cf2e8c": {
"ai_document": [
[
{
"node": "4cfa559c-9cec-4a74-84d5-9cf4a2d7915a",
"type": "ai_document",
"index": 0
}
]
]
},
"4cfa559c-9cec-4a74-84d5-9cf4a2d7915a": {
"main": [
[]
]
},
"d9110fef-f3ae-4c3a-bfc0-b3bfe0f6fcb0": {
"ai_retriever": [
[
{
"node": "ae3a9b66-a5c8-4108-980c-1c3ace05e528",
"type": "ai_retriever",
"index": 0
}
]
]
},
"94ed5f2b-fb86-42e8-a778-ab51d7a49d42": {
"ai_vectorStore": [
[
{
"node": "d9110fef-f3ae-4c3a-bfc0-b3bfe0f6fcb0",
"type": "ai_vectorStore",
"index": 0
}
]
]
},
"eda536c5-d88f-45e4-9505-d3b1e6c5fa27": {
"main": [
[
{
"node": "ae3a9b66-a5c8-4108-980c-1c3ace05e528",
"type": "main",
"index": 0
}
]
]
},
"d89bd8be-a275-4a57-a1a6-6006302ba3dd": {
"ai_textSplitter": [
[
{
"node": "c87c8fe2-56bf-405f-a91a-3b1af7cf2e8c",
"type": "ai_textSplitter",
"index": 0
}
]
]
}
}
}よくある質問
このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
上級 - 文書抽出, マルチモーダルAI
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
AIベースのWhatsAppサポートボット(Googleスプレッドシートでのチケット作成)
AIベースのWhatsAppサポートボット(Google シートチケット作成)
Set
Xml
Code
+
Set
Xml
Code
35 ノードZain Khan
サポートチャットボット
Google Drive を使用した RAG チャットボット
OpenAI、Google Drive、Supabaseを使用してRAG型知識チャットボットを構築する
Set
Supabase
Google Drive
+
Set
Supabase
Google Drive
20 ノードBabish Shrestha
その他
Qdrant を使った完全な RAG システム、ドキュメントの自動更新機能付き
OpenAI、Google Gemini、Qdrant および Google Drive を使用して、自更新 RAG システムを構築
Set
Wait
Google Drive
+
Set
Wait
Google Drive
32 ノードDavide
AI RAG検索拡張
AIトレンドメールアラート - weaviate
arXivとWeaviateに基づく週次のAIトレンドアラートを構築
Set
Xml
Merge
+
Set
Xml
Merge
48 ノードMary Newhauser
コンテンツ作成
コンテキスト・ハイブリッドRAG AIコピー
RAGアプリケーション向けのGoogle DriveからSupabaseコンテキストベクトルデータベースへの同期
If
Set
Code
+
If
Set
Code
76 ノードMichael Taleb
AI RAG検索拡張
n8nノードの探索(可視化リファレンスライブラリ内)
n8nノードを可視化リファレンスライブラリで探索
If
Ftp
Set
+
If
Ftp
Set
113 ノードI versus AI
その他