О приложении
В больших чатах разработчиков одни и те же вопросы повторяются каждый день: «как подключиться?», «где документация?», «как получить сущность по ID?». Silvia создана, чтобы часть таких вопросов закрывать быстро. Это ассистент сообщества, связанного с Python-библиотекой Telethon. 🐍
Бот не универсальный сервис для всех. Он обслуживает конкретное сообщество, но на его примере удобно понять, как устроены боты-помощники.
Кто такая Silvia
В описании бот назван помощником автора Telethon в работе с людьми в чате библиотеки. Telethon это Python-библиотека для работы с Telegram через клиентский протокол: на ней пишут юзерботов, автоматизацию и инструменты для аккаунтов.
Silvia помогает отвечать на частые вопросы и подсказывать ссылки, чтобы живые люди не тратили на это силы.
Инлайн-режим: подсказки в любом чате
Бот работает в инлайн-режиме: введите его имя в строке сообщения в любом чате, и появятся быстрые варианты. Среди них упоминаются ping, python, learn, client, msg и ref.
- ping. Проверка, что бот на связи.
- python. Подсказка для тех, кто только знакомится с языком.
- learn. Материалы для изучения.
- client. Справка про клиент библиотеки.
- msg и ref. Помощь с сообщениями и со ссылками на документацию.
Единственная команда в меню: /start.
Как устроен такой бот внутри
Ядро ассистента опубликовано как пример в репозитории библиотеки. Оно загружает плагины из отдельной папки и запускает их. Набор расширений лежит в отдельном репозитории и подключается копированием в каталог plugins рядом с ядром.
Один из плагинов, например, умеет по расписанию опрашивать ленты новостей. Модульная схема удобна: новую возможность добавляют, не переписывая всё.
Что это значит для новичка
Если вы изучаете Telethon, загляните в пример: он показывает, как собрать бота-помощника с плагинами. Токен бота вы получаете у официального бота для создания ботов, а дальше запускаете код у себя.
- Установите библиотеку и получите токен бота.
- Скопируйте пример ассистента.
- Добавьте нужные плагины в отдельную папку.
- Запустите и проверьте инлайн-режим.
Как задавать вопросы в чате разработчиков
Прежде чем писать, поищите ответ в документации и по истории чата. Приложите минимальный пример кода и текст ошибки целиком. Назовите версию библиотеки и Python.
Вежливый вопрос с кодом получает ответ быстрее, чем «не работает, помогите». 🙂
Безопасность
Никогда не публикуйте в чатах токены ботов, строки сессий и api_hash. Строка сессии даёт полный доступ к аккаунту, и её утечка равна потере аккаунта. Если токен попал в публичный доступ, немедленно перевыпустите его.
Храните секреты в переменных окружения или отдельном файле, который не попадает в публичный репозиторий. Перед каждой публикацией кода проверяйте, что в нём нет ключей. Эта привычка спасает от самой частой беды начинающих разработчиков.
И последнее: уважайте ограничения Telegram. Слишком частые запросы приводят к паузам и блокировкам, поэтому добавляйте задержки и обрабатывайте ошибки.
Частые вопросы
Что такое Silvia?▼
Какие команды у бота?▼
Можно ли запустить такого бота самому?▼
Куда обращаться с вопросами по библиотеке?▼
На основе данных