← Усі статті

Бот-адміністратор приватної психотерапевтичної практики «Wellbeing Therapy»

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

Опубліковано: 3 хв читання

Опис

Telegram-бот, який працює адміністратором приватної практики психотерапевта (ОАЕ). Він спілкується з клієнтами та організовує запис на консультації: пропонує вільний час, приймає заявку, нагадує про сесію. Бот не дає психотерапевтичних порад - він лише веде розклад. Усі остаточні підтвердження робить сам терапевт.

Головна ідея, на якій тримається весь проєкт: бот - це підстраховка для людини, а не її заміна. Він знімає з терапевта рутину (листування про час, ведення календаря, нагадування), але рішення про людей лишаються за людиною.

Графік практики: Пн–Пт, 10:00–18:00; сеанс 50 хвилин + 10 хвилин буфера (записи погодинні, не впритул). Прийом: індивідуальні консультації, робота з парами, підлітки від 17 років.

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

Шлях запиту наочно: кризова перевірка йде найпершою; ШІ лише розпізнає намір, а всі рішення й дії з календарем виконує код; остаточно сеанс підтверджує людина.

Що бот уміє

  • Спілкується різними мовами - відповідає тією мовою, якою написав клієнт (українська, англійська, російська).
  • Показує вільний час - читає реальний календар терапевта й пропонує вільні слоти на обраний день.
  • Записує на консультацію - збирає ім’я й контакт, створює попередній запис у календарі.
  • Підтвердження одним дотиком - терапевт отримує заявку з кнопкою «Підтвердити»; щойно тисне, клієнт автоматично дізнається, що запис підтверджено.
  • Скасування та перенесення - з правилом 24 годин (пізнє скасування оплачується); якщо в клієнта кілька записів, бот уточнює, який саме, за точною датою.
  • Нагадує клієнту про сесію за 24 години.
  • Щоранку звітує терапевту - о 9:00 надсилає список підтверджених сеансів на день.
  • Кризовий захист - якщо в повідомленні є ознаки гострої загрози життю, бот миттєво видає екстрений текст із номерами невідкладної допомоги й сповіщає терапевта, не вступаючи в подальшу розмову.
  • Захист персональних даних - при першому контакті питає згоду на обробку даних; клієнт будь-коли може переглянути (/mydata) або видалити (/delete) свої дані. База щоночі резервно копіюється.

Технологічний стек

Шар Технологія Призначення
Мова Python 3.9 Основна мова реалізації
Бот-фреймворк python-telegram-bot==21.6 Telegram Bot API, обробники, інлайн-кнопки
Планувальник [job-queue] (APScheduler) Фонові завдання за часом (нагадування, підсумок)
Модель ШІ google-genai, модель gemini-flash-latest Розпізнавання наміру, озвучення фактів, кризовий класифікатор
Календар google-api-python-client (сервісний акаунт) Читання вільних слотів, створення/зміна/видалення подій
База даних sqlite3 (вбудована) Постійне сховище записів, історії, метаданих
Конфігурація python-dotenv Секрети з файлу .env
Інфраструктура Oracle Cloud E2.1.Micro, Oracle Linux 9 Хостинг (системний час - UTC)
Служба systemd Автозапуск, перезапуск, робота 24/7

Фонові завдання (планувальник)

Завдання Коли Що робить Захист від дублів
Нагадування за ≤24 год до сесії надсилає клієнту нагадування про підтверджений сеанс прапорець reminded у записі
Ранковий підсумок о 09:00 ОАЕ надсилає терапевту список підтверджених сеансів на день last_digest_date у meta

Обидва завдання збудовані за принципом періодичної звірки з базою, а не «планування на конкретний момент». Це робить їх стійкими до перезапусків: після рестарту планувальник просто знову зазирає в базу, а прапорці «вже надіслано» лежать у SQLite. Якщо бот був вимкнений у момент події - наступний цикл надолужить.

Ключові принципи

  • Рішення приймає код, а не модель ШІ. Модель лише розуміє, чого хоче клієнт; усі дії з календарем і всі перевірки виконує запрограмований код. Це не дає моделі «вигадати» неіснуючий запис чи виконати щось зайве.
  • Людина в контурі. Бот приймає заявку, але остаточно підтверджує сеанс завжди терапевт - вручну.
  • Безпека передусім. Кризовий захист перевіряється найпершим, ще до будь-якої іншої логіки. Конфіденційні дані клієнтів захищені правами доступу.
  • Захист персональних даних. Бот запитує згоду перед збором даних, дозволяє клієнту переглянути (/mydata) чи видалити (/delete) свої дані, зберігає їх лише в ОАЕ й щоночі робить захищену резервну копію - відповідно до місцевого закону про захист даних (PDPL).
  • Чесність формулювань. Бот ніколи не каже «зроблено», якщо дія насправді не відбулася в коді.

Документ описує проєкт станом на червень 2026 року.