Categories Взаємодія в роботі

Як створити багатомовного бота

Розглянемо на прикладі @OfficeGymBot, який працює 9 мовами: англійська, іспанська, російська, французька, італійська, німецька, хінді, китайська та арабська.

Можна протестувати Telegram, щоб побачити як це виглядає. Бот нагадує робити гімнастику на роботі та надсилає відео вправи.

Після старту робота є 2 сценарії:

1) Якщо месенджер передає мову, встановлену в додатку користувача, то бот самостійно визначає мову і весь контент (повідомлення) відправляємо цією мовою.

2) Якщо месенджер не передав мову користувача, то бот пропонує користувачеві вибрати мову самостійно.

Також користувач може у будь-який час змінити мову через команду /menu -> Language.

Як це реалізувати?

Інструкція з трьох кроків підійде тим, хто не хоче витрачати час на написання коду або не програмує. Я використав конструктор чат-ботів Botmother. Скріншоти екранів (блоків) будуть із нього.

1. Перевірка мови користувача

На стартовий екран додаємо компонент "Розвилка", який перевіряє мову користувача та спрямовує його на відповідний екран (залежно від встановленої мови).

Якщо месенджер не передав значення мови, направляємо користувача на екран "Вибрати мову" – для самостійного вибору ("Перехід за замовчуванням"). Він вибирає свою мову і також спрямовується на відповідний мовний екран.

Зверніть увагу 👆 змінна месенджера this_user.language зберігає в собі інформацію про те, яку мову встановлено у користувача і якою мовою надсилати йому повідомлення. Відповідно, "en" – англійська, "es" – іспанська, "ru" – російська і так далі.Найкраще використовувати офіційний код мови за стандартом ISO 639-1.

2. Збереження мови користувача

Створюємо мовні екрани, в яких зберігатимемо мову користувача у свою змінну language. Вона знадобиться для встановлення потрібного тексту в повідомлення.

Направляємо користувача на відповідний мовний екран для визначення значення змінної language. Наприклад, на екрані "English language" надаю значення "en" у змінну language. Тепер повідомлення цього користувача будуть надходити англійською.

Аналогічно можна присвоїти значення та перекладати контент іншими мовами.

3. Додавання тексту кількома мовами

Як створити багатомовного бота - Dosvid.v.ua

Робот Telegram може виконувати практично будь-які завдання: керувати спільнотами, фільтрувати повідомлення в чатах, допомагати реєструвати користувачів або продавати послуги. У цій статті розберемося з основами створення Telegram-ботів і напишемо для відправки користувачеві випадкових компліментів з колекції за допомогою мови програмування Python.

Що таке Telegram-бот?

Telegram — популярний месенджер, який дозволяє користувачам обмінюватися повідомленнями, відео, музикою та файлами. Блогери використовують сервіс для публікації свого контенту, а бізнес – щоб продавати товари та послуги. До того ж, у Telegram є можливість створювати своїх роботів – програми всередині месенджера, що автоматизують спілкування. Кожен бот має унікальне ім'я, тому його можна легко знайти в рядку пошуку Telegram. Також ботів можна додавати в чати та канали, щоб вони виконували роль модератора або адміністратора. З недавніх пір Telegram-боти можуть бути повноцінними веб-додатками з власним інтерфейсом користувача.

Якими бувають роботи в Telegram

Можливості ботів обмежені лише фантазією та навичками розробників, тому компанії активно використовують їх для щоденних завдань.

Боти для автоматизації завдань

Наприклад, за допомогою телеграм-бота можна автоматизувати запис на послуги в салон або до лікаря та розвантажити адміністраторів. Бот може прийняти заявку у будь-який час доби, у вихідні та свята, а також перенести інформацію про запис у календар компанії. У клініки Підмосков'я можна записатися за допомогою чата «Деніс». Джерело

Боти для просування та продажу

Бот може відповідати на запитання клієнтів, пропонувати промокоди, розповідати про нові продукти. Telegram-бот тут може взяти на себе функцію соціальних мереж, email-розсилки та продавця-консультанта.

Боти для спілкування та розваги

