자체 호스팅 LLM 미스트랄 네모를 사용하여 개인 데이터 추출
중급
이것은Building Blocks, AI분야의자동화 워크플로우로, 13개의 노드를 포함합니다.주로 Set, ChainLlm, ChatTrigger, LmChatOllama, OutputParserAutofixing 등의 노드를 사용하며인공지능 기술을 결합하여 스마트 자동화를 구현합니다. 자체 호스팅 LLM Mistral NeMo를 사용하여 개인 데이터를 추출합니다.
사전 요구사항
- •AI 서비스 API Key(예: OpenAI, Anthropic 등)
사용된 노드 (13)
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"id": "HMoUOg8J7RzEcslH",
"meta": {
"instanceId": "3f91626b10fcfa8a3d3ab8655534ff3e94151838fd2709ecd2dcb14afb3d061a",
"templateCredsSetupCompleted": true
},
"name": "Extract personal data with a self-hosted LLM Mistral NeMo",
"tags": [],
"nodes": [
{
"id": "7e67ae65-88aa-4e48-aa63-2d3a4208cf4b",
"name": "채팅 메시지 수신 시",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"position": [
-500,
20
],
"webhookId": "3a7b0ea1-47f3-4a94-8ff2-f5e1f3d9dc32",
"parameters": {
"options": {}
},
"typeVersion": 1.1
},
{
"id": "e064921c-69e6-4cfe-a86e-4e3aa3a5314a",
"name": "Ollama 채팅 모델",
"type": "@n8n/n8n-nodes-langchain.lmChatOllama",
"position": [
-280,
420
],
"parameters": {
"model": "mistral-nemo:latest",
"options": {
"useMLock": true,
"keepAlive": "2h",
"temperature": 0.1
}
},
"credentials": {
"ollamaApi": {
"id": "vgKP7LGys9TXZ0KK",
"name": "Ollama account"
}
},
"typeVersion": 1
},
{
"id": "fe1379da-a12e-4051-af91-9d67a7c9a76b",
"name": "자동 수정 출력 파서",
"type": "@n8n/n8n-nodes-langchain.outputParserAutofixing",
"position": [
-200,
220
],
"parameters": {
"options": {
"prompt": "Instructions:\n--------------\n{instructions}\n--------------\nCompletion:\n--------------\n{completion}\n--------------\n\nAbove, the Completion did not satisfy the constraints given in the Instructions.\nError:\n--------------\n{error}\n--------------\n\nPlease try again. Please only respond with an answer that satisfies the constraints laid out in the Instructions:"
}
},
"typeVersion": 1
},
{
"id": "b6633b00-6ebb-43ca-8e5c-664a53548c17",
"name": "구조화 출력 파서",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
60,
400
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the user\"\n },\n \"surname\": {\n \"type\": \"string\",\n \"description\": \"Surname of the user\"\n },\n \"commtype\": {\n \"type\": \"string\",\n \"enum\": [\"email\", \"phone\", \"other\"],\n \"description\": \"Method of communication\"\n },\n \"contacts\": {\n \"type\": \"string\",\n \"description\": \"Contact details. ONLY IF PROVIDED\"\n },\n \"timestamp\": {\n \"type\": \"string\",\n \"format\": \"date-time\",\n \"description\": \"When the communication occurred\"\n },\n \"subject\": {\n \"type\": \"string\",\n \"description\": \"Brief description of the communication topic\"\n }\n },\n \"required\": [\"name\", \"commtype\"]\n}"
},
"typeVersion": 1.2
},
{
"id": "23681a6c-cf62-48cb-86ee-08d5ce39bc0a",
"name": "기본 LLM 체인",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"onError": "continueErrorOutput",
"position": [
-240,
20
],
"parameters": {
"messages": {
"messageValues": [
{
"message": "=Please analyse the incoming user request. Extract information according to the JSON schema. Today is: \"{{ $now.toISO() }}\""
}
]
},
"hasOutputParser": true
},
"typeVersion": 1.5
},
{
"id": "8f4d1b4b-58c0-41ec-9636-ac555e440821",
"name": "오류 발생 시",
"type": "n8n-nodes-base.noOp",
"position": [
200,
140
],
"parameters": {},
"typeVersion": 1
},
{
"id": "f4d77736-4470-48b4-8f61-149e09b70e3e",
"name": "스티커 노트",
"type": "n8n-nodes-base.stickyNote",
"position": [
-560,
-160
],
"parameters": {
"color": 2,
"width": 960,
"height": 500,
"content": "## Update data source\nWhen you change the data source, remember to update the `Prompt Source (User Message)` setting in the **Basic LLM Chain node**."
},
"typeVersion": 1
},
{
"id": "5fd273c8-e61d-452b-8eac-8ac4b7fff6c2",
"name": "스티커 노트1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-560,
340
],
"parameters": {
"color": 2,
"width": 440,
"height": 220,
"content": "## Configure local LLM\nOllama offers additional settings \nto optimize model performance\nor memory usage."
},
"typeVersion": 1
},
{
"id": "63cbf762-0134-48da-a6cd-0363e870decd",
"name": "스티커 노트2",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
340
],
"parameters": {
"color": 2,
"width": 400,
"height": 220,
"content": "## Define JSON Schema"
},
"typeVersion": 1
},
{
"id": "9625294f-3cb4-4465-9dae-9976e0cf5053",
"name": "JSON 출력 추출",
"type": "n8n-nodes-base.set",
"position": [
200,
-80
],
"parameters": {
"mode": "raw",
"options": {},
"jsonOutput": "={{ $json.output }}\n"
},
"typeVersion": 3.4
},
{
"id": "2c6fba3b-0ffe-4112-b904-823f52cc220b",
"name": "스티커 노트3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-560,
200
],
"parameters": {
"width": 960,
"height": 120,
"content": "If the LLM response does not pass \nthe **Structured Output Parser** checks,\n**Auto-Fixer** will call the model again with a different \nprompt to correct the original response."
},
"typeVersion": 1
},
{
"id": "c73ba1ca-d727-4904-a5fd-01dd921a4738",
"name": "스티커 노트6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-560,
460
],
"parameters": {
"height": 80,
"content": "The same LLM connects to both **Basic LLM Chain** and to the **Auto-fixing Output Parser**. \n"
},
"typeVersion": 1
},
{
"id": "193dd153-8511-4326-aaae-47b89d0cd049",
"name": "스티커 노트7",
"type": "n8n-nodes-base.stickyNote",
"position": [
200,
440
],
"parameters": {
"width": 200,
"height": 100,
"content": "When the LLM model responds, the output is checked in the **Structured Output Parser**"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "9f3721a8-f340-43d5-89e7-3175c29c2f3a",
"connections": {
"23681a6c-cf62-48cb-86ee-08d5ce39bc0a": {
"main": [
[
{
"node": "9625294f-3cb4-4465-9dae-9976e0cf5053",
"type": "main",
"index": 0
}
],
[
{
"node": "8f4d1b4b-58c0-41ec-9636-ac555e440821",
"type": "main",
"index": 0
}
]
]
},
"e064921c-69e6-4cfe-a86e-4e3aa3a5314a": {
"ai_languageModel": [
[
{
"node": "fe1379da-a12e-4051-af91-9d67a7c9a76b",
"type": "ai_languageModel",
"index": 0
},
{
"node": "23681a6c-cf62-48cb-86ee-08d5ce39bc0a",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"b6633b00-6ebb-43ca-8e5c-664a53548c17": {
"ai_outputParser": [
[
{
"node": "fe1379da-a12e-4051-af91-9d67a7c9a76b",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"fe1379da-a12e-4051-af91-9d67a7c9a76b": {
"ai_outputParser": [
[
{
"node": "23681a6c-cf62-48cb-86ee-08d5ce39bc0a",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"7e67ae65-88aa-4e48-aa63-2d3a4208cf4b": {
"main": [
[
{
"node": "23681a6c-cf62-48cb-86ee-08d5ce39bc0a",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
중급 - 빌딩 블록, 인공지능
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
정규 표현식과 AI를 사용하여 숨겨진 웹 API 엔드포인트를 발견
정규 표현식과 인공지능을 사용하여 숨겨진 웹 사이트 API 엔드포인트를 발견
If
Set
Html
+
If
Set
Html
58 노드Yulia
엔지니어링
동적 LLM 템플릿 전환
LangChain 코드를 사용하여 AI 대리자 간 동적 LLM 전환
If
Set
Code
+
If
Set
Code
22 노드Mario
엔지니어링
데이터베이스 아키텍처만으로 SQL 쿼리 생성 - AI 기반
데이터베이스 아키텍처만으로 SQL 쿼리 생성 - AI 추동
If
Set
Merge
+
If
Set
Merge
29 노드Yulia
엔지니어링
[템플릿] AI 반려동물 가게 v8
🐶 AI 펫 샵 어시스턴트 - GPT-4o, Google 캘린더 및 WhatsApp/Instagram/Facebook 통합
If
N8n
Set
+
If
N8n
Set
244 노드Amanda Benks
영업
AI이메일分诊与GPT-4警报系统及Telegram알림
AI이메일分诊与GPT-4警报系统及Telegram알림
If
Set
Gmail
+
If
Set
Gmail
104 노드Peter Joslyn
지원
BambooHR AI 기반의 회사 정책과 복리후생 채팅 로봇
BambooHR AI 기반의 회사 정책과 복리후생 챗봇
Set
Filter
Bamboo Hr
+
Set
Filter
Bamboo Hr
50 노드Ludwig
인사