Skip to main content

Python demo chatbot for MAX bot

Project description

maxbot-demo-chatbot-python

Пример чат-бота, написанного на Python с использованием SDK maxbot-chatbot-python и maxbot-api-client-python от GREEN-API.

Этот чат-бот демонстрирует возможности MAX BOT API по отправке текстовых сообщений, медиафайлов (картинки, аудио, видео, PDF), геолокаций и контактов с использованием системы сцен и интерактивных кнопок.

Содержание

Установка

Убедитесь, что у вас установлен Python версии 3.12 или выше:

python --version

Установите библиотеку:

git clone https://github.com/green-api/maxbot-demo-chatbot-python

Откройте проект в любой IDE.
Среда для запуска чат-бота готова, теперь необходимо произвести настройку и запустить чат-бот.

Запуск чат-бота

Параметры конфигурации:

  • BASE_URL - Базовый URL-адрес серверов платформы MaxBot. Все методы API будут маршрутизироваться по этому корневому адресу. Актуальный адрес указан в официальной документации.
  • TOKEN - Уникальный секретный ключ авторизации (API-ключ) вашего бота. Получить его можно в личном кабинете после регистрации или создании бота на платформе business.max.ru.
  • ratelimiter - Встроенный ограничитель частоты запросов. Он контролирует количество исходящих запросов в секунду (RPS), защищая бота от блокировки со стороны сервера за превышение лимитов. Рекомендуемое значение — не менее 25.
  • timeout - Максимальное время ожидания ответа от сервера (в секундах). Если сервер не ответит в течение этого времени, запрос будет завершен с ошибкой. Оптимальное значение — 30 секунд.
  1. Создайте файл .env в корневой директории проекта.
  2. Добавьте в него ваши данные:
BASE_URL=https://platform-api.max.ru
TOKEN=1A2B3C4D5E6F7G8H9I0J9K8L7M6N5O4P3Q3R2S1T2U3V4W5X6Y7Z

Значение ratelimiter и timeout можно изменить в файле main.py перед его запуском.

  1. Запустите бота командой:
python main.py

Программа инициализирует клиент, настроит менеджер состояний и запустит polling для получения уведомлений в реальном времени. Для остановки нажмите Ctrl + C.

Настройка чат-бота

Вы можете изменить медиафайлы, которые бот отправляет пользователям. Ссылки на файлы находятся в файле scenes/endpoints.py.

Например, для изменения PDF-файла найдите следующий блок:

elif text_lower in ["2", "/file"]:
    await n.reply_with_media(
        t(lang, "send_file_message") + t(lang, "links.send_file_documentation"),
        "markdown",
        "https://storage.yandexcloud.net/your-link/file.pdf", 
        self.get_control_buttons(lang)
    )

Замените URL "https://storage.yandexcloud.net/your-link/file.pdf" на прямую ссылку вашего файла.

Использование

Если предыдущие шаги были выполнены, ваш бот будет готов к приему сообщений.

Напишите боту любое текстовое сообщение (например, /start). Чат-бот поддерживает 2 языка, поэтому сначала он предложит выбрать язык с помощью клавиатуры:

Please select your language: 
Пожалуйста, выберите язык:
[English] [Русский]

Выбрав русский язык, вы получите приветствие с картинкой и главным меню в виде кнопок:

Добро пожаловать в MAX BOT API чат-бот, {Имя_Пользователя}! 

GREEN-API предоставляет отправку данных следующих видов. 
Выберите цифру или нажмите кнопку!

1. Текст 📩
2. Файл 📋
3. Картинка 🖼
4. Аудио 🎵
5. Видео 📽
6. Контакт 📱
7. Геолокация 🌎
8. О боте 🦎

Чтобы вернуться в начало, напишите *стоп* или *0*

Нажимая на кнопки (или отправляя соответствующие цифры), бот будет присылать вам демонстрационные сообщения с использованием различных методов MAX API (фотографии, голосовые сообщения, файлы) и прикреплять ссылки на официальную документацию.

Структура кода

Основной файл чат-бота — это main.py. В нем находится функция main, с которой начинается выполнение программы.

Данный бот использует паттерн сцен для организации кода. Логика разделена на фрагменты (сцены), каждая из которых соответствует определенному состоянию диалога:

  • scenes/start.py — приветственная сцена. Отвечает за выбор языка и инициализацию данных пользователя.
  • scenes/main_menu.py — формирует главное меню, отправляет приветственное изображение и переключает контекст на рабочие эндпоинты.
  • scenes/endpoints.py — содержит логику обработки всех функциональных кнопок (отправка текста, медиа, контактов).

Тексты сообщений вынесены отдельно и хранятся в файле assets/strings.yaml. Для получения нужной строки в зависимости от языка используется утилита перевода utils/yml_reader.py.

Управление сообщениями

Все взаимодействия реализованы через MAX API с использованием Python-библиотек:

  • maxbot-api-client-python — базовый клиент для работы с API.
  • maxbot-chatbot-python — фреймворк для создания ботов со сценами, состояниями и удобными обертками.

Отправка сообщений максимально упрощена благодаря методам объекта Notification. Например, отправка локации:

notification.reply_with_location(
    lat=51.5074, 
    lon=-0.1278
)

Или отправка медиафайла:

notification.reply_with_media(
    text="Look at this!",
    format_type="markdown",
    file_source="https://example.com/image.jpg"
)

Все доступные методы API описаны в официальной документации.
Полную документацию по MAX API можно найти на официальном портале разработчиков: dev.max.ru/docs-api.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

maxbot_demo_chatbot_python-1.1.0.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

maxbot_demo_chatbot_python-1.1.0-py3-none-any.whl (5.8 kB view details)

Uploaded Python 3

File details

Details for the file maxbot_demo_chatbot_python-1.1.0.tar.gz.

File metadata

File hashes

Hashes for maxbot_demo_chatbot_python-1.1.0.tar.gz
Algorithm Hash digest
SHA256 5b0d31b3d7f096db920635ef0641b29ebe9b322bb72a24aea9e985eb5b95b7ae
MD5 a2077ff0111ca2b9f7294d797563190c
BLAKE2b-256 17724889ac57ad9b9109d851951956d446b08e29f3a2cf83b47ebd2d79340c3c

See more details on using hashes here.

File details

Details for the file maxbot_demo_chatbot_python-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for maxbot_demo_chatbot_python-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2306330ae4787dfa7baacef0364fa6faa3b47715257453d8397905f1e63bc5a7
MD5 908102194c1efc9ea953ce7c01becafe
BLAKE2b-256 8953e96cb321b4c9957fd9dfbb3495e23994830681d4028b2a8e4b8bf146203c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page