Skip to content

Repository files navigation

Бот технической поддержки Devman

Бот технической поддержки для Telegram и ВКонтакте, использующий Google Dialogflow для распознавания намерений и автоматических ответов на вопросы пользователей.

Telegram_GqJrttYeHy

Демо Telegram бота: https://t.me/demo_spprt_bot

chrome_rTmS3oHWcF

Демо VK бота: https://vk.ru/club237694014

Боты запускаются независимо друг от друга и могут работать одновременно.

Возможности

  • Автоматические ответы на частые вопросы через Dialogflow
  • Поддержка двух платформ: Telegram и ВКонтакте
  • Пропуск fallback-интентов в VK боте (бот молчит, если не понял пользователя)
  • Логирование в файл с ротацией и опциональные уведомления об ошибках в Telegram
  • Поддержка HTTP-прокси

Установка Python и зависимостей

Скрипт тестировался на версии Python 3.12 и может некорректно работать на более поздних версиях. Для Windows и Mac нужную версию можно скачать по ссылке. Для Linux установка альтернативной версии Python осуществляется средствами pyenv.

Для установки зависимостей выполните команду:

pip install -r requirements.txt

Для установки dev-зависимостей (линтеры, форматтеры, pre-commit):

pip install -r requirements-dev.txt
pre-commit install

Подготовка Dialogflow

  1. Создайте проект в Google Cloud Console
  2. Включите Dialogflow API
  3. Создайте сервисный аккаунт и скачайте JSON-ключ
  4. Подготовьте файл с интентами в формате questions.json

Для загрузки интентов в Dialogflow выполните:

python create_intents.py questions.json

Переменные окружения

Для корректной работы создайте файл .env в корне проекта на основе .env.example:

  • BOT_TOKEN — токен Telegram бота. Создание бота и получение токена делается через BotFather. Подробнее в официальной инструкции
  • VK_GROUP_TOKEN — токен сообщества ВКонтакте. Получить можно в настройках группы: Управление → Работа с API → Токены
  • GOOGLE_CLOUD_PROJECT_ID — идентификатор проекта Google Cloud
  • GOOGLE_APPLICATION_CREDENTIALS — путь к JSON-файлу с ключами сервисного аккаунта Google Cloud
  • DEBUG — включение отладочного режима (True / False). По умолчанию False
  • USE_PROXY — включение HTTP-прокси (True / False). По умолчанию False
  • BOT_PROXY — адрес прокси в формате http://ip:port. Игнорируется, если USE_PROXY=False
  • TELEGRAM_LOG_BOT_TOKEN — (опционально) токен Telegram бота для отправки логов
  • TELEGRAM_LOG_CHAT_ID — (опционально) id чата для получения логов. Если указан только один из параметров, Telegram-логирование не будет активировано
  • LOG_FILENAME — путь к файлу логов. По умолчанию bot.log

Пример содержания файла .env:

BOT_TOKEN=your_tg_bot_token
VK_GROUP_TOKEN=your_vk_group_token
GOOGLE_CLOUD_PROJECT_ID=your-project-id
GOOGLE_APPLICATION_CREDENTIALS=path/to/credentials.json
DEBUG=False
USE_PROXY=False
BOT_PROXY=http://some-proxy-address:port
TELEGRAM_LOG_BOT_TOKEN=optional_bot_token_for_logs
TELEGRAM_LOG_CHAT_ID=optional_chat_id_for_logs
LOG_FILENAME=bot.log

Запуск

Запуск Telegram бота:

python tg_bot.py

Запуск VK бота:

python vk_bot.py

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages