Українською мовою програмування: перший телеграм бот

Вступ

Вітання вам суспільсво від мене. Адже сьогодні я покажу те, чого ще не було, а може і більше не буде.

Сьогодні я розповім як зробити простенького телеграм бота українською мовою. Перепрошую, українською мовою програмування.

дисклеймер: все показане у цій статті виконано професіоналом своєї справи і наразі не рекомендується повторювати на продакшені з високим навантаженням

Отже, для цього нам необхідно обрати мову програмування. Виходячи з того, що пропозиції на цьому ринку не багато (хоча попит видніється), я думаю можна обрати перше, що попадеться на очі. В нашому випадку це буде мавка.укр — сучасна українська мова програмування. Як каже розробник, Мавка все ще на стадії розробки і не готова до повноцінного використання. Тим не менше, враховуючи, що я є тим самим розробником, можу собі дозволити використовувати.

Встановлення

Перед використанням, очевидно, мову необхідно встановити на пристрій. Зробити це можна наступною командою в емуляторі терміналу:

npm i -g mavka

Як видно з команди, перед цим треба додатково інсталювати Node.js 18+ . Також кажуть, що наразі Мавка працює лише на Linux і MacOS.

Після встановлення, працездатність можна перевірити прописавши команду мавка.

Щоб точно впевнитись, що все працює, можна написати простеньку програму «привіт» та спробувати її запустити. Створюємо файл привіт.м та заповнюємо його кодом:

дія сказати_привіт_як(ім'я)
  друк("%(ім'я) каже привіт!")
кінець



сказати_привіт_як("Леся")

Пробуємо запустити і...все працює!

Ну, тепер можна перейти до бота.

Бот

Можна подумати, що зробити телеграм бота такою мовою завдання не просте, і це буде правильною думкою. Адже, щонайменше, телеграм використовує англійську мову в своєму API. На щастя, існує розширення Мавки, що надає зручну обгортку над цим «апі».

Розширення знаходиться тут github.com/...​mavka-ukr/tgbot-extension, і, як видно з опису, підключити його можна наступною дією:

підключити_розширення_з_мережі("https://raw.githubusercontent.com/mavka-ukr/tgbot-extension/main/tgbot.m.js")

Назвемо файл з кодом бота бот.м та додамо до нього цю дію першим рядком.

Також, потрібно створити нового бота в самому телеграмі і отримати до нього токен. В статті описувати не буду, але зробити це можна через t.me/BotFather.

Гаразд, надалі описувати кожен крок буде нудно, а тому відразу покажу кінцевий код першого бота.

Читаючи код, можна зрозуміти, що бот, на кожне повідомлення з текстом «привіт», відповідає «ну привіт...».

Запустити бота можна все тією ж командою мавка бот.


Бот 2

Наступний бот буде трішки складніший і цікавіший.

Цей бот вміє надсилати статистику втрат росіян якщо написати «покажи статистику» в чат.

Бот 3

Нажаль, я зайнятий релізом мови, а тому з третім ботом, за бажанням, експериментуйте самі.

Завершення

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

Чи вважаю я, що українська мова не підходить для програмування — ні. Хоча маю визнати, що не бачу сильного застосування її в низькорівневих задачах. Я вважаю, що українською мовою можна програмувати буденні й високорівневі штуки. Чи доцільно це робити? Це питання мене не цікавило ні на старті проєкту, ні зараз.

Документації до розширення бота ще немає, але можна легко розібратись в коді. «апі» телеграму перекладалось ChatGPT і після того не перевірялось.

Мова все ще не готова до кінця, хоча перший реліз вже видніється десь на горизонті. Тим не менше, гратись на цьому етапі вже можна.

Післямова

Назва походить від моєї любові до Лесі Українки й самого образу істоти та не має відношення до мультфільму, що недавно вийшов у прокат.

Посилання

мавка.укр

github.com/mavka-ukr

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

👍ПодобаєтьсяСподобалось5
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Я попросив ChatGPT створити мову програмування на основі клінгонської дотракійської і джава скрипт, але далі жарту це не пішло. Ви ж підійшли до цього серйозно

Ви спеціально зареєструвались щоб написати цей коментар?

https://телеграм-бот.мавка.укр

Вітаю!перевірте, будь ласка, повідомлення)

Це імпортозамєщєніє? Чи аналоговнєт?