Telegram-боти потрібні не лише для того, щоб продавати. Вони також можуть допомогти вибрати кіно на вечір, запропонувати кумедний тест чи згенерувати мем. Наприклад, студенти Skillfactory розробили для Московського зоопарку Telegram-бот, який імітує спілкування з манулом Тимофієм та пропонує взяти участь у вікторині. Бот із тестом-вікториною для Московського зоопарку

Конструктори для налаштування ботів

Для створення простих роботів можна використовувати сервіс-конструктори. З їхньою допомогою вдасться реалізувати найчастіші сценарії використання: відповіді на запитання, видачу інформації на запит та обробку даних користувача. Такі послуги не вимагають знання програмування, їх можна освоїти за кілька годин. Популярні конструктори для створення ботів Telegram: Manybot — сервіс для створення роботів за допомогою повідомлень у чаті. Підійде для найпростіших сценаріїв використання. Manybot має вбудовану рекламу і немає можливості відключити її за допомогою підписки; botmother – Редактор ботів, який вміє працювати не тільки з Telegram, але і з іншими популярними месенджерами. Є можливість обробляти медіа, файли та звертатися до сторонніх сервісів. PuzzleBot – потужний конструктор, що дозволяє створити бота практично будь-якої складності і без єдиного рядка коду. При цьому важливо розуміти основи програмування: змінні, цикли та умови.

Стати розробником на Python і вирішуйте різні завдання: від написання коду до автоматизації процесів

Які технології потрібні, щоб створити чат-бота в Telegram з нуля?

Якщо від бота потрібні нестандартні сценарії використання або в проекті важливо повністю контролювати поведінку та обробку даних, то без програмування не обійтися. Розробники Telegram активно розвивають месенджер, тому від бібліотеки важливо, щоб вона оновлювалася так само часто і підтримувала всі нововведення сервісу. Ботов найчастіше пишуть на Python через простоту та зручність цієї мови. aiogram – Комплексна бібліотека з відмінною документацією, підтримкою і активним співтовариством. дві активні версії, і краще одразу вибирати версію 3.0, яка поки що знаходиться в беті, але працює стабільно.Бібліотека має на увазі глибокі знання Python та досвід у програмуванні, тому може бути складною для початківців; telebot (pyTelegramBotAPI) — бібліотека для простих роботів з невеликою кількістю користувачів, що підтримує роботу з основними методами Telegram API.

У статті ми будемо використовувати бібліотеку telebot і писати код на Python, тому нам знадобиться редактор коду. Visual Studio Code – Безкоштовний редактор коду від компанії Microsoft із задатками повноцінного середовища розробки. PyCharm — повноцінне середовище розробки на Python від компанії JetBrains. Більш важка, ніж VS Code, і включає додаткові інструменти для професійної роботи над великими проектами. версії PyCharm

Як створити свого бота в Telegram

  • Ім'я бота має закінчуватися словом `bot`: наприклад, `SuperBot` або `super_bot`. Це обов'язкова вимога Telegram, щоб користувачі могли відрізняти звичайні профілі від ботів. закінчується ним;
  • Ім'я бота має бути унікальним, а враховуючи, що багато хто створює ботів заради експерименту і не видаляє їх, то знайти відповідний вільний варіант може бути проблематично.

Виходячи з усього цього, підбираємо гучне ім'я, що складається з ключових слів, які б точно описували його суть. Для експериментів можна використовувати просто набір символів. У нашому випадку ім'я `compliment_bot` вже було зайняте, тому використовували `super_compliment_bot`. Вийшло дуже довго, але відбиває суть.

Після реєстрації BotFather передасть нам токен для доступу до нашого бота і підкаже посилання офіційну документацію з розробки ботів для Telegram. Важливо запам'ятати, що токен треба тримати в секреті. З його допомогою можна повністю керувати ботом та повідомленнями, які він надсилає. Сторонні особи, які не стосуються розробки вашого бота, не повинні його знати.

Оформлення бота

