Comments 10
Решали похожую задачу, когда писали бота для хакатона. Почему решили писать свою библиотеку с нуля, а не использовать существующие?
Тогда ещё толком не было, плюс под несколько специфическую задачу, плюс академический интерес. Если есть ссылки на хорошие библиотеки (сам пока видел только одну, и то мне на текущем этапе проще со своей) — буду благодарен.
Мы использовали github.com/python-telegram-bot/python-telegram-bot, попутно намучавшись с реализацией через него асинхронных вызовов к Flask (бэкенд для модели).
Есть еще telebot.
Решения могу подсказать и показать (только там страшный хакатон-код), но из фишек получилось: 1) обеспечить inline, 2) когда модель уходила думать на 5 секунд делать вид, что бот что-то пишет. Ну и соответственно, делать все это по возможности асинхронно (как и у вас).

А в чём посыл?


Про, собственно, машинное обучение и нет ничего. "Модель" — две функции на питоне. Одна сохраняет файл, другая выдаёт из предопределенного списка результат через if/elif/else. Что тут от машинного обучения, что от ИИ?


Бот — это по сути обёртка над запросами к API Telegram. При этом не самого лучшего качества, с большим количеством хардкода и нечитаемая. Это, впрочем, и не важно, раз обёртка нужна лишь как интерфейс к "модели" ИИ.
Но где взаимодействие с ИИ?


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

>>> Про, собственно, машинное обучение и нет ничего

«Когда-нибудь тут случится сложный ИИ, но, увы, пока нет. По крайней мере не в этой статье.»

>>> Бот — это по сути обёртка над запросами к API Telegram. При этом не самого лучшего качества

«Оговорюсь, что в первую очередь я специализируюсь на алгоритмических аспектах разработки и поэтому буду рад конструктивной критике решений кодерского характера от более сведущих в этом вопросе специалистов.» Можно чуть более конструктивно? Что конкретно стоит улучшить и почему?

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

Ваша мета-модель по большому счёту это
класс с реализацией единственного метода predict(). При этом, никакого отношения непосредственно к ML не имеет.


Никаких претензий к самому механизму обращения к апи у меня не было, как я написал. Для приложений аля-REPL большего и не нужно. Критиковать код не имеет смысла, раз это чисто академическая разработка для утилитарной конкретной задачи.


Вопрос не в том, зачем она вам. Зачем она другим? Для программ общего назначения есть множество более качественных альтернатив.


Мне непонятна цель, которая преследовалась.


Показать, что можно написать класс, который будет иметь один метод и по условию выдавать текст?


Показать что к апи телеграмма можно обращаться по http?

>>> Ваша мета-модель по большому счёту это класс с реализацией единственного метода predict()

Ну это же просто заглушка для того, чтобы показать как оно работает.

>>> Вопрос не в том, зачем она вам. Зачем она другим?

Кажется «другие» в основном не против — судя по статистике апвотов/даунвотов, добавлений в закладки и подписок за последние сутки.
статья интересная, но не понял, зачем писать свою библиотеку, когда много существующих есть.

в чем была особенность?

PS использую github.com/eternnoir/pyTelegramBotAPI
вполне себе хорошая библиотека.
Да, я ее, кажется, разбирал и не смог быстро понять, как использовать в рамках нужных механик с применением ML-модели.
Only those users with full accounts are able to leave comments. Log in, please.