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 секунд.
- Создайте файл
.envв корневой директории проекта. - Добавьте в него ваши данные:
BASE_URL=https://platform-api.max.ru
TOKEN=1A2B3C4D5E6F7G8H9I0J9K8L7M6N5O4P3Q3R2S1T2U3V4W5X6Y7Z
Значение
ratelimiterиtimeoutможно изменить в файле main.py перед его запуском.
- Запустите бота командой:
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file maxbot_demo_chatbot_python-1.1.0.tar.gz.
File metadata
- Download URL: maxbot_demo_chatbot_python-1.1.0.tar.gz
- Upload date:
- Size: 5.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b0d31b3d7f096db920635ef0641b29ebe9b322bb72a24aea9e985eb5b95b7ae
|
|
| MD5 |
a2077ff0111ca2b9f7294d797563190c
|
|
| BLAKE2b-256 |
17724889ac57ad9b9109d851951956d446b08e29f3a2cf83b47ebd2d79340c3c
|
File details
Details for the file maxbot_demo_chatbot_python-1.1.0-py3-none-any.whl.
File metadata
- Download URL: maxbot_demo_chatbot_python-1.1.0-py3-none-any.whl
- Upload date:
- Size: 5.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2306330ae4787dfa7baacef0364fa6faa3b47715257453d8397905f1e63bc5a7
|
|
| MD5 |
908102194c1efc9ea953ce7c01becafe
|
|
| BLAKE2b-256 |
8953e96cb321b4c9957fd9dfbb3495e23994830681d4028b2a8e4b8bf146203c
|