8
n8n 한국어amn8n.com

Telegram, Tavily 및 GPT-5를 사용한 사실적 웹 검색 질의응답

중급

이것은Personal Productivity, AI RAG분야의자동화 워크플로우로, 15개의 노드를 포함합니다.주로 Telegram, AimlApi, TelegramTrigger, Tavily 등의 노드를 사용하며. Telegram, Tavily 및 GPT-5를 사용한 사실적 웹 검색으로 질문에 답변

사전 요구사항
  • Telegram Bot Token
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
  "meta": {
    "instanceId": "e95138f4feafe21ee6a9aac976bfd8e9187993130e7b713ed219f955c1b8837d",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "84253a28-e14b-462a-969c-f1e296f1eb40",
      "name": "Sticky Note — 개요",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -96,
        -928
      ],
      "parameters": {
        "color": 5,
        "width": 384,
        "height": 360,
        "content": "# 🔍 Telegram Search Assistant\n\nMinimal bot that:\n1) Receives a question in Telegram\n2) Searches the web (Tavily)\n3) Summarizes facts with AIMLAPI (`openai/gpt-5-chat-latest`)\n4) Replies concisely (3–4 sentences), grounded in sources\n\n**Goal:** fast, factual answers without hallucinations."
      },
      "typeVersion": 1
    },
    {
      "id": "0aaea504-3ed8-48b3-aa38-61963de91735",
      "name": "Sticky Note — LLM 프롬프트",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        288,
        -736
      ],
      "parameters": {
        "color": 6,
        "width": 384,
        "height": 240,
        "content": "## 🧠 LLM Prompt (Guardrails)\n* Extract only facts that answer the question\n* 3–4 sentences max\n* If data is thin → say so clearly\n* **No fabrication** — use provided results only\n\n**Inputs:**\n- `query = user message`\n- `results = full Tavily JSON`"
      },
      "typeVersion": 1
    },
    {
      "id": "0b337423-00e8-4236-b8ef-293641dd387a",
      "name": "Sticky Note — 테스트",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        288,
        -496
      ],
      "parameters": {
        "width": 384,
        "height": 192,
        "content": "## 🧪 Testing & Fallbacks\n* Test from Telegram (not only “Execute Node”)\n* Add `Switch` for commands and empty text\n* If no results → reply: “I couldn’t find enough reliable info.”\n* Catch errors: send friendly message, log details"
      },
      "typeVersion": 1
    },
    {
      "id": "4c772d35-25cc-4cf9-bfe8-58bf23d7c6eb",
      "name": "Sticky Note — 사용자 지정",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -96,
        -576
      ],
      "parameters": {
        "color": 5,
        "width": 384,
        "height": 232,
        "content": "## 🛠 Customization\n* `/help` → usage & examples\n* `/sources` → list top URLs from results\n* `/news` or `/wiki` routing via keywords\n* Add NSFW/profanity filter pre-search\n* Rate-limit per user (Set → Wait → Redis/DB)\n* Optional: cache recent answers (key = normalized query)"
      },
      "typeVersion": 1
    },
    {
      "id": "9778f214-dabf-48db-9f70-6c62e8747fc6",
      "name": "Sticky Note — 응답",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        752,
        -192
      ],
      "parameters": {
        "color": 4,
        "height": 304,
        "content": "## 📤 Reply to Telegram\nReply to same chat, referencing original message."
      },
      "typeVersion": 1
    },
    {
      "id": "e948ce86-f169-47a8-99c8-582bcc5e7d1b",
      "name": "Sticky Note — LLM",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        496,
        -192
      ],
      "parameters": {
        "color": 6,
        "height": 304,
        "content": "## 🧠 LLM Summarize\nInput: full search JSON.\nOutput: concise factual answer."
      },
      "typeVersion": 1
    },
    {
      "id": "a7430bc0-6057-4648-82ed-f90ccaf6fe76",
      "name": "Sticky Note — 검색",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        240,
        -192
      ],
      "parameters": {
        "color": 5,
        "height": 304,
        "content": "## 🔎 Web Search\nQuery = user message. Pass raw JSON downstream."
      },
      "typeVersion": 1
    },
    {
      "id": "3c805f46-b470-4016-afe6-89641b180a86",
      "name": "Sticky Note — 입력",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -16,
        -192
      ],
      "parameters": {
        "color": 2,
        "height": 304,
        "content": "## ⌨️ Typing Indicator\nSend \"typing\" to show progress."
      },
      "typeVersion": 1
    },
    {
      "id": "3cca7a73-c37a-4e59-a994-a24d81e98c83",
      "name": "Sticky Note — 수신",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -272,
        -192
      ],
      "parameters": {
        "color": 4,
        "height": 304,
        "content": "## 📩 Receive Telegram Message\nHandle incoming text. Use chat.id + message_id for reply."
      },
      "typeVersion": 1
    },
    {
      "id": "0ccc7f9f-bc6d-4e44-881d-7b9e1af4f622",
      "name": "텍스트 메시지 전송",
      "type": "n8n-nodes-base.telegram",
      "position": [
        832,
        -48
      ],
      "webhookId": "01689fcb-171a-4338-bdc5-10447d604caa",
      "parameters": {
        "text": "={{ $json.content }}",
        "chatId": "={{ $('Telegram Trigger').item.json.message.chat.id }}",
        "additionalFields": {
          "appendAttribution": false,
          "reply_to_message_id": "={{ $('Telegram Trigger').item.json.message.message_id }}"
        }
      },
      "credentials": {
        "telegramApi": {
          "id": "wh7cybWjl2Zw0MEh",
          "name": "Telegram account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "eeb18791-a210-4614-9b65-7ec3c7edba37",
      "name": "채팅 액션 전송",
      "type": "n8n-nodes-base.telegram",
      "position": [
        48,
        -48
      ],
      "webhookId": "bf4cf2c0-6013-4ebf-be08-3519823031c1",
      "parameters": {
        "chatId": "={{ $json.message.chat.id }}",
        "operation": "sendChatAction"
      },
      "credentials": {
        "telegramApi": {
          "id": "wh7cybWjl2Zw0MEh",
          "name": "Telegram account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "239a5aad-bd01-4895-9551-2606aaa9444a",
      "name": "Telegram 트리거",
      "type": "n8n-nodes-base.telegramTrigger",
      "position": [
        -208,
        -48
      ],
      "webhookId": "5ff309b0-9d51-4953-b9ae-616e4c17322b",
      "parameters": {
        "updates": [
          "message"
        ],
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "wh7cybWjl2Zw0MEh",
          "name": "Telegram account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "abdc849f-ed58-40c8-a34b-2d547f5d9212",
      "name": "검색",
      "type": "@tavily/n8n-nodes-tavily.tavily",
      "position": [
        304,
        -48
      ],
      "parameters": {
        "query": "={{ $('Telegram Trigger').item.json.message.text }}",
        "options": {}
      },
      "credentials": {
        "tavilyApi": {
          "id": "8wWN6c3Z8RZux0RW",
          "name": "Tavily account 2"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "17336e52-7ab1-4087-9358-97e04f129d63",
      "name": "AI/ML 채팅 완성",
      "type": "n8n-nodes-aimlapi.aimlApi",
      "position": [
        560,
        -48
      ],
      "parameters": {
        "model": "openai/gpt-5-chat-latest",
        "prompt": "=You are an AI assistant.  \nYou have search results from Google in JSON or text format.  \nYour task is to:  \n1. Extract only the facts that directly answer the user’s question.  \n2. Provide a clear, concise answer in 3–4 sentences maximum.  \n3. If the information is limited, state that clearly.  \n4. Never make things up — base your answer only on the provided results.  \n\nUser question: \"{{ $json.query }}\"  \nSearch results:  \n{{ JSON.stringify($json.results) }}\n\nGenerate the final answer in plain, simple English.\n",
        "options": {
          "responseFormat": "text"
        },
        "requestOptions": {}
      },
      "credentials": {
        "aimlApi": {
          "id": "QLCphbfkAMZbZesE",
          "name": "AI/ML account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "eb8e941d-3b34-45b1-86da-f051b13a7f08",
      "name": "Sticky Note — LLM 프롬프트1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        288,
        -976
      ],
      "parameters": {
        "color": 4,
        "width": 384,
        "height": 240,
        "content": "## ⚙️ Setup\n1. **Telegram**: create bot via @BotFather → add token in *Credentials → Telegram API*.\n2. **Tavily**: create API key → add *Tavily account* credentials.\n3. **AIMLAPI**: add *AI/ML API* credentials (base URL `https://api.aimlapi.com/v1`).\n4. **Environment**: set `TELEGRAM_BOT_TOKEN`, `TAVILY_API_KEY`, `AIML_API_KEY` in n8n (if using env)."
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "abdc849f-ed58-40c8-a34b-2d547f5d9212": {
      "main": [
        [
          {
            "node": "17336e52-7ab1-4087-9358-97e04f129d63",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "239a5aad-bd01-4895-9551-2606aaa9444a": {
      "main": [
        [
          {
            "node": "eeb18791-a210-4614-9b65-7ec3c7edba37",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "eeb18791-a210-4614-9b65-7ec3c7edba37": {
      "main": [
        [
          {
            "node": "abdc849f-ed58-40c8-a34b-2d547f5d9212",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "17336e52-7ab1-4087-9358-97e04f129d63": {
      "main": [
        [
          {
            "node": "0ccc7f9f-bc6d-4e44-881d-7b9e1af4f622",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
자주 묻는 질문

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

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

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

중급 - 개인 생산성, AI RAG

유료인가요?

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

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

일정 경험을 가진 사용자를 위한 6-15개 노드의 중간 복잡도 워크플로우

외부 링크
n8n.io에서 보기

이 워크플로우 공유

카테고리

카테고리: 34