Task: Telegram AI Chatbot

n8n workflow:
{"id":"177","meta":{"instanceId":"dfdeafd1c3ed2ee08eeab8c2fa0c3f522066931ed8138ccd35dc20a1e69decd3"},"name":"Telegram AI-bot","tags":[{"id":"15","name":"tutorial","createdAt":"2022-10-04T20:07:25.607Z","updatedAt":"2022-10-04T20:07:25.607Z"}],"nodes":[{"id":"ea71a467-a646-4aca-b72e-cef1249c74e2","name":"Telegram Trigger","type":"n8n-nodes-base.telegramTrigger","position":[20,340],"webhookId":"51942fbb-ca0e-4ec4-9423-5fcc7d3c4281","parameters":{"updates":["*"],"additionalFields":{}},"credentials":{"telegramApi":{"id":"70","name":"Telegram bot"}},"typeVersion":1},{"id":"1cbe43d4-ea8b-4178-bc10-4bfad7abe143","name":"CheckCommand","type":"n8n-nodes-base.switch","position":[980,360],"parameters":{"rules":{"rules":[{"value2":"/","operation":"notStartsWith"},{"output":1,"value2":"/start","operation":"startsWith"},{"output":2,"value2":"=/image ","operation":"startsWith"}]},"value1":"={{ $json.message?.text }}","dataType":"string","fallbackOutput":3},"typeVersion":1},{"id":"074e907f-634b-4242-b669-33fa064f8472","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[1600,581.661764705882],"parameters":{"width":316.1071428571428,"height":231.22373949579838,"content":"## Error fallback for unsupported commands"},"typeVersion":1},{"id":"2aa961b8-f0af-4d5c-a6af-1be56ea4b2e6","name":"Settings","type":"n8n-nodes-base.set","position":[380,340],"parameters":{"values":{"number":[{"name":"model_temperature","value":0.8},{"name":"token_length","value":500}],"string":[{"name":"system_command","value":"=You are a friendly chatbot. User name is {{ $json?.message?.from?.first_name }}. User system language is {{ $json?.message?.from?.language_code }}. First, detect user text language. Next, provide your reply in the same language. Include several suitable emojis in your answer."},{"name":"bot_typing","value":"={{ $json?.message?.text.startsWith('/image') ? \"upload_photo\" : \"typing\" }}"}]},"options":{}},"typeVersion":2},{"id":"2d2fe268-1e3e-483b-847c-4412e586c1ca","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[1240,-240],"parameters":{"width":330.5019024637719,"height":233,"content":"## Chatbot mode by default\n### (when no command is provided)"},"typeVersion":1},{"id":"09a9c0b4-ac6e-46eb-b2e0-ef2b55e94ada","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[1240,20],"parameters":{"width":330.7863484403046,"height":219.892857142857,"content":"## Welcome message\n### /start"},"typeVersion":1},{"id":"088cffee-5720-488b-a4ec-cfdccbf77e75","name":"Chat_mode","type":"n8n-nodes-base.openAi","position":[1340,-160],"parameters":{"model":"gpt-4","prompt":{"messages":[{"role":"system","content":"={{ $json.system_command }}"},{"content":"={{ $json.message.text }}"}]},"options":{"maxTokens":"={{ $json.token_length }}","temperature":"={{ $json.model_temperature }}"},"resource":"chat"},"credentials":{"openAiApi":{"id":"63","name":"OpenAi account"}},"typeVersion":1},{"id":"41248697-6474-4a8f-a8b8-038c96465948","name":"Greeting","type":"n8n-nodes-base.openAi","position":[1340,80],"parameters":{"prompt":{"messages":[{"role":"system","content":"={{ $json.system_command }}"},{"content":"=This is the first message from a user. Please welcome a new user in `{{ $json.message.from.language_code }}` language"}]},"options":{"maxTokens":"={{ $json.token_length }}","temperature":"={{ $json.model_temperature }}"},"resource":"chat"},"credentials":{"openAiApi":{"id":"63","name":"OpenAi account"}},"typeVersion":1},{"id":"20c2e7fa-5d65-441b-8d1d-a8d46c624964","name":"Text reply","type":"n8n-nodes-base.telegram","position":[1700,-40],"parameters":{"text":"={{ $json.message.content }}","chatId":"={{ $('Settings').first().json.message.from.id }}","additionalFields":{"parse_mode":"Markdown"}},"credentials":{"telegramApi":{"id":"70","name":"Telegram bot"}},"typeVersion":1},{"id":"30321276-ebe1-41ac-b420-9dab8daa405b","name":"Send Typing action","type":"n8n-nodes-base.telegram","position":[580,480],"parameters":{"action":"={{ $json.bot_typing }}","chatId":"={{ $json.message.from.id }}","operation":"sendChatAction"},"credentials":{"telegramApi":{"id":"70","name":"Telegram bot"}},"typeVersion":1},{"id":"7d7ff2e8-b0ca-4638-a056-f7b4e2e6273d","name":"Merge","type":"n8n-nodes-base.merge","position":[800,360],"parameters":{"mode":"chooseBranch"},"typeVersion":2.1},{"id":"656bab5e-b7f7-47a1-8e75-4a17d2070290","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[1240,280],"parameters":{"width":329.7428571428562,"height":233.8785714285713,"content":"## Create an image\n### /image + request"},"typeVersion":1},{"id":"ca2111d2-463a-4ef0-9436-ee09598dbf07","name":"Create an image","type":"n8n-nodes-base.openAi","position":[1340,360],"parameters":{"prompt":"={{ $json.message.text.split(' ').slice(1).join(' ') }}","options":{"n":1,"size":"512x512"},"resource":"image","responseFormat":"imageUrl"},"credentials":{"openAiApi":{"id":"63","name":"OpenAi account"}},"typeVersion":1},{"id":"e91d616b-1d5e-40e8-8468-2d0b2dda4cf7","name":"Send error message","type":"n8n-nodes-base.telegram","position":[1700,660],"parameters":{"text":"=Sorry, {{ $json.message.from.first_name }}! This command is not supported yet. Please type some text to a chat bot or try this command:\n/image \\[your prompt]\n\nEnter the command, then space and provide your request. Example:\n\n`/image a picture or a cute little kitten with big eyes. Miyazaki studio ghibli style`","chatId":"={{ $json.message.from.id }}","additionalFields":{"parse_mode":"Markdown"}},"credentials":{"telegramApi":{"id":"70","name":"Telegram bot"}},"typeVersion":1},{"id":"125e27d2-b03b-4f02-9dd1-8fc81ecf0b6b","name":"Send image","type":"n8n-nodes-base.telegram","position":[1700,360],"parameters":{"file":"={{ $json.url }}","chatId":"={{ $('Settings').first().json.message.from.id }}","operation":"sendPhoto","additionalFields":{}},"credentials":{"telegramApi":{"id":"70","name":"Telegram bot"}},"typeVersion":1},{"id":"730a51ac-223e-4956-be7f-166eadb6ed81","name":"PreProcessing","type":"n8n-nodes-base.set","position":[200,340],"parameters":{"values":{"string":[{"name":"message.text","value":"={{ $json?.message?.text || \"\" }}"}]},"options":{"dotNotation":true}},"typeVersion":2}],"active":true,"pinData":{},"settings":{"callerPolicy":"workflowsFromSameOwner","saveManualExecutions":true,"saveDataSuccessExecution":"all"},"versionId":"6ab99e3f-845d-42cc-847b-37cf19a72e93","connections":{"Merge":{"main":[[{"node":"CheckCommand","type":"main","index":0}]]},"Greeting":{"main":[[{"node":"Text reply","type":"main","index":0}]]},"Settings":{"main":[[{"node":"Send Typing action","type":"main","index":0},{"node":"Merge","type":"main","index":0}]]},"Chat_mode":{"main":[[{"node":"Text reply","type":"main","index":0}]]},"CheckCommand":{"main":[[{"node":"Chat_mode","type":"main","index":0}],[{"node":"Greeting","type":"main","index":0}],[{"node":"Create an image","type":"main","index":0}],[{"node":"Send error message","type":"main","index":0}]]},"PreProcessing":{"main":[[{"node":"Settings","type":"main","index":0}]]},"Create an image":{"main":[[{"node":"Send image","type":"main","index":0}]]},"Telegram Trigger":{"main":[[{"node":"PreProcessing","type":"main","index":0}]]},"Send Typing action":{"main":[[{"node":"Merge","type":"main","index":1}]]}}}