동적 GDPR 합规模형 선택기와 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를 기반으로 한 문서 질문 응답 시스템
기반 Voyage-Context-3 임베디드 및 MongoDB Atlas의 문서 질문 답변 시스템
Set
Code
Wait
+
Set
Code
Wait
53 노드Jimleuk
엔지니어링
OpenAI와 RAGAS 방법을 사용하여 AI 대리자 응답 정확성 평가
OpenAI와 RAGAS 방법을 사용하여 AI 대리자 응답 정확성을 평가
Set
Code
Merge
+
Set
Code
Merge
27 노드Jimleuk
엔지니어링
평가 지표:답변 유사도
평가 지표: 답변 유사도
Set
Code
Merge
+
Set
Code
Merge
21 노드Jimleuk
엔지니어링
리드 생성 및 이메일 워크플로
Google 지도, SendGrid 및 AI를 사용한 B2B 잠재 고객 개발 및 이메일 마케팅 자동화
If
Set
Code
+
If
Set
Code
141 노드Ezema Kingsley Chibuzo
리드 생성