コンテキスト摄取パイプライン
中級
これはEngineering, Multimodal AI分野の自動化ワークフローで、15個のノードを含みます。主にSet, Webhook, ConvertToFile, Agent, EmbeddingsOpenAiなどのノードを使用。 音声ノートからRAGシステムに文脈をOpenRouter AIとMilvusで抽出する
前提条件
- •HTTP Webhookエンドポイント(n8nが自動生成)
- •OpenAI API Key
使用ノード (15)
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
"id": "workflow-id-placeholder",
"meta": {
"instanceId": "instance-id-placeholder",
"templateCredsSetupCompleted": true
},
"name": "Context Ingestion Pipeline",
"tags": [],
"nodes": [
{
"id": "cee1c3f4-a0d3-4e4c-8563-70814b37d99d",
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"position": [
-384,
-80
],
"webhookId": "webhook-uuid-placeholder",
"parameters": {
"path": "webhook-uuid-placeholder",
"options": {},
"httpMethod": "POST"
},
"typeVersion": 2
},
{
"id": "4cf76388-5dbf-46a3-8750-1bbda180949d",
"name": "フィールド編集",
"type": "n8n-nodes-base.set",
"position": [
-176,
-80
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "d1c59fe6-0834-45bd-8cc2-1c399773d7ee",
"name": "title",
"type": "string",
"value": "={{ $json.body.data.title }}"
},
{
"id": "bde4d7fb-c21b-4a5e-bfbf-96aaf0ad7b6b",
"name": "transcript",
"type": "string",
"value": "={{ $json.body.data.transcript }}"
},
{
"id": "a79b01b6-e602-43b4-a3c2-7efca1cedf3a",
"name": "timestamp",
"type": "string",
"value": "={{ $json.body.timestamp }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "5ffd63b4-fd8a-4be3-ae07-6fa1861579b8",
"name": "AIエージェント",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-16,
-112
],
"parameters": {
"text": "={{ $json.transcript }}",
"options": {
"systemMessage": "=You are a **Context Extraction Agent**.\nYour role is to ingest text from the user, which will have been captured using **speech-to-text** and may therefore contain transcription errors, missing words, or imprecise phrasing.\n\n**Your tasks are:**\n\n1. **Infer intended meaning:**\n\n * If any words appear to be obvious mistranscriptions, you may replace them with the most likely intended words based on the context.\n\n2. **Reformulate into third person:**\n\n * Change all first-person references (\"I\", \"me\", \"my\") into \"User\" or \"their\" where appropriate.\n * Example: `\"I really enjoy spicy food\"` → `\"User enjoys spicy food\"`.\n\n3. **Extract context data only:**\n\n * Identify and isolate **significant, specific facts** about the user that could be useful for grounding AI inference in a Retrieval-Augmented Generation (RAG) pipeline.\n * Omit casual musings, filler thoughts, and irrelevant narrative.\n\n4. **Format the output in plain text:**\n\n * Keep each fact as a separate line.\n * Optionally group facts under **all-caps headers** with one blank line before and after.\n * Avoid any other formatting, markup, or commentary.\n\n5. **Output rules:**\n\n * No introductory or concluding remarks.\n * The result is a single continuous plain text document containing only the extracted facts.\n * Keep the facts **short, precise, and formulaic**.\n\n---\n\n**Example Input:**\n\n```\nI just moved to a new city last month, and I'm still figuring out the best pizza places. \nI think my favorite so far is Margarita pizza, though I really miss the one I used to get back home. \nOh, and my new apartment has a great view of the downtown area. \n```\n\n**Example Output:**\n\n```\nLOCATION \nUser moved to a new city recently. \n\nFOOD PREFERENCES \nUser likes pizza. \nUser's favorite type of pizza is Margarita. \n\nOTHER \nUser's apartment has a view of the downtown area. \n"
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 2.1
},
{
"id": "8b98eb0a-258c-4e43-bc74-8a007ae95668",
"name": "構造化出力パーサー",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
208,
128
],
"parameters": {
"jsonSchemaExample": " {\n \"output\": \"User moved to a new city recently.\\nUser likes pizza.\\nUser's favorite type of pizza is Margarita.\\nUser's apartment has a view of the downtown area.\"\n}"
},
"typeVersion": 1.3
},
{
"id": "b2eb0913-9dd9-4533-82a0-e09d61724b64",
"name": "OpenRouterチャットモデル",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
"position": [
-160,
96
],
"parameters": {
"options": {}
},
"credentials": {
"openRouterApi": {
"id": "credential-id-placeholder",
"name": "OpenRouter account"
}
},
"typeVersion": 1
},
{
"id": "298d1326-fa5d-4bd6-9a5a-4d0a07f078b8",
"name": "フィールド編集1",
"type": "n8n-nodes-base.set",
"position": [
336,
-112
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "5676fee9-3080-4b08-be04-b6203d2b132b",
"name": "tite.",
"type": "string",
"value": "={{ $('Edit Fields').item.json.title }}"
},
{
"id": "a46332e5-ba8c-4094-87ed-e04ab8462367",
"name": "output",
"type": "string",
"value": "=Context data created: {{ $('Webhook').item.json.body.timestamp }}\n\nCONTEXT:\n\n{{ $json.output }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "f5875c16-9c32-468f-89fa-cec55a21c236",
"name": "ファイル変換",
"type": "n8n-nodes-base.convertToFile",
"position": [
544,
-144
],
"parameters": {
"options": {
"fileName": "={{ $json.tite[\"\"] }}"
},
"operation": "toText",
"sourceProperty": "output"
},
"typeVersion": 1.1
},
{
"id": "874e9798-782a-4ce5-bbab-3203576b53d6",
"name": "Milvusベクトルストア",
"type": "@n8n/n8n-nodes-langchain.vectorStoreMilvus",
"position": [
752,
-128
],
"parameters": {
"mode": "insert",
"options": {
"clearCollection": false
},
"milvusCollection": {
"__rl": true,
"mode": "list",
"value": "user-context-collection",
"cachedResultName": "user-context-collection"
}
},
"credentials": {
"milvusApi": {
"id": "credential-id-placeholder",
"name": "Milvus account"
}
},
"typeVersion": 1.3
},
{
"id": "7d82b497-4349-4039-9fcd-62776317a14a",
"name": "デフォルトデータローダー",
"type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
"position": [
896,
96
],
"parameters": {
"options": {},
"dataType": "binary"
},
"typeVersion": 1.1
},
{
"id": "44abc538-09d8-4359-9911-f66016b5aa28",
"name": "Embeddings OpenAI",
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"position": [
624,
96
],
"parameters": {
"options": {}
},
"credentials": {
"openAiApi": {
"id": "credential-id-placeholder",
"name": "OpenAI API"
}
},
"typeVersion": 1.2
},
{
"id": "752244c4-196f-44a0-99cf-eb1fde3b0407",
"name": "付箋ノート",
"type": "n8n-nodes-base.stickyNote",
"position": [
-496,
-288
],
"parameters": {
"width": 208,
"height": 144,
"content": "## Context data\n\nVoicenotes.com tag trigger for 'conext data'"
},
"typeVersion": 1
},
{
"id": "fa03fa89-8cd7-4774-8c52-7a2bee25c02d",
"name": "付箋ノート1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-224,
-272
],
"parameters": {
"width": 160,
"height": 80,
"content": "## Narrow fields"
},
"typeVersion": 1
},
{
"id": "5e9a54f2-dbaa-48f7-bd10-2e0095304aed",
"name": "付箋ノート2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-16,
-288
],
"parameters": {
"width": 272,
"height": 144,
"content": "## Context data extraction agent\n\nParses transcript and isolates context rich text"
},
"typeVersion": 1
},
{
"id": "bbdb9d7a-ff61-484b-be60-53a684c3dcb1",
"name": "付箋ノート3",
"type": "n8n-nodes-base.stickyNote",
"position": [
368,
-320
],
"parameters": {
"width": 352,
"height": 144,
"content": "## Context data prepared for embedding\n\nTimestamp injected into agent output"
},
"typeVersion": 1
},
{
"id": "6071a74f-3bf3-4f7f-b574-0e279bddaecd",
"name": "付箋ノート4",
"type": "n8n-nodes-base.stickyNote",
"position": [
736,
-304
],
"parameters": {
"width": 352,
"height": 144,
"content": "## Embedding\n\nContext dasta embedded into Milvus\nvector database (hosted)"
},
"typeVersion": 1
}
],
"active": true,
"pinData": {
"Webhook": [
{
"json": {
"body": {
"data": {
"id": "sample-note-id",
"title": "Sample Voice Note Title",
"transcript": "This is a sample transcript from a voice note. The user discusses their preferences and provides context that will be extracted and stored in the vector database for future reference."
},
"event": "tag.attached.299437",
"timestamp": "2025-08-15T11:28:21+00:00"
},
"query": {},
"params": {},
"headers": {
"host": "your-n8n-instance.com",
"cf-ray": "ray-id-placeholder",
"cdn-loop": "cloudflare; loops=1",
"cf-visitor": "{\"scheme\":\"https\"}",
"connection": "keep-alive",
"user-agent": "GuzzleHttp/7",
"cf-ipcountry": "US",
"content-type": "application/json",
"authorization": "Bearer",
"cf-warp-tag-id": "warp-tag-placeholder",
"content-length": "1481",
"accept-encoding": "gzip, br",
"x-forwarded-for": "xxx.xxx.xxx.xxx",
"cf-connecting-ip": "xxx.xxx.xxx.xxx",
"x-forwarded-proto": "https"
},
"webhookUrl": "https://your-n8n-instance.com/webhook-test/webhook-uuid-placeholder",
"executionMode": "test"
}
}
],
"Edit Fields": [
{
"json": {
"title": "Sample Voice Note Title",
"timestamp": "2025-08-15T11:28:21+00:00",
"transcript": "This is a sample transcript from a voice note. The user discusses their preferences and provides context that will be extracted and stored in the vector database for future reference."
}
}
]
},
"settings": {
"executionOrder": "v1"
},
"versionId": "version-id-placeholder",
"connections": {
"cee1c3f4-a0d3-4e4c-8563-70814b37d99d": {
"main": [
[
{
"node": "4cf76388-5dbf-46a3-8750-1bbda180949d",
"type": "main",
"index": 0
}
]
]
},
"5ffd63b4-fd8a-4be3-ae07-6fa1861579b8": {
"main": [
[
{
"node": "298d1326-fa5d-4bd6-9a5a-4d0a07f078b8",
"type": "main",
"index": 0
}
]
]
},
"4cf76388-5dbf-46a3-8750-1bbda180949d": {
"main": [
[
{
"node": "5ffd63b4-fd8a-4be3-ae07-6fa1861579b8",
"type": "main",
"index": 0
}
]
]
},
"298d1326-fa5d-4bd6-9a5a-4d0a07f078b8": {
"main": [
[
{
"node": "f5875c16-9c32-468f-89fa-cec55a21c236",
"type": "main",
"index": 0
}
]
]
},
"f5875c16-9c32-468f-89fa-cec55a21c236": {
"main": [
[
{
"node": "874e9798-782a-4ce5-bbab-3203576b53d6",
"type": "main",
"index": 0
}
]
]
},
"44abc538-09d8-4359-9911-f66016b5aa28": {
"ai_embedding": [
[
{
"node": "874e9798-782a-4ce5-bbab-3203576b53d6",
"type": "ai_embedding",
"index": 0
}
]
]
},
"7d82b497-4349-4039-9fcd-62776317a14a": {
"ai_document": [
[
{
"node": "874e9798-782a-4ce5-bbab-3203576b53d6",
"type": "ai_document",
"index": 0
}
]
]
},
"b2eb0913-9dd9-4533-82a0-e09d61724b64": {
"ai_languageModel": [
[
{
"node": "5ffd63b4-fd8a-4be3-ae07-6fa1861579b8",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"8b98eb0a-258c-4e43-bc74-8a007ae95668": {
"ai_outputParser": [
[
{
"node": "5ffd63b4-fd8a-4be3-ae07-6fa1861579b8",
"type": "ai_outputParser",
"index": 0
}
]
]
}
}
}よくある質問
このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
中級 - エンジニアリング, マルチモーダルAI
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
AI驱动のメール分诊与自動回复系统,統合OpenAIエージェントとGmail
AI驱动のメール分诊与自動回复系统,統合OpenAIエージェントとGmail
If
Set
Gmail
+
If
Set
Gmail
68 ノードAbdullahi Ahmed
コンテンツ作成
メモリ、Google Suite、複数のAIリサーチ画像を備えたWhatsAppアシスタントの構築
メモリ、Google Suite、そして複数のAIによる研究イメージングを備えたWhatsAppアシスタントを構築
If
Set
Code
+
If
Set
Code
71 ノードIniyavan JC
AIチャットボット
毎日の WhatsApp グループ スマート分析:GPT-4.1 による分析と音声メッセージの transcrição
毎日の WhatsApp グループ インタラクティブ分析:GPT-4.1 分析と音声メッセージ文字起こし
If
Set
Code
+
If
Set
Code
52 ノードDaniel Lianes
その他
ベクターストア
OpenAI と Gemini AI を使用して Google スプレッドシートから個人データのベクトル ストレージを作成する
Google Sheets
Convert To File
Agent
+
Google Sheets
Convert To File
Agent
13 ノードMustafa Polat
エンジニアリング
n8nノードの探索(可視化リファレンスライブラリ内)
n8nノードを可視化リファレンスライブラリで探索
If
Ftp
Set
+
If
Ftp
Set
113 ノードI versus AI
その他
ペットショップ 4
ペットショップ予約AIエージェント
If
Set
Code
+
If
Set
Code
187 ノードBruno Dias
人工知能
ワークフロー情報
難易度
中級
ノード数15
カテゴリー2
ノードタイプ10
作成者
Daniel Rosehill
@danielrosehillFascinations and passions: open source, AI, automation and workflow building, MCP.
外部リンク
n8n.ioで表示 →
このワークフローを共有