GPT-4oとTelegramを活用した対話式ロシア語学習チャットボット

上級

これはContent Creation, Multimodal AI分野の自動化ワークフローで、16個のノードを含みます。主にSet, Switch, Telegram, AimlApi, TelegramTriggerなどのノードを使用。 GPT-4oとTelegramを基盤としたインタラクティブなロシア語チューターボット

前提条件
  • Telegram Bot Token
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
  "meta": {
    "instanceId": "e95138f4feafe21ee6a9aac976bfd8e9187993130e7b713ed219f955c1b8837d"
  },
  "nodes": [
    {
      "id": "5c259a9b-75bc-4873-bbc2-34a913c46e21",
      "name": "開始: Telegram でメッセージを受信",
      "type": "n8n-nodes-base.telegramTrigger",
      "position": [
        -368,
        848
      ],
      "webhookId": "b04097ef-4484-4648-aee4-d3652537c8c3",
      "parameters": {
        "updates": [
          "message"
        ],
        "additionalFields": {}
      },
      "typeVersion": 1.1
    },
    {
      "id": "30a57d49-8269-48ac-ac31-7873341c3afa",
      "name": "入力タイプでルーティング",
      "type": "n8n-nodes-base.switch",
      "position": [
        80,
        816
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "Vocabulary",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "71a70192-b1c2-44fc-9e0b-cad9cc5eaac4",
                    "operator": {
                      "type": "string",
                      "operation": "startsWith"
                    },
                    "leftValue": "={{ $('Start: Receive Message on Telegram').item.json.message.text }}",
                    "rightValue": "#vocabulary"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "Grammar",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "1b5b1c7e-99e9-4e6d-a050-2d3c1c22c236",
                    "operator": {
                      "type": "string",
                      "operation": "startsWith"
                    },
                    "leftValue": "={{ $('Start: Receive Message on Telegram').item.json.message.text }}",
                    "rightValue": "#grammar"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "Quiz",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "a9ad78e2-623b-4d1b-b0b8-bdaebf8bd71c",
                    "operator": {
                      "type": "string",
                      "operation": "startsWith"
                    },
                    "leftValue": "={{ $('Start: Receive Message on Telegram').item.json.message.text }}",
                    "rightValue": "#quiz"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "Any other",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "6f3a36ca-2348-4573-bbd7-4aa8088ec296",
                    "operator": {
                      "type": "string",
                      "operation": "exists",
                      "singleValue": true
                    },
                    "leftValue": "={{ $('Start: Receive Message on Telegram').item.json.message.text }}",
                    "rightValue": ""
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {}
      },
      "notesInFlow": false,
      "typeVersion": 3.2
    },
    {
      "id": "9f15049b-d560-4d93-b71c-f378ddb76abc",
      "name": "付箋",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -80,
        -144
      ],
      "parameters": {
        "color": 7,
        "width": 572,
        "height": 356,
        "content": "## 📖 Getting Started in 4 Steps\n\n1) 🔐 **Set Up Access**\nTelegram: Insert the bot token (created in BotFather) inside the Telegram Trigger and Telegram nodes.\nAI/ML API: Enter your API key in the AI/ML account credentials section.\n2) ▶️ **Turn On Your Workflow**\nUse the Active switch in the top bar of the editor.\n3) 💬 **Chat via Telegram**\nUse tags like #vocabulary, #grammar, or #quiz to choose a mode.\nSend plain text without tags for a general supportive answer.\n4) ⏳ **See the Bot in Action**\nA “typing…” status will appear thanks to the Show Typing Indicator node."
      },
      "typeVersion": 1
    },
    {
      "id": "acfa62af-19ff-42a9-8b27-c59b46a6937d",
      "name": "その他すべてのメッセージ用メインプロンプト",
      "type": "n8n-nodes-base.set",
      "position": [
        400,
        1104
      ],
      "parameters": {
        "mode": "raw",
        "options": {},
        "jsonOutput": "={\n  \"prompt\": \"You are an AI Russian language tutor. The user can choose a mode using hashtags: #vocabulary, #grammar, #quiz. Adapt your response format depending on the mode. The user decides how many items (words, rules, or questions) they want. Your task is to structure the response in the correct style, not to set limits. Always explain clearly in English with Russian examples. Always give feedback and encouragement in Russian at the end. Modes: #vocabulary — teach the requested number of words with pronunciation, examples, and a task. #grammar — explain the requested grammar topic with examples and practice. #quiz — create exactly the number of quiz questions requested, formatted properly, then give answers and feedback. If no hashtag is provided, ask the student to choose a mode. create good looking formatting for telegram. use ** for bold text, instead ###.\"\n}"
      },
      "typeVersion": 3.4
    },
    {
      "id": "eececf03-0441-47a3-b5ed-fba1bef88d0f",
      "name": "個人向け回答を生成",
      "type": "n8n-nodes-aimlapi.aimlApi",
      "position": [
        688,
        848
      ],
      "parameters": {
        "model": "openai/gpt-4o",
        "prompt": "={{ $json.prompt }}\n\nMessage:\n{{ $('Start: Receive Message on Telegram').item.json.message.text }}",
        "options": {},
        "requestOptions": {}
      },
      "typeVersion": 1
    },
    {
      "id": "7c387949-7b74-47fc-9150-c65e464283f2",
      "name": "Telegram にメッセージを送信",
      "type": "n8n-nodes-base.telegram",
      "position": [
        912,
        848
      ],
      "webhookId": "fa689c4d-4c59-49c8-bbd6-0ab170d2f659",
      "parameters": {
        "text": "={{ $json.content }}",
        "chatId": "={{ $('Start: Receive Message on Telegram').item.json.message.chat.id }}",
        "additionalFields": {
          "appendAttribution": false
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "2a17ec7d-31bf-4508-8302-39751e8059b1",
      "name": "入力中インジケーターを表示",
      "type": "n8n-nodes-base.telegram",
      "position": [
        -144,
        848
      ],
      "webhookId": "fa689c4d-4c59-49c8-bbd6-0ab170d2f659",
      "parameters": {
        "chatId": "={{ $('Start: Receive Message on Telegram').item.json.message.chat.id }}",
        "operation": "sendChatAction"
      },
      "typeVersion": 1.2
    },
    {
      "id": "a4c67a53-9300-429f-a81c-a7c9c6a0c901",
      "name": "付箋1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        16,
        688
      ],
      "parameters": {
        "height": 368,
        "content": "### Checks message.text for #vocabulary, #grammar, #quiz, or falls back"
      },
      "typeVersion": 1
    },
    {
      "id": "b32afd82-8c14-46f1-a028-ce6b6d69c7d7",
      "name": "付箋2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        512,
        -144
      ],
      "parameters": {
        "color": 4,
        "width": 368,
        "height": 352,
        "content": "## 🔍 Node Overview\n\n- **Telegram Trigger**: Listens for incoming messages.  \n- **Show Typing Indicator**: Immediately shows “typing…” in chat.  \n- **Route by Input Type (Switch)**: Detects your tag and routes to the right prompt.  \n- **Vocabulary/Grammar/Quiz/Main Prompt**: Builds the JSON payload for the AI/ML API.  \n- **Send message to Telegram**: Delivers the AI’s reply back into your chat.  "
      },
      "typeVersion": 1
    },
    {
      "id": "9024416b-fdee-49d0-95f9-098cc08b12da",
      "name": "付箋3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        304,
        560
      ],
      "parameters": {
        "width": 288,
        "height": 720,
        "content": "## Chooses from given prompts"
      },
      "typeVersion": 1
    },
    {
      "id": "1971bb3f-fe43-4244-915e-825b254a9a8d",
      "name": "付箋4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        656,
        752
      ],
      "parameters": {
        "color": 5,
        "width": 384,
        "height": 272,
        "content": "## Generates and sends answer to Telegram"
      },
      "typeVersion": 1
    },
    {
      "id": "c696bb62-4e7d-454d-b2a9-c0684127b7ac",
      "name": "付箋5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -80,
        224
      ],
      "parameters": {
        "color": 6,
        "width": 960,
        "height": 272,
        "content": "## 🟡 **Example:**\n\n**Input:**\n   ```\n\"#vocabulary кукуруза\"\n   ```\n**Output:**\n   ```\nКукуруза (Kukurúza) - Corn Pronunciation: koo-koo-ROO-zah  \nSentence: Я люблю есть кукурузу на гриле. I love eating grilled corn...\n   ```"
      },
      "typeVersion": 1
    },
    {
      "id": "6983ce9e-0209-4928-9884-c9ed3c2c5dc7",
      "name": "語彙プロンプト",
      "type": "n8n-nodes-base.set",
      "position": [
        400,
        656
      ],
      "parameters": {
        "mode": "raw",
        "options": {},
        "jsonOutput": "={\n  \"prompt\": \"You are a Russian language tutor focused on expanding the student's vocabulary. The student will specify how many words they want to learn. Provide exactly that number of Russian words with English translations. Show pronunciation in Latin transcription. Use each word in a simple Russian sentence with English translation. At the end, give a small interactive task where the student can practice using some of the new words. create good looking formatting for telegram. use ** for bold text, instead ###. #vocabulary\"\n}\n"
      },
      "typeVersion": 3.4
    },
    {
      "id": "0934b8df-9b9c-41d9-8a86-88b252fc7c73",
      "name": "文法プロンプト",
      "type": "n8n-nodes-base.set",
      "position": [
        400,
        800
      ],
      "parameters": {
        "mode": "raw",
        "options": {},
        "jsonOutput": "={\n  \"prompt\": \"You are a Russian grammar tutor. The student may ask about a specific grammar rule or request an explanation of a topic. Provide a clear explanation in English with Russian examples. Adjust the depth and number of examples based on the student's request. Ask the student to practice by forming their own sentences. Provide gentle corrections and explanations. create good looking formatting for telegram.  use ** for bold text, instead ###. #grammar\"\n}\n"
      },
      "typeVersion": 3.4
    },
    {
      "id": "a6c5ca38-12d4-4dfa-b002-30ffe4af8123",
      "name": "クイズプロンプト",
      "type": "n8n-nodes-base.set",
      "position": [
        400,
        960
      ],
      "parameters": {
        "mode": "raw",
        "options": {},
        "jsonOutput": "={\n  \"prompt\": \"You are a Russian language tutor creating quizzes or exercises. The student decides how many questions they want. Format all tasks in a quiz-friendly style (multiple-choice, translation, or fill-in-the-blank). After the student answers, provide correct solutions and short explanations. End with positive feedback in Russian. create good looking formatting for telegram.  use ** for bold text, instead ###.#quiz\"\n}\n"
      },
      "typeVersion": 3.4
    },
    {
      "id": "46003c53-9ef7-4b53-88c2-06bce360209b",
      "name": "付箋6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -400,
        768
      ],
      "parameters": {
        "color": 4,
        "width": 384,
        "height": 272,
        "content": "### Checks for messages and emulates typing"
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "a6c5ca38-12d4-4dfa-b002-30ffe4af8123": {
      "main": [
        [
          {
            "node": "eececf03-0441-47a3-b5ed-fba1bef88d0f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0934b8df-9b9c-41d9-8a86-88b252fc7c73": {
      "main": [
        [
          {
            "node": "eececf03-0441-47a3-b5ed-fba1bef88d0f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6983ce9e-0209-4928-9884-c9ed3c2c5dc7": {
      "main": [
        [
          {
            "node": "eececf03-0441-47a3-b5ed-fba1bef88d0f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "30a57d49-8269-48ac-ac31-7873341c3afa": {
      "main": [
        [
          {
            "node": "6983ce9e-0209-4928-9884-c9ed3c2c5dc7",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "0934b8df-9b9c-41d9-8a86-88b252fc7c73",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "a6c5ca38-12d4-4dfa-b002-30ffe4af8123",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "acfa62af-19ff-42a9-8b27-c59b46a6937d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2a17ec7d-31bf-4508-8302-39751e8059b1": {
      "main": [
        [
          {
            "node": "30a57d49-8269-48ac-ac31-7873341c3afa",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "eececf03-0441-47a3-b5ed-fba1bef88d0f": {
      "main": [
        [
          {
            "node": "7c387949-7b74-47fc-9150-c65e464283f2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "acfa62af-19ff-42a9-8b27-c59b46a6937d": {
      "main": [
        [
          {
            "node": "eececf03-0441-47a3-b5ed-fba1bef88d0f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5c259a9b-75bc-4873-bbc2-34a913c46e21": {
      "main": [
        [
          {
            "node": "2a17ec7d-31bf-4508-8302-39751e8059b1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
よくある質問

このワークフローの使い方は?

上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。

このワークフローはどんな場面に適していますか?

上級 - コンテンツ作成, マルチモーダルAI

有料ですか?

このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。

関連ワークフロー

Telegram で GPT-4o を使って Flux Pro と合わせて AI 画像を生成
Telegram 内で GPT-4o と Flux Pro を使って AI 画像を生成
If
Set
Telegram
+
If
Set
Telegram
22 ノードAI/ML API | D1m7asis
コンテンツ作成
GPT-4oを使用したTelegramメンタルヘルスサポートボットの構築
GPT-4oをベースとしたTelegramメンタルヘルスサポートボットを構築
Set
Switch
Telegram
+
Set
Switch
Telegram
15 ノードAI/ML API | D1m7asis
サポートチャットボット
TelegramボットとGPT-4oを使ってパーソナライズされた都道府県別旅行プランを作成
Telegram ボットと GPT-4o を使用してパーソナライズされた都市旅行の旅程を作成
Set
Switch
Telegram
+
Set
Switch
Telegram
21 ノードAI/ML API | D1m7asis
Telegram、AIMLAPI、Google Sheetsを使用してマルチモデルAIチャットボットを作成
Telegram、AIMLAPI、Google スプレッドシートを使って多模型AIチャットボットを作成
If
Set
Code
+
If
Set
Code
25 ノードAI/ML API | D1m7asis
個人の生産性
GPT-5 と Google Veo-3 を使用してテキストプロンプトから動画を生成
テキストプロンプトから動画を生成するために GPT-5 と Google Veo-3 を使用
If
Set
Wait
+
If
Set
Wait
20 ノードAI/ML API | D1m7asis
コンテンツ作成
Telegramメッセージ処理の自動化
Telegramメッセージ処理の自動化 - テキストとファイルを分離して処理
Set
Switch
Split Out
+
Set
Switch
Split Out
17 ノードEoCi - Mr.Eo
コンテンツ作成
ワークフロー情報
難易度
上級
ノード数16
カテゴリー2
ノードタイプ6
難易度説明

上級者向け、16ノード以上の複雑なワークフロー

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34