Навіщо ви щось коментуєте, якщо не можете видати нічого корисного

Навіщо придумувати щось що не приносить користі для інших?

Задля власного задоволення. І з чого ви взяли що це робиться для вас

Я тому і хотів уточнити що це і для чого?

Спробуйте вставити текст статті в чатжпт, можливо він допоможе зрозуміти

Він безсильний у таких випадках

Треба у бот додати таку таблицю, яку назвати «всілякі_здрастуйте» і додати у неї рядки «Привіт» і «Добрий день» А тоді, коли хтось напише у бота щось, пошукати у цій таблиці і якщо буде знайдено, то із таблиці «відповіді_на_здрастуйте» знайти якусь відповідь на кшалт «І вам теж здрастуйте» або просто «Добрий день»
Так спілкування із ботом стане більш різноманітним.

Для такого краще вже робити аналог ChatGPT. До слова, вже зараз мова надає достатньо можливостей для імплементації такої нейромережі.

Ну якщо користувач напише щось, чого немає у табліці «здрастуйте», наприклад «ZYX» то можна запитати у ChatGPT які гіпероніми до цього слова «ZYX» він знає, а тоді створити таблиці із назвами цих гіперонімів, і заповнити їх гіпонімами (може від чату гпт, або взяти із словника гіперонімів гіпонімів) А тоді написати користувачу «Це щось із » + один_із_гіперонімів
А те що він відповість дуже хитро покласти у таблицю відповідей на такий гіперонім.
І так можна, постійно обдурюючи користувачів, та за допомогою чат гпт створити власного розумного українського чат бота.

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

Для мене програмування це хобі. Це буде повільно, якщо я буду кодити. Тим більш, що я вже цим займаюся. Просто ділюся ідеями, щоб хоч у когось зміг получитися справжній ШІ який уміє у логіку (чого не вміє чат гпт) Тільки тут є нюанс: ШІ який зуміє у логіку зробить все потаємне відкритим. І всім відкриє дуже багато чого що йому здаватиметься нелогічним.
То мабуть його просто закриють тоді, бо не дасть коррупціонерам у у корупцію могти.

Дуже прикро ДІЯ та ДОУ. Замість того, щоб підтримати справжнього автора української мови, вони роблять клон української мови яка була створена ще в Українському Криму, а ще й додають комерційний інтерес до фільма Мавка, ще все й створено ChatGPT сумнівною якістю. Таке враження, що у цій країні ще не все розікрали. Так було у 2000 коли ІТ не було, 2010 коли прийшло укр.ІТ і тепер 2020 коли війна..
Ось оригінальний пост: gamedev.dou.ua/forums/topic/41015
«Розробляємо гру про ураїнського ІТ-шника українською мовою»
Українській мові програмування вже 10 років і починалась вона ще з Хабра.
Але дякую за визнання. Коли тебе копіюють це успіх.

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

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

Ваша риторика мені нагадує російську. Я не бачив вашого проєкту і не знайшов нічого в топіку, посилання на який ви прикріпили в повідомленні вище. Я маю підозри, що це ви намагаєтесь щось «скопіювати» і зробити мене в цьому винним. Мене це мало хвилює та і я не хочу розводити розбрату в такий час. Лише хочу додати, що у мене є велике его, яке не дозволяє мені копіювати або красти чуже.

Якась маячня. Факти говорять інше. Доки на ДОУ не написав ніяких українських мов не було 10 років. А ваша маніпуляція про російську риторику і що я, справжній автор української мови програмування, хочу щось вкрасти не лише маразм, а ше й доказ. Це ж треба щоб і війна прийшла, і до таких менеджерських маніпуляцій-звинувачень дійшло. Якщо ви були б справжній автор мови, який все придумав, то була б елементарна повага до мене як автор автору, бо були б знання, а якщо у свідомості якесь приниження і що можна якось викрутитись, то це лише доказ. Як я вже написав, дуже прикро...

Тю, це ж український йоптаскрипт: yopta.space
Інша справа, якби замість чергового транспайлера в джс там була якась нова мова, де використання української було виправдано. Наприклад як аналог 1с.
А це мало того що жаваскрипт, без типізації та інших благ цивілізації, так ще і незручний жаваскрипт, бо треба писати кінець замість } та рівно замість =

Дякую, що розібрались в темі перед написанням коментаря 👍

Підписатись на коментарі