Bot de tutoría interactivo en ruso basado en GPT-4o y Telegram

Avanzado

Este es unContent Creation, Multimodal AIflujo de automatización del dominio deautomatización que contiene 16 nodos.Utiliza principalmente nodos como Set, Switch, Telegram, AimlApi, TelegramTrigger. Asistente de tutoría en ruso interactivo basado en GPT-4o y Telegram

Requisitos previos
  • Bot Token de Telegram
Vista previa del flujo de trabajo
Visualización de las conexiones entre nodos, con soporte para zoom y panorámica
Exportar flujo de trabajo
Copie la siguiente configuración JSON en n8n para importar y usar este flujo de trabajo
{
  "meta": {
    "instanceId": "e95138f4feafe21ee6a9aac976bfd8e9187993130e7b713ed219f955c1b8837d"
  },
  "nodes": [
    {
      "id": "5c259a9b-75bc-4873-bbc2-34a913c46e21",
      "name": "Inicio: Recibir mensaje en 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": "Enrutar por tipo de entrada",
      "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": "Nota adhesiva",
      "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": "Prompt principal para otros mensajes",
      "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": "Generar respuesta personalizada",
      "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": "Enviar mensaje a 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": "Mostrar indicador de escritura",
      "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": "Nota adhesiva 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": "Nota adhesiva 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": "Nota adhesiva 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": "Nota adhesiva 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": "Nota adhesiva 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": "Prompt de vocabulario",
      "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": "Prompt de gramática",
      "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": "Prompt de cuestionario",
      "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": "Nota adhesiva 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
          }
        ]
      ]
    }
  }
}
Preguntas frecuentes

¿Cómo usar este flujo de trabajo?

Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.

¿En qué escenarios es adecuado este flujo de trabajo?

Avanzado - Creación de contenido, IA Multimodal

¿Es de pago?

Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.

Información del flujo de trabajo
Nivel de dificultad
Avanzado
Número de nodos16
Categoría2
Tipos de nodos6
Descripción de la dificultad

Adecuado para usuarios avanzados, flujos de trabajo complejos con 16+ nodos

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34