8
n8n 한국어amn8n.com

국가기상청 AI 분석

고급

이것은Personal Productivity, AI Summarization분야의자동화 워크플로우로, 20개의 노드를 포함합니다.주로 Set, Code, Merge, Filter, Webhook 등의 노드를 사용하며. NWS 경보, 레이더 이미지 및 Home Assistant의 AI 기반 날씨 분석 생성

사전 요구사항
  • HTTP Webhook 엔드포인트(n8n이 자동으로 생성)
  • 대상 API의 인증 정보가 필요할 수 있음
  • OpenAI API Key
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
  "id": "kJfDku2rYe5QZdCO",
  "meta": {
    "instanceId": "99d73f46ce25facbb6a315b9049061902fa3a045876ce7aa2b16534051157fdd",
    "templateCredsSetupCompleted": true
  },
  "name": "National Weather Service AI Analysis",
  "tags": [],
  "nodes": [
    {
      "id": "a72e2042-fd53-46b4-b366-c522ef3044ab",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -32,
        16
      ],
      "webhookId": "b74e13cd-ad2f-4ef1-8350-ff6b915e5485",
      "parameters": {
        "path": "b74e13cd-ad2f-4ef1-8350-ff6b915e5485",
        "options": {},
        "httpMethod": "POST",
        "responseData": "allEntries",
        "responseMode": "lastNode"
      },
      "typeVersion": 2
    },
    {
      "id": "31d8e7b5-c47a-42af-abb0-02f9c2482201",
      "name": "NWS 경보 가져오기",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        192,
        16
      ],
      "parameters": {
        "url": "https://api.weather.gov/alerts",
        "options": {
          "response": {
            "response": {
              "fullResponse": true,
              "responseFormat": "json"
            }
          }
        },
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "status",
              "value": "actual"
            },
            {
              "name": "point",
              "value": "={{ $json.body.latitude }},{{ $json.body.longitude }}"
            }
          ]
        }
      },
      "typeVersion": 4.2,
      "alwaysOutputData": false
    },
    {
      "id": "b1938edb-79be-4399-a815-dc90ffd1f240",
      "name": "분할",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        384,
        16
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "body.features"
      },
      "typeVersion": 1
    },
    {
      "id": "bc5b7d6c-e2ad-43ab-aad1-d947799243e5",
      "name": "관련 없는 필드 제거",
      "type": "n8n-nodes-base.set",
      "position": [
        576,
        16
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "c1e43be8-8b6c-4eb6-a344-251473f78dbf",
              "name": "id",
              "type": "string",
              "value": "={{ $json.id }}"
            },
            {
              "id": "26551b00-b7a6-43e6-85d2-23921e5b9c75",
              "name": "properties.areaDesc",
              "type": "string",
              "value": "={{ $json.properties.areaDesc }}"
            },
            {
              "id": "d4a19262-2c9e-4b45-bb79-9aa97da77e69",
              "name": "properties.effective",
              "type": "string",
              "value": "={{ $json.properties.effective }}"
            },
            {
              "id": "40fdf9b8-e594-405c-88cc-6e8a80fcfa60",
              "name": "properties.expires",
              "type": "string",
              "value": "={{ $json.properties.expires }}"
            },
            {
              "id": "715541f6-bcdf-4152-9427-dba110a4ee9e",
              "name": "properties.severity",
              "type": "string",
              "value": "={{ $json.properties.severity }}"
            },
            {
              "id": "b4851577-2d71-4ab6-bd8c-e6bf3db412f1",
              "name": "properties.certainty",
              "type": "string",
              "value": "={{ $json.properties.certainty }}"
            },
            {
              "id": "43aba50b-4e09-4e26-8ded-328c1ead3469",
              "name": "properties.status",
              "type": "string",
              "value": "={{ $json.properties.status }}"
            },
            {
              "id": "aab46fc5-e6c3-45c6-b12f-da4d11d82b25",
              "name": "properties.headline",
              "type": "string",
              "value": "={{ $json.properties.headline }}"
            },
            {
              "id": "ab826652-b359-4047-a1fa-4da9797a54d2",
              "name": "properties.description",
              "type": "string",
              "value": "={{ $json.properties.description }}"
            },
            {
              "id": "e0ffea55-c055-44d2-952f-5785e7c7d3c2",
              "name": "properties.instruction",
              "type": "string",
              "value": "={{ $json.properties.instruction }}"
            },
            {
              "id": "205b4373-515c-40d9-8d02-e2a5e3ddc7f4",
              "name": "properties.parameters.NWSheadline",
              "type": "array",
              "value": "={{ $json.properties.parameters.NWSheadline }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "e0ce90cb-a447-4b5c-a3e7-6ea2ccfa4efe",
      "name": "심각도별 필터링",
      "type": "n8n-nodes-base.filter",
      "position": [
        960,
        16
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "or",
          "conditions": [
            {
              "id": "7dde0a87-93ff-482b-9c53-d13a191f982b",
              "operator": {
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.properties.severity }}",
              "rightValue": "Moderate"
            },
            {
              "id": "28ed779f-d676-4619-bff4-12877b696415",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.properties.severity }}",
              "rightValue": "Severe"
            },
            {
              "id": "a28503c7-f468-4cbf-800e-edfa05d405ce",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.properties.severity }}",
              "rightValue": "Extreme"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "e5272333-90a2-4bfa-969f-0cd6e2d50ad8",
      "name": "유효 시간별 필터링",
      "type": "n8n-nodes-base.filter",
      "position": [
        1152,
        16
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "loose"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "f99f25cf-d59b-4739-be7f-269ecb07f76f",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ new Date($json.properties.effective).getTime() <= new Date().getTime() }}",
              "rightValue": "true"
            }
          ]
        },
        "looseTypeValidation": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "4b05f80a-b851-4286-9618-86dd11600faa",
      "name": "상태별 필터링",
      "type": "n8n-nodes-base.filter",
      "position": [
        768,
        16
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "2b51bbc7-927f-40a5-b43b-d12e23b6ea5c",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.properties.status }}",
              "rightValue": "Actual"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "fe639674-9bfe-4344-b4dc-3141f90cbf9f",
      "name": "Weather.gov 레이더 루프 가져오기",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        576,
        608
      ],
      "parameters": {
        "url": "https://radar.weather.gov/ridge/standard/KAMX_loop.gif",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "7a966d42-eae1-4aaf-ad35-2dff15b62e68",
      "name": "만료된 항목 필터링",
      "type": "n8n-nodes-base.filter",
      "position": [
        1344,
        16
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "loose"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "f99f25cf-d59b-4739-be7f-269ecb07f76f",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ new Date($json.properties.expires).getTime() >= new Date().getTime() }}",
              "rightValue": "true"
            }
          ]
        },
        "looseTypeValidation": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "a071bf45-dd82-41d0-9130-3c8ef6891ded",
      "name": "레이더 이미지 분석",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        960,
        496
      ],
      "parameters": {
        "text": "=This is the latest weather radar animation for the monitored area. The AI should analyze precipitation patterns, storm intensity, and movement.\n\nA local weather sensor reports precipitation type: {{ $json.state }}. This sensor takes precedence over radar-based assumptions when determining real-time weather conditions.\n\nDark greens, yellows, and reds indicate stronger precipitation. If storms are present, assess their movement and potential impact on the area. When describing weather, use cautious language like \"it is likely raining\" rather than making definitive statements unless radar data is conclusive.\n\nConsider storm progression over time and estimate when precipitation may begin or end based on timestamps in the radar animation.\n\nProvide a clear, concise summary of current conditions based on the radar and local weather sensor input.",
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini",
          "cachedResultName": "GPT-4O-MINI"
        },
        "options": {},
        "resource": "image",
        "inputType": "base64",
        "operation": "analyze"
      },
      "credentials": {
        "openAiApi": {
          "id": "bDmccS2kILl6lfr2",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "ac0ae58a-1c40-421d-ad53-9f2e560319df",
      "name": "JSON 응답 매핑",
      "type": "n8n-nodes-base.set",
      "position": [
        1152,
        496
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "ad4a9a05-20b8-4eda-a477-344d385b4a1e",
              "name": "radar_summary",
              "type": "string",
              "value": "={{ $json.content }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "4bea6742-c424-4250-9d1d-74b4cd46cff4",
      "name": "현지 강수량 날씨 가져오기",
      "type": "n8n-nodes-base.homeAssistant",
      "position": [
        576,
        416
      ],
      "parameters": {
        "entityId": "sensor.local_weather_precipitation_type",
        "resource": "state"
      },
      "credentials": {
        "homeAssistantApi": {
          "id": "nhKk0HXRsf8saByq",
          "name": "Home Assistant account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "a7d3e335-a2ae-459d-829f-f0047f7c1cbb",
      "name": "JSON과 이미지 병합",
      "type": "n8n-nodes-base.merge",
      "position": [
        768,
        496
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineByPosition"
      },
      "typeVersion": 3.2
    },
    {
      "id": "72fe8625-4631-4912-9db7-7ca721638431",
      "name": "레이더 분석과 NWS 데이터 병합",
      "type": "n8n-nodes-base.merge",
      "position": [
        1344,
        272
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineByPosition"
      },
      "typeVersion": 3.2
    },
    {
      "id": "dd7f1b53-dba0-4532-98e3-bfcc9c0a8681",
      "name": "OpenAI 채팅 모델",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1536,
        464
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "bDmccS2kILl6lfr2",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "90f46158-41ed-4811-baa6-efac8beff957",
      "name": "코드",
      "type": "n8n-nodes-base.code",
      "position": [
        384,
        256
      ],
      "parameters": {
        "jsCode": "let idx = 0\nlet alerts = []\n\nfor (const item of $input.all()) {\n  for (const alert of item.json.alerts) {\n    idx++\n\n      let template = `Alert ${idx}:\n  **Headline:** ${alert.properties.headline}\n  **Severity:** ${alert.properties.severity}\n  **Description:** ${alert.properties.description}\n  **Instructions:** ${alert.properties.instruction}\n`\n\n    alerts.push(template)\n  }\n\n  item.json = { nws_alerts: alerts.join('\\n\\n'), nws_alerts_count: alerts.length }\n}\n\nreturn $input.all();"
      },
      "typeVersion": 2
    },
    {
      "id": "bceccd50-f2f3-4ff4-b378-6030c8b680cd",
      "name": "집계",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        192,
        256
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData",
        "destinationFieldName": "alerts"
      },
      "typeVersion": 1
    },
    {
      "id": "642995c2-a4f4-43a4-bc58-ed2faebe1426",
      "name": "요약 생성",
      "type": "@n8n/n8n-nodes-langchain.chainSummarization",
      "position": [
        1536,
        272
      ],
      "parameters": {
        "options": {
          "summarizationMethodAndPrompts": {
            "values": {
              "prompt": "=It is critically important to limit your response to 255 characters or less, including spaces.\n\nAI Weather Assistant Alert: A new weather alert has been issued for this location. Summarize the alert details concisely. Include only essential information, such as severe conditions, timing, and affected areas.\n\nThe number of active weather alerts is: {{ $json.nws_alerts_count }}.\n\n# Reviewing all Moderate and Severe alerts:\n\n{{  $json.nws_alerts }}\n\n# Radar Analysis:\n\n{{  $json.radar_summary }}\n",
              "summarizationMethod": "stuff"
            }
          }
        },
        "operationMode": "nodeInputBinary"
      },
      "typeVersion": 2.1
    },
    {
      "id": "73e4af91-061d-44a7-a3aa-f8efad62e8c9",
      "name": "JSON을 응답에 매핑",
      "type": "n8n-nodes-base.set",
      "position": [
        1920,
        272
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "e290b262-1443-43ce-8761-1131cbc2cce2",
              "name": "summary",
              "type": "string",
              "value": "={{ $json.output.text }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "25f096aa-457e-4e9e-8394-e0054dc7ed55",
      "name": "스티커 메모",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -640,
        -32
      ],
      "parameters": {
        "width": 544,
        "height": 832,
        "content": "# Overview\n\nThis n8n template demonstrates how you can generate an AI-produced weather analysis of your local radar loop and home assistant precipitation sensor(s) to keep your family informed of National Weather Service Alerts.\n\nWith as crazy as things have been lately in the open world, how will you and your family know when a severe or extreme alert impacts your area?\n\n## How it Works\n\n- This workflow is triggered by a webhook with takes a latitude and longitude json payload to identify the area for monitoring.\n- Then, it fetches the National Weather Service Alerts and filters them down to alerts which are currently active and their severity.\n- Next, it fetches the local precipitation value from your Home Assistant instance (a value like \"Light Rain\" or \"No Rain\", etc) coupled with your respective weather.gov radar loop image.\n- It then submits this data to OpenAI and produces an output regarding the image analysis.\n- Finally, it takes this analysis and uses OpenAI to again generate a short summary.\n\n## How to Use\n\n- Import the workflow into your n8n instance\n- Update the credentials in the problematic nodes\n- Make sure you adjust the radar loop image that is being used\n\n## Requirements\n\n- A Home Assistant Instance (you could remove this data if you wanted)\n- An OpenAI account for LLM and image analysis\n"
      },
      "typeVersion": 1
    }
  ],
  "active": true,
  "pinData": {
    "Webhook": [
      {
        "json": {
          "body": {
            "latitude": 0,
            "longitude": 0
          }
        }
      }
    ]
  },
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "77f65303-990f-4463-bc6a-0949b7cb9cf6",
  "connections": {
    "90f46158-41ed-4811-baa6-efac8beff957": {
      "main": [
        [
          {
            "node": "4bea6742-c424-4250-9d1d-74b4cd46cff4",
            "type": "main",
            "index": 0
          },
          {
            "node": "fe639674-9bfe-4344-b4dc-3141f90cbf9f",
            "type": "main",
            "index": 0
          },
          {
            "node": "72fe8625-4631-4912-9db7-7ca721638431",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a72e2042-fd53-46b4-b366-c522ef3044ab": {
      "main": [
        [
          {
            "node": "31d8e7b5-c47a-42af-abb0-02f9c2482201",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "bceccd50-f2f3-4ff4-b378-6030c8b680cd": {
      "main": [
        [
          {
            "node": "90f46158-41ed-4811-baa6-efac8beff957",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b1938edb-79be-4399-a815-dc90ffd1f240": {
      "main": [
        [
          {
            "node": "bc5b7d6c-e2ad-43ab-aad1-d947799243e5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "31d8e7b5-c47a-42af-abb0-02f9c2482201": {
      "main": [
        [
          {
            "node": "b1938edb-79be-4399-a815-dc90ffd1f240",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "4b05f80a-b851-4286-9618-86dd11600faa": {
      "main": [
        [
          {
            "node": "e0ce90cb-a447-4b5c-a3e7-6ea2ccfa4efe",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "7a966d42-eae1-4aaf-ad35-2dff15b62e68": {
      "main": [
        [
          {
            "node": "bceccd50-f2f3-4ff4-b378-6030c8b680cd",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ac0ae58a-1c40-421d-ad53-9f2e560319df": {
      "main": [
        [
          {
            "node": "72fe8625-4631-4912-9db7-7ca721638431",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "dd7f1b53-dba0-4532-98e3-bfcc9c0a8681": {
      "ai_languageModel": [
        [
          {
            "node": "642995c2-a4f4-43a4-bc58-ed2faebe1426",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "e0ce90cb-a447-4b5c-a3e7-6ea2ccfa4efe": {
      "main": [
        [
          {
            "node": "e5272333-90a2-4bfa-969f-0cd6e2d50ad8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "642995c2-a4f4-43a4-bc58-ed2faebe1426": {
      "main": [
        [
          {
            "node": "73e4af91-061d-44a7-a3aa-f8efad62e8c9",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a071bf45-dd82-41d0-9130-3c8ef6891ded": {
      "main": [
        [
          {
            "node": "ac0ae58a-1c40-421d-ad53-9f2e560319df",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e5272333-90a2-4bfa-969f-0cd6e2d50ad8": {
      "main": [
        [
          {
            "node": "7a966d42-eae1-4aaf-ad35-2dff15b62e68",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "73e4af91-061d-44a7-a3aa-f8efad62e8c9": {
      "main": [
        []
      ]
    },
    "a7d3e335-a2ae-459d-829f-f0047f7c1cbb": {
      "main": [
        [
          {
            "node": "a071bf45-dd82-41d0-9130-3c8ef6891ded",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "bc5b7d6c-e2ad-43ab-aad1-d947799243e5": {
      "main": [
        [
          {
            "node": "4b05f80a-b851-4286-9618-86dd11600faa",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "fe639674-9bfe-4344-b4dc-3141f90cbf9f": {
      "main": [
        [
          {
            "node": "a7d3e335-a2ae-459d-829f-f0047f7c1cbb",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "4bea6742-c424-4250-9d1d-74b4cd46cff4": {
      "main": [
        [
          {
            "node": "a7d3e335-a2ae-459d-829f-f0047f7c1cbb",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "72fe8625-4631-4912-9db7-7ca721638431": {
      "main": [
        [
          {
            "node": "642995c2-a4f4-43a4-bc58-ed2faebe1426",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
자주 묻는 질문

이 워크플로우를 어떻게 사용하나요?

위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.

이 워크플로우는 어떤 시나리오에 적합한가요?

고급 - 개인 생산성, AI 요약

유료인가요?

이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.

워크플로우 정보
난이도
고급
노드 수20
카테고리2
노드 유형13
난이도 설명

고급 사용자를 위한 16+개 노드의 복잡한 워크플로우

외부 링크
n8n.io에서 보기

이 워크플로우 공유

카테고리

카테고리: 34