Робот створений, і його можна знайти в рядку пошуку Telegram або за посиланням. Але в такому вигляді користувачеві буде дуже складно зрозуміти, навіщо потрібен бот і які завдання він виконує. Тому оформимо його, додавши опис, іконку та вітальне зображення.

Для цього знову відкриємо BotFather, введемо команду `/mybots` та виберемо зі списку щойно створеного бота. Перед нами відкриється меню керування роботом.

Коротко про кожен пункт меню:

API Token — можна дізнатися про токен, якщо втратили його. Також можна відкликати наявний токен і згенерувати новий, якщо хтось все ж таки дізнався його і перехопив на себе управління ботом;

Edit Bot – меню редагування бота, в якому можна змінити ім'я, додати опис, іконку, вітальне зображення та команди;

Bot Settings – Тут можна видавати роботу права на взаємодії з повідомленнями в групових чатах і каналах, додавати кнопки і включити інлайн-режим;

Payments – Робот може приймати платежі, наприклад, можна пропонувати його функції з передплати або продавати через нього товари. У цьому пункті меню можна підключити платіжну систему для обробки платежів та банківський рахунок. Є підтримка вітчизняних платіжних систем;

Transfer Ownership – Робот належить користувачеві, який його створив, але права на володіння та управління можна передати за допомогою цього пункту меню;

Delete Bot — якщо бот більше не потрібен, його можна видалити, звільнивши список вільних унікальних імен.

У нашого бота поки що є тільки назва. Тепер поставимо йому опис, який буде видно у вікні профілю. Для цього в меню робота вибираємо Edit Bot → Edit About і надсилаємо в чат короткий опис. Після цього задамо розширений опис, що виводиться в чаті новим користувачам. Переходимо в Edit Bot → Edit Description та надсилаємо текст.

Для впізнаваності боту треба встановити іконку, яку буде видно у списку чатів користувача. Для іконок є обмеження:

  • формат файлу має бути jpg або png;
  • квадратне зображення не менше 300×300px та не більше 1280×1280px. Найкраще використовувати зображення розміром 500×500px;
  • зображення потрібно надіслати BotFather у вигляді фото, а не файлу.

Також роботу можна задати зображення з описом його можливостей. Його бачитимуть нові користувачі під час переходу в чат. Можна використовувати зображення розміром 640×360px або гіфки 320×120px/640×360px. На такому зображенні можна тезово вказати можливості бота та залишити QR-код із посиланням на сайт компанії або розробника для користувачів, які використовують настільну версію Telegram.

Іконку бота можна встановити, перейшовши в Edit Bot → Edit Botpic, а зображення-опис — Edit Bot → Edit Description Picture. Після налаштування наш Telegram-бот виглядає так:

Починаємо програмувати

Тепер у нас є готовий робот, який нічого не вміє. Якщо відкрити та запустити бота командою `/start` або кнопкою, то нічого не станеться. Тому треба його оживити та навчити обробляти повідомлення від користувача. Наш бот надсилатиме в чат випадковий комплімент зі власної колекції.

Спочатку треба встановити середовище розробки. У цій статті будемо використовувати PyCharm від JetBrains. Завантажити інсталяційний файл можна з офіційного сайту розробника. Завантажити та встановити Python можна з офіційного порталу. Перевірити встановлену версію Python можна за допомогою наступної команди:

При створенні бота ми будемо працювати в основному з бібліотекою telebot. Тому її треба встановити. Заходимо в PyCharm і створюємо новий проект під назвою `bot`. PyCharm створить необхідне оточення, в якому ми встановимо бібліотеку. Для цього потрібно відкрити вкладку Terminal у редакторі коду та ввести команду `pip install pyTelegramBotAPI` для Windows або `pip3 install pyTelegramBotAPI` для macOS.

У папці проекту повинен автоматично з'явитися файл `main.py`. Якщо цього не сталося, то творимо його самі. Тепер навчимо нашого бота вітатися. Для цього у файлі `main.py` імпортуємо `telebot`, створимо змінну `token` з нашим токеном і передамо його екземпляру бота.

import telebot # Імпортуємо telebot token = ('Ваш токен') bot = telebot.TeleBot(token)

