動のGDPRコンプライアンスモデルセレクター with Requesty
上級
これはEngineering, AI Chatbot分野の自動化ワークフローで、20個のノードを含みます。主にN8n, Set, Code, Merge, SplitOutなどのノードを使用。 RequestyとGoogle Sheetsを使用したGDPRコンプライアントな動のAIモデルセレクター
前提条件
- •ターゲットAPIの認証情報が必要な場合あり
- •Google Sheets API認証情報
- •OpenAI API Key
使用ノード (20)
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
"id": "xUuPJFkQw5aJ9Bfg",
"meta": {
"instanceId": "7f03117cd0731766b3ae8ea65a9638f11161d03d7cfb20d1531642698c9d0de3"
},
"name": "Dynamic GDPR-Compliant Model Selector with Requesty",
"tags": [],
"nodes": [
{
"id": "fb6de8aa-2c8f-488e-8002-7aeb96861b3d",
"name": "ワークフロー初期化",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-180,
-1140
],
"parameters": {},
"typeVersion": 1
},
{
"id": "5f73d2cb-368a-4ca6-af4a-7e97176b35c0",
"name": "利用可能モデル取得",
"type": "n8n-nodes-base.httpRequest",
"position": [
40,
-1040
],
"parameters": {
"url": "https://router.requesty.ai/v1/models?provider=coding",
"options": {}
},
"typeVersion": 4.2
},
{
"id": "63d190c6-ac9d-41e7-8e36-a1a045c5cc13",
"name": "モデルデータ分割",
"type": "n8n-nodes-base.splitOut",
"position": [
260,
-1040
],
"parameters": {
"include": "allOtherFields",
"options": {},
"fieldToSplitOut": "data"
},
"typeVersion": 1
},
{
"id": "f95eb1c6-b6d7-492d-822c-02bc000c6749",
"name": "モデルID抽出",
"type": "n8n-nodes-base.set",
"position": [
480,
-1040
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "be11b412-dfb1-47fd-be24-e8dead708405",
"name": "id",
"type": "string",
"value": "={{ $json.data.id }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "b9595c92-7e9a-4688-aa12-bf558af42481",
"name": "現在のワークフロー取得",
"type": "n8n-nodes-base.n8n",
"position": [
480,
-1240
],
"parameters": {
"operation": "get",
"workflowId": {
"__rl": true,
"mode": "id",
"value": "={{ $workflow.id }}"
},
"requestOptions": {}
},
"executeOnce": true,
"typeVersion": 1
},
{
"id": "d8b903d3-53ec-47fd-9dfa-bdb131dae3bf",
"name": "データ統合",
"type": "n8n-nodes-base.merge",
"position": [
700,
-1140
],
"parameters": {},
"typeVersion": 3.2
},
{
"id": "bc7dde1f-0afd-47c9-a851-ded2ceb37dbf",
"name": "ドロップダウンオプション更新",
"type": "n8n-nodes-base.code",
"position": [
920,
-1140
],
"parameters": {
"jsCode": "// n8n Code Node - Update Form Dropdown Options\n// First item = Workflow JSON, From second item = New Model IDs\n\ntry {\n // Get all input items\n const allInputs = $input.all();\n \n // First item is the workflow\n const workflowData = allInputs[0]?.json;\n \n // From second item onwards are the new model IDs\n const newOptions = [];\n \n // Iterate through all items from index 1\n for (let i = 1; i < allInputs.length; i++) {\n const item = allInputs[i];\n \n // Extract ID from the json object\n if (item?.json?.id) {\n newOptions.push(item.json.id);\n }\n }\n \n // Fallback if no IDs found\n if (newOptions.length === 0) {\n newOptions.push('No models available');\n }\n \n // Copy and modify workflow\n const result = JSON.parse(JSON.stringify(workflowData));\n \n // Go through workflow nodes\n if (result.nodes) {\n result.nodes.forEach(node => {\n if (node.type === 'n8n-nodes-base.formTrigger' && \n node.parameters?.formFields?.values) {\n \n node.parameters.formFields.values.forEach(field => {\n if (field.fieldType === 'dropdown' && field.fieldOptions) {\n // Set new dropdown options\n field.fieldOptions.values = newOptions.map(option => ({ option }));\n }\n });\n }\n });\n }\n \n return result;\n \n} catch (error) {\n // Error handling with debug info\n return {\n error: error.message,\n totalInputs: $input.all().length,\n sampleIds: $input.all().slice(1, 4).map(item => item?.json?.id),\n fallback: $input.first()?.json\n };\n}"
},
"typeVersion": 2
},
{
"id": "f672fce1-7081-4fd1-a898-dddabe38f853",
"name": "ワークフロー更新",
"type": "n8n-nodes-base.n8n",
"position": [
1140,
-1140
],
"parameters": {
"operation": "update",
"workflowId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.id }}"
},
"requestOptions": {},
"workflowObject": "={{ JSON.stringify($json) }}"
},
"typeVersion": 1
},
{
"id": "6e12465c-2848-40fc-a1f8-ae2585d5882d",
"name": "モデル選択フォーム",
"type": "n8n-nodes-base.formTrigger",
"position": [
-180,
-780
],
"webhookId": "a9562558-7962-4a3a-8b3f-82e5ba5bef1a",
"parameters": {
"options": {},
"formTitle": "Select AI Model",
"formFields": {
"values": [
{
"fieldType": "dropdown",
"fieldLabel": "AI Language Model",
"fieldOptions": {
"values": [
{}
]
}
}
]
}
},
"typeVersion": 2.2
},
{
"id": "fa81a3f1-0f28-4049-b6b2-f6f486e67e0d",
"name": "選択モデル設定",
"type": "n8n-nodes-base.set",
"position": [
40,
-780
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "a132682c-fbbb-4abc-bdde-be93bf0cb992",
"name": "model",
"type": "string",
"value": "={{ $json.fieldName }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "0196af9b-aa3d-45bd-a6f1-92f96486ced9",
"name": "チャットインターフェース",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"position": [
-180,
-520
],
"webhookId": "47d7c77b-1904-4d17-ba39-a1d5b85069be",
"parameters": {
"options": {}
},
"typeVersion": 1.1
},
{
"id": "6191c42f-ece1-421d-b9cf-c9ab213f2f36",
"name": "AI API リクエスト",
"type": "n8n-nodes-base.httpRequest",
"position": [
480,
-520
],
"parameters": {
"url": "https://router.requesty.ai/v1/chat/completions",
"method": "POST",
"options": {
"response": {
"response": {
"responseFormat": "json"
}
}
},
"jsonBody": "={\n \"model\": \"{{ $json.model }}\",\n \"messages\": [\n { \"role\": \"system\", \"content\": \"You are a helpful assistant.\" },\n { \"role\": \"user\", \"content\": \"{{ $('Chat Interface').item.json.chatInput }}\" }\n ],\n \"max_tokens\": 200,\n \"temperature\": 0.7\n}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
},
{
"name": "Authorization",
"value": "Bearer {{ $credentials.requestyApi.apiKey }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "ebcd8d4f-4d15-4755-971e-14a932adda23",
"name": "レスポンス抽出",
"type": "n8n-nodes-base.set",
"position": [
700,
-520
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "f1ec57e7-d781-406f-b6ea-68906c679a2e",
"name": "content",
"type": "string",
"value": "={{ $json.choices[0].message.content }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "0ced2b03-0d09-474a-be65-2f49ddcf95fa",
"name": "現在のモデル取得",
"type": "n8n-nodes-base.set",
"position": [
260,
-520
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "6470970a-10ce-4bc4-8fd0-de4c4e309e2d",
"name": "model",
"type": "string",
"value": "={{ $json.model }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "7379d69a-9066-48be-a163-fea478bb2cef",
"name": "モデル選択保存",
"type": "n8n-nodes-base.googleSheets",
"position": [
480,
-780
],
"parameters": {
"columns": {
"value": {},
"schema": [],
"mappingMode": "autoMapInputData",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "name",
"value": "Current_Model"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "YOUR_GOOGLE_SHEET_ID"
}
},
"typeVersion": 4.6
},
{
"id": "b8a03a91-5839-46e4-891c-e9793738f3dc",
"name": "以前の選択をクリア",
"type": "n8n-nodes-base.googleSheets",
"position": [
260,
-780
],
"parameters": {
"operation": "clear",
"sheetName": {
"__rl": true,
"mode": "name",
"value": "Current_Model"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "YOUR_GOOGLE_SHEET_ID"
}
},
"typeVersion": 4.6
},
{
"id": "58bc8a11-7f9e-452a-ad0f-d05f3c56eda9",
"name": "現在のモデル読み取り",
"type": "n8n-nodes-base.googleSheets",
"position": [
40,
-520
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "name",
"value": "Current_Model"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "YOUR_GOOGLE_SHEET_ID"
}
},
"typeVersion": 4.6
},
{
"id": "9bcf3d2d-f320-44af-8c02-62b50a41a299",
"name": "AIエージェント(オプション)",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
40,
-240
],
"parameters": {
"options": {}
},
"typeVersion": 2
},
{
"id": "32c0a603-b40e-4830-ab8d-592bcd3d9c58",
"name": "OpenAI チャットモデル",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
40,
20
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "openai/gpt-4o-mini",
"cachedResultName": "openai/gpt-4o-mini"
},
"options": {}
},
"typeVersion": 1.2
},
{
"id": "fb9667d4-2b39-4ba5-b67a-d3671f814124",
"name": "レスポンス整形",
"type": "n8n-nodes-base.code",
"position": [
920,
-520
],
"parameters": {
"jsCode": "return [{\n json: {\n text: $json.content\n }\n}];\n"
},
"typeVersion": 2
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "e65bf989-9806-4cc5-9f6d-e4fafa7883c7",
"connections": {
"d8b903d3-53ec-47fd-9dfa-bdb131dae3bf": {
"main": [
[
{
"node": "bc7dde1f-0afd-47c9-a851-ded2ceb37dbf",
"type": "main",
"index": 0
}
]
]
},
"6191c42f-ece1-421d-b9cf-c9ab213f2f36": {
"main": [
[
{
"node": "ebcd8d4f-4d15-4755-971e-14a932adda23",
"type": "main",
"index": 0
}
]
]
},
"0196af9b-aa3d-45bd-a6f1-92f96486ced9": {
"main": [
[
{
"node": "58bc8a11-7f9e-452a-ad0f-d05f3c56eda9",
"type": "main",
"index": 0
}
]
]
},
"ebcd8d4f-4d15-4755-971e-14a932adda23": {
"main": [
[
{
"node": "fb9667d4-2b39-4ba5-b67a-d3671f814124",
"type": "main",
"index": 0
}
]
]
},
"63d190c6-ac9d-41e7-8e36-a1a045c5cc13": {
"main": [
[
{
"node": "f95eb1c6-b6d7-492d-822c-02bc000c6749",
"type": "main",
"index": 0
}
]
]
},
"f95eb1c6-b6d7-492d-822c-02bc000c6749": {
"main": [
[
{
"node": "d8b903d3-53ec-47fd-9dfa-bdb131dae3bf",
"type": "main",
"index": 1
}
]
]
},
"0ced2b03-0d09-474a-be65-2f49ddcf95fa": {
"main": [
[
{
"node": "6191c42f-ece1-421d-b9cf-c9ab213f2f36",
"type": "main",
"index": 0
}
]
]
},
"32c0a603-b40e-4830-ab8d-592bcd3d9c58": {
"ai_languageModel": [
[
{
"node": "9bcf3d2d-f320-44af-8c02-62b50a41a299",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"58bc8a11-7f9e-452a-ad0f-d05f3c56eda9": {
"main": [
[
{
"node": "0ced2b03-0d09-474a-be65-2f49ddcf95fa",
"type": "main",
"index": 0
}
]
]
},
"fa81a3f1-0f28-4049-b6b2-f6f486e67e0d": {
"main": [
[
{
"node": "b8a03a91-5839-46e4-891c-e9793738f3dc",
"type": "main",
"index": 0
}
]
]
},
"fb6de8aa-2c8f-488e-8002-7aeb96861b3d": {
"main": [
[
{
"node": "b9595c92-7e9a-4688-aa12-bf558af42481",
"type": "main",
"index": 0
},
{
"node": "5f73d2cb-368a-4ca6-af4a-7e97176b35c0",
"type": "main",
"index": 0
}
]
]
},
"b9595c92-7e9a-4688-aa12-bf558af42481": {
"main": [
[
{
"node": "d8b903d3-53ec-47fd-9dfa-bdb131dae3bf",
"type": "main",
"index": 0
}
]
]
},
"6e12465c-2848-40fc-a1f8-ae2585d5882d": {
"main": [
[
{
"node": "fa81a3f1-0f28-4049-b6b2-f6f486e67e0d",
"type": "main",
"index": 0
}
]
]
},
"5f73d2cb-368a-4ca6-af4a-7e97176b35c0": {
"main": [
[
{
"node": "63d190c6-ac9d-41e7-8e36-a1a045c5cc13",
"type": "main",
"index": 0
}
]
]
},
"bc7dde1f-0afd-47c9-a851-ded2ceb37dbf": {
"main": [
[
{
"node": "f672fce1-7081-4fd1-a898-dddabe38f853",
"type": "main",
"index": 0
}
]
]
},
"b8a03a91-5839-46e4-891c-e9793738f3dc": {
"main": [
[
{
"node": "7379d69a-9066-48be-a163-fea478bb2cef",
"type": "main",
"index": 0
}
]
]
}
}
}よくある質問
このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
上級 - エンジニアリング, AIチャットボット
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
n8nノードの探索(可視化リファレンスライブラリ内)
n8nノードを可視化リファレンスライブラリで探索
If
Ftp
Set
+
If
Ftp
Set
113 ノードI versus AI
その他
Google Maps、GPT-4、WhatsApp を使用したビジネスパートナー獲得の自動化
Google Maps、GPT-4、WhatsAppを使用したビジネスパートナーの開拓の自動化
If
Set
Code
+
If
Set
Code
64 ノードKhairul Muhtadin
AIチャットボット
Voyage-Context-3 エンベディングと MongoDB Atlas に基づくドキュメントQ&Aシステム
Voyage-Context-3埋め込みモデルおよびMongoDB Atlasを基盤としたドキュメントQ&Aシステム
Set
Code
Wait
+
Set
Code
Wait
53 ノードJimleuk
エンジニアリング
AIエージェントの応答正確性をOpenAIとRAGASメソッドで評価
OpenAIとRAGASメソッドを使用してAIエージェントの応答の正確性を評価する
Set
Code
Merge
+
Set
Code
Merge
27 ノードJimleuk
エンジニアリング
評価指標: 応答の類似性
評価指標: 応答の類似性
Set
Code
Merge
+
Set
Code
Merge
21 ノードJimleuk
エンジニアリング
潜在顧客開掘とメールワーキングフロー
Google Maps、SendGrid、AIを使用してB2Bリード獲得とメールマーケティングを自動化
If
Set
Code
+
If
Set
Code
141 ノードEzema Kingsley Chibuzo
リード獲得