Тепер створимо хендлер для обробки команди `/start`. Хендлер (Heandler) або обробник – функція, яка викликається у відповідь на настання певної події. У випадку Telegram хендлер запускає функцію при отриманні повідомлення.

У самому хендлері створимо функцію start_message з текстом повідомлення, яким бот буде відповідати на отриману команду. Нам потрібне нескінченне виконання коду, щоб бот працював завжди і був доступний у будь-який час доби.Тому завершимо все рядком `bot.polling(none_stop=*True*, interval=0)`, який запускатиме нескінченне виконання.

import telebot # імпортуємо telebot # передаємо значення змінної з кодом екземпляру бота token = ('Ваш токен') bot = telebot.TeleBot(token) # хендлер і функція для обробки команди /start @bot.message_handler(commands=['start'] ) def start_message(message): bot.send_message(message.chat.id, "Привіт ✌️") # нескінченне виконання коду bot.polling(none_stop=True, interval=0) Вбудувати код

Зараз можна спробувати запустити код PyCharm і відкрити бота в Telegram. Якщо відправити йому команду `/start`, він відповість повідомленням, яке ми передали йому в коді. Бот працює, отже, можна нарощувати його можливості.

Зараз токен робота знаходиться в одному файлі з його кодом. Такий підхід можна застосовувати у розробці, але якщо треба буде поділитися кодом з кимось або опублікувати його на GitHub, то токен треба буде видаляти та витрачати на цей час. А ще можна просто забути видалити токен, і тоді безпека робота буде під питанням.

Тому створимо в папці проекту файл `secrets.py` та у файлі ініціалізуємо словник з ключем `BOT_API_TOKEN` та самим токеном у вигляді значення ключа.

Тепер повернемося до файлу `main.py`, імпортуємо словник із файлу `secrets.py` і зробимо так, щоб токен підтягувався з файлу, а не знаходився в коді.

import telebot # імпортуємо telebot from secrets import secrets # імпортуємо словник з токеном з файлу secrets.py # передаємо значення змінної з кодом екземпляру бота token = secrets.get('BOT_API_TOKEN') bot = telebot.TeleBot(token) # хендлер і функція для обробки команди /start @bot.message_handler(commands=['start']) def start_message(message): bot.send_message(message.chat.id, "Привіт ✌️") # нескінченне виконання коду bot.polling(none_stop=True, interval=0)

Знову запускаємо код та перевіряємо.Бот продовжує відповідати на команду `/start`, але в його коді вже немає токена. Тому можна спокійно ділитися файлом `main.py` та не боятися за безпеку.

Розробники можуть вбудовувати клавіші для зручного спілкування з Telegram-ботами. Скористайтеся цією можливістю та створимо кілька кнопок для автоматичного відправлення команд. Нам потрібно буде визначити типи повідомлень, тому для цього імпортуємо `types` з `telebot`. Частина з імпортами в коді виглядатиме так:

import telebot # імпортуємо telebot from secrets import secrets # імпортуємо словник з токеном з файлу secrets.py from telebot import types # для визначення типів

Тепер перепишемо хендлер для обробки команди `/start`. Він не лише надсилатиме вітальне повідомлення, а й ініціалізуватиме кнопки бота. У нашому боті дві кнопки: «Старт» виводитиме коротку інструкцію з використання бота, а «Комплімент» – надсилатиме приємне повідомлення з колекції. Самі кнопки прикрасимо емодзі.

Разом із цим замінимо текст вітального повідомлення. Звертатимемося до користувача на ім'я. Ми не можемо знати імен всіх користувачів, але їх знає Telegram, тому запитаємо у нього за допомогою конструкції “. Весь код хендлера виглядає так:

# хендлер і функція для обробки команди /start @bot.message_handler(commands=['start']) def start_message(message): markup = types.ReplyKeyboardMarkup(resize_keyboard=True) start_button = types.KeyboardButton("🚀 = types.KeyboardButton("🥰 Комплімент") markup.add(start_button, action_button) bot.send_message(message.chat.id, text="Привіт, 👋\nСкористайся кнопками".format(message.from_user), reply_markup=mar

Бот обзавівся гарними кнопками, але якщо спробувати натиснути на них, то нічого не станеться. Виправимо це, дописавши функції відповіді.Кнопка Telegram просто відправляє в чат те, що на ній написано. Тому треба навчити робота аналізувати отримані повідомлення і відповідати на повідомлення-тригери.

Для початку створимо колекцію компліментів в окремому файлі `compliments.py`:

compliments = ('Виглядаєш найкраще всіх!', 'Сьогодні буде чудовий день!', 'Ти обов'язково все зможеш!', 'Я не зустрічав людей добріших за тебе!', 'З тобою приємно проводити час!',)

Після цього імпортуємо файл та модуль для роботи з випадковими числами:

import random # для вибору випадкового компліменту from compliments import compliments # колекція компліментів

Тепер можна приступати до створення хендлер для обробки кнопок. В умови будемо відстежувати, який текст надійшов від користувача. Якщо зустрічаємо "🚀 Старт", то виводимо короткий опис можливостей, якщо "🥰 Комплімент" – надсилаємо випадкове повідомлення з колекції. На всі інші повідомлення відповідатимемо проханням скористатися кнопками. Весь код хендлера виглядає так:

# хендлер для обробки натискань кнопок @bot.message_handler(content_types=['text']) def buttons(message): if (message.text == "🚀 Старт"): bot.send_message(message.chat.id, text= "Я можу підтримати тебе та підняти настрій. Просто попроси про це") elif (message.text == "🥰 Комплімент"): bot.send_message(message.chat.id, text=f"") else: bot.send_message(message.chat.id, text="Я можу відповідати лише на натискання кнопок ")

Бот готовий, справно працює, відповідає на повідомлення та надсилає до чату випадкові компліменти з власної колекції, а його повний код виглядає так:

import telebot # імпортуємо telebot from secrets import secrets # словник з токеном з файлу secrets.py from telebot import types # для визначення типів import random # для вибору випадкового компліменту from compliments import compliments # колекція компліментів # передаємо значення змінної з кодом екземпляру бота token = secrets.get('BOT_API_TOKEN') bot = telebot.TeleBot(token) # хендлер і функція для обробки команди /start @bot.message_handler(commands=['start']) def start_message(message): # створюємо кнопки бота markup = types.ReplyKeyboardMarkup(resize_keyboard=True) start types.KeyboardButton("🚀 Старт") action_button = types.KeyboardButton("🥰 Комплімент") markup.add(start_button, action_button) # привітальне повідомлення для команди /start bot.send_message(message.chat.id, text="Привіт, 👋\nСкористайся кнопками". format(message.from_user), reply_markup=markup) # хендлер для обробки натискань кнопок @bot.message_handler(content_types=['text']) def buttons(message): if (message.text == "🚀 Старт"): bot.send_message(message.chat. id, text="Я можу підтримати тебе та підняти настрій. Просто попроси про це") elif (message.text == "🥰 Комплімент"): bot.send_message(message.chat.id, text=f"") else: bot.send_message(message.chat.id, text=" Я можу відповідати лише на натискання кнопок") # нескінченне виконання коду bot.polling(none_stop=True, interval=0)

А повне дерево файлів у проекті виглядає так:

. └── bot/ ├── main.py ├── secrets.py └── compliments.py

Зараз робота працює тільки в тому випадку, якщо код запущений на комп'ютері. Тому користувачі не можуть отримати постійний доступ до нього. Для цього треба орендувати віртуальний сервер, завантажити на нього код бота та запустити.У такому випадку робота буде доступна в будь-який час і не буде залежати від комп'ютера розробника.

Це можна зробити у конструкторі або прописати за допомогою коду. В останньому випадку потрібно створити бота в Telegram, а потім написати йому серверну частину: код, який при натисканні на певну кнопку надсилатиме конкретну відповідь. Для цього потрібно створити кнопки, бібліотеку відповідей та хендлери, які організують зв'язок між діями користувача та відповідями бота.

Щоб бот заробив, потрібно розмістити написаний код на орендованому сервері та створити бот у месенджері. Код відповідатиме за зв'язок сервера з чатом у Telegram.

Розкажіть про свій бот на сайті, в соціальних мережах та в email-розсилці. Для тестового періоду краще привести в бот теплу аудиторію, яка вас вже знає та читає. Вони можуть скуштувати бот, написати вам про помилки. Після цього можна зайнятися платною рекламою: купити її у Telegram або звернутися до блогерів.

На будь-якому, який ви знаєте. Боти можна писати на Python, C, Java. Найчастіше для цього завдання вибирають Python, тому що він простий у використанні.

Освойте Python з нуля. Підготуємо до працевлаштування: дамо багато практики, реальні проекти для портфоліо, допоможемо з резюме. Найкращі студенти пройдуть стажування у проектах компаній-партнерів.

Як створити багатомовного бота - Dosvid.v.ua

Дедалі більше компаній, які надають свої послуги через інтернет, користуються інтернет-ботами. Ці програми виконують рутинні завдання без залучення людини. Особливу популярність боти мають у Telegram, WhatsApp, VK, інших месенджерах та соціальних мережах. Ними користуються інтернет-магазини, банки, страхові та лізингові компанії.Цей перелік можна продовжувати дуже довго. Але з цієї статті нашого сайту ви дізнаєтеся, якими мовами програмування найчастіше створюються боти?

Найкращі мови для створення ботів

Серед найпопулярніших мов та середовищ програмування для написання чат-ботів можна виділити:

JavaScript

Високорівнева мова, яка часто зустрічається у зв'язці з HTML та CSS. Його основне завдання – розробка фронтенду, веб-дизайну сайтів та додатків. Але сьогодні найчастіше на JS пишуть ботів. Це стало можливим завдяки появі великої кількості ML-бібліотек. За наявності необхідних знань кожен зможе створити свій робот в мережі.

Зверніть увагу: Найвідомішим проектом, що реалізується за допомогою JavaScript, є "Катана". Це текстовий помічник налаштовується під будь-які потреби.

Java

Мова програмування, за своїм синтаксисом схожий на C++. Оскільки середовище Java давно і з успіхом використовуються програмістами, до сьогоднішнього дня з'явилася велика кількість бібліотек. З їхньою допомогою можна створювати різні продукти, у тому числі і ботів, не «винахідуючи велосипед». Досить знайти щось схоже та переробити під свої завдання.

Для тих, хто знайомий з мовою Java, має сенс створити ботів на основі нейромереж. Сьогодні ця тема є найбільш просунутою та популярною. Багато роботів для месенджера Telegram написані на Java.

PHP

Ще одна мова, яка часто використовується програмістами для створення ботів у месенджерах та соціальних мережах. У тому числі й Telegram. Спочатку PHP використовувався для збільшення можливостей веб-розробки. Його інтегрували у HTML, щоб створювати функціональні інтернет-проекти. Але, можливості цього інструменти для розробки персональних веб-сторінок дозволяють написати на нього робота. Перевагами PHP є те, що це серверна мова.Отже, він вдало підходить для написання ботів під різні інтернет-проекти. У тому числі месенджери та соціальні мережі.

Чому Python найчастіше використовують для роботів?

У цьому списку немає згадок про Python. Вся справа в тому, що про найсмачніше ми хотіли розповісти наостанок. За статистикою, боти цією високорівневою мовою за кількістю становлять більшість в інтернеті. Їх використовують як великі компанії, і незалежні стартапи.

Python універсальний, тому боти, написані на ньому, можна інтегрувати у будь-що. Мова універсальна і проста. Якщо перераховувати переваги ботів на Python, варто виділити наступні:

  • Велика функціональність. Цією мовою можна написати бот на вирішення різних завдань.
  • Кросплатформність. Програму легко розгорнути на сайтах, у месенджерах та соцмережах.
  • Економія коштів. Написати бота на Python зазвичай дешевше, ніж «спеціальними» мовами.

Роботи на Python можна створити і самостійно. Але якщо ваших навичок замало, довірте цю роботу професіоналам. Співробітники студії "ChatLabs" розроблять програму з урахуванням усіх вимог замовника.