Слишком много было про codeye, сегодня поговорим про ботов.
Как мне кажется, сейчас есть две точки зрения на эту тему. Первая заключается в том, что боты - это панацея, а вторая, соответственно, в том, что всё это как-то непонятно. Но это только на первый взгляд.
У ботов есть очевидное преимущество - они более легкодоступны и интуитивны, чем мобильные приложения. В то время, как основной конкурент чат-ботов требует лишних манипуляций, сами чат-боты базируются на уже готовых платформах, будь то Telegram, Discord, What's App, VK или MailAgent (даже такое практикуют, ужас). Самыми развитыми платформами на данный момент являются конечно же VK и Telegram - они предлагают наибольший функционал, более стабильные и удобные API, чем конкуренты.
Чат-бот не нужно скачивать, он не занимает память на устройстве пользователя и работает полностью через облачные вычисления. Привлекает людей то, что до бота просто достучаться. Пользователь пишет, получает мгновенный ответ и остается под хорошим впечатлением. Теперь он скорее всего напишет вашему боту, чем скачает подобное приложение себе на телефон.
НО, это не значит "все бежим делать чат ботов". Развитие чат-ботов никогда не вытеснит приложения с рынка, но потеснить их вполне в силе. Приложения всё так же актуальны для крупных проектов, когда, например:
- необходим графический интерфейс для взаимодействия с программой (напр. фоторедакторы, навигатор и тд);
- есть потребность в полном взаимодействии с файлами устройства (органайзеры вызовов, сообщений, другого медиа);
- если речь идёт о стриминговом сервисе (представьте Spotify или YouTube как бота в Telegram, даже звучит смешно);
- требуется сложная система авторизации (банковские приложения);
- необходима сложная система фильтрации (напр. приложение интернет-магазина типа aliexpress, avito, wildberries и тд);
- ну и так далее.ᅠ
Тут конечно же не все примеры, а только те, что первыми пришли в голову.
Как итог, помните, что каждая задача имеет своё решение. Чат-боты прекрасны, и они идеальны для несложного взаимодействия условно типа «вопрос/ответ», а приложения идеальны в более сложных и объемных задачах. Лично я считаю именно так и не отношу себя ни к одной из категорий людей, что описал выше. Но, конечно же, чат-ботов я обожаю.
Кстати, кто не знал, у меня есть два своих:
На данный момент отключены по техническим причинам, скоро будут включены снова!
@pyInfoParserBot - курсы валют и информация о коронавирусе,
@about_chat_bot - техническая информация о чате, что очень часто нужна разработчикам.
#mobile #chatbot
Как мне кажется, сейчас есть две точки зрения на эту тему. Первая заключается в том, что боты - это панацея, а вторая, соответственно, в том, что всё это как-то непонятно. Но это только на первый взгляд.
У ботов есть очевидное преимущество - они более легкодоступны и интуитивны, чем мобильные приложения. В то время, как основной конкурент чат-ботов требует лишних манипуляций, сами чат-боты базируются на уже готовых платформах, будь то Telegram, Discord, What's App, VK или MailAgent (даже такое практикуют, ужас). Самыми развитыми платформами на данный момент являются конечно же VK и Telegram - они предлагают наибольший функционал, более стабильные и удобные API, чем конкуренты.
Чат-бот не нужно скачивать, он не занимает память на устройстве пользователя и работает полностью через облачные вычисления. Привлекает людей то, что до бота просто достучаться. Пользователь пишет, получает мгновенный ответ и остается под хорошим впечатлением. Теперь он скорее всего напишет вашему боту, чем скачает подобное приложение себе на телефон.
НО, это не значит "все бежим делать чат ботов". Развитие чат-ботов никогда не вытеснит приложения с рынка, но потеснить их вполне в силе. Приложения всё так же актуальны для крупных проектов, когда, например:
- необходим графический интерфейс для взаимодействия с программой (напр. фоторедакторы, навигатор и тд);
- есть потребность в полном взаимодействии с файлами устройства (органайзеры вызовов, сообщений, другого медиа);
- если речь идёт о стриминговом сервисе (представьте Spotify или YouTube как бота в Telegram, даже звучит смешно);
- требуется сложная система авторизации (банковские приложения);
- необходима сложная система фильтрации (напр. приложение интернет-магазина типа aliexpress, avito, wildberries и тд);
- ну и так далее.ᅠ
Тут конечно же не все примеры, а только те, что первыми пришли в голову.
Как итог, помните, что каждая задача имеет своё решение. Чат-боты прекрасны, и они идеальны для несложного взаимодействия условно типа «вопрос/ответ», а приложения идеальны в более сложных и объемных задачах. Лично я считаю именно так и не отношу себя ни к одной из категорий людей, что описал выше. Но, конечно же, чат-ботов я обожаю.
Кстати, кто не знал, у меня есть два своих:
На данный момент отключены по техническим причинам, скоро будут включены снова!
@pyInfoParserBot - курсы валют и информация о коронавирусе,
@about_chat_bot - техническая информация о чате, что очень часто нужна разработчикам.
#mobile #chatbot
🔥1
На базе своих проектов я планирую реализовывать REST API, а в этом посте объясню что это такое и почему я хочу это использовать.
Дня начала введу понятия, а именно:
REST - это архитектурный стиль построения и взаимодействия приложений в сети.
API - интерфейс взаимодействия с определенным приложением.
В итоге получаем, что REST API - это способ взаимодействия с приложением в сети по определенному заранее известному стилю. Самый просто пример - API различных мессенджеров, когда посредством HTTP запроса бот отправляет сообщение пользователю.
Схематично запрос выглядит так:
У этого запроса, в теории, может быть ещё много переменных, что даст вам больше возможностей кастомизации. Если вы сами перейдёте по этой ссылке, то вы не увидите ничего. REST API не имеет графического интерфейса. Всё, что вы можете увидеть - это, например, ответ в json формате, как это реализовано у Telegram.
Так зачем же API другим сервисам? Ответ: для упрощения интеграции к другим приложениям. Например, банки могут реализовать API, что вернёт актуальный курс валют на момент запроса, а сервисы типа OpenWeatherMap после запроса вернут актуальную погоду в выбранном городе. А API сайта Wikipedia может вернуть текст или название любой статьи, к примеру, или произвести поиск по запросу в самом сервисе.
Всё это нужно, чтобы ваш сервис был доступен из других сервисов, что повысит вашу узнаваемость и популярность, если сервис востребован и хорош.
Реализовать технически это не сложно. И как раз крайне популярен в этом плане мой ныне обожаемый Flask, о котором я писал ранее.
Он отлично подходит для написания различных REST API. Касательно вашего сервиса можно реализовать любой запрос именно через него. Для этого нужен всего лишь доступ к БД и 100 строк кода на Python. Через API вы можете реализовать как добавление статей на сайт, так и интеграцию с чат-ботами. Как пример, онлайн таск-менеджер, который посредством API вашего сайта и Telegram будет отправлять пользователю различные напоминания в любимый мессенджер. Такую реализацию я уже видел.
Лично я стал бы использовать REST API как минимум из-за интеграции с мессенджерами. Это очень удобно и явно понравится пользователям. Ну и неплохо было бы реализовать и доступ к сервису посредством API для других разработчиков и сервисов, если это нужно. Почему нет?
#python #web #chatbot
Дня начала введу понятия, а именно:
REST - это архитектурный стиль построения и взаимодействия приложений в сети.
API - интерфейс взаимодействия с определенным приложением.
В итоге получаем, что REST API - это способ взаимодействия с приложением в сети по определенному заранее известному стилю. Самый просто пример - API различных мессенджеров, когда посредством HTTP запроса бот отправляет сообщение пользователю.
Схематично запрос выглядит так:
api.messenger.com/send_message/token=TOKEN&chat_id=1234567&message="Hello, world"
У этого запроса, в теории, может быть ещё много переменных, что даст вам больше возможностей кастомизации. Если вы сами перейдёте по этой ссылке, то вы не увидите ничего. REST API не имеет графического интерфейса. Всё, что вы можете увидеть - это, например, ответ в json формате, как это реализовано у Telegram.
Так зачем же API другим сервисам? Ответ: для упрощения интеграции к другим приложениям. Например, банки могут реализовать API, что вернёт актуальный курс валют на момент запроса, а сервисы типа OpenWeatherMap после запроса вернут актуальную погоду в выбранном городе. А API сайта Wikipedia может вернуть текст или название любой статьи, к примеру, или произвести поиск по запросу в самом сервисе.
Всё это нужно, чтобы ваш сервис был доступен из других сервисов, что повысит вашу узнаваемость и популярность, если сервис востребован и хорош.
Реализовать технически это не сложно. И как раз крайне популярен в этом плане мой ныне обожаемый Flask, о котором я писал ранее.
Он отлично подходит для написания различных REST API. Касательно вашего сервиса можно реализовать любой запрос именно через него. Для этого нужен всего лишь доступ к БД и 100 строк кода на Python. Через API вы можете реализовать как добавление статей на сайт, так и интеграцию с чат-ботами. Как пример, онлайн таск-менеджер, который посредством API вашего сайта и Telegram будет отправлять пользователю различные напоминания в любимый мессенджер. Такую реализацию я уже видел.
Лично я стал бы использовать REST API как минимум из-за интеграции с мессенджерами. Это очень удобно и явно понравится пользователям. Ну и неплохо было бы реализовать и доступ к сервису посредством API для других разработчиков и сервисов, если это нужно. Почему нет?
#python #web #chatbot
🔥3
Запускаем своего первого телеграм бота на Python.
Я уже как-то затрагивал ботов обзорно вот в этом посте, сегодня хочу продолжить немного более конкретно. Итак, телеграм сейчас является самой лучшей площадкой для создания ботов. Ни один другой мессенджер или соцсеть не может похвастаться таким же успехом в этом деле. Объяснить это просто:
1. У телеграма прекрасный, удобный, хорошо задокументированный API.
2. Для него уже сейчас существует огромная кодовая база, десятки библиотек на самых разных языках программирования.
Для примера я взял Python, так как этот язык наиболее распространен среди аудитории моего канала, как мне кажется. Для Python есть две неплохие библиотеки - это pyTelegramBotApi и aiogram. Я написал уже где-то ботов 15 за всё время программирования и с уверенностью могу сказать, что на моей практике это лучшие библиотеки.
Aiogram прекрасен своей асинхронностью, а следовательно эффективностью в высоконагруженным проекте, а pyTelegramBotApi - это синхронный младший брат, который, конечно, менее эффективен, но которого более чем достаточно в большинстве задач. pyTelegramBotApi максимально прост, так что в этой библиотеке разберётся любой.
Для начала зарегистрируем нового бота у @botfather. Это не сложно, не будем на этом останавливаться.
Потом установим библиотеку:
Первое, что нужно обсудить - это объект message, который в себя принимает функция
Второе, конечно же, декоратор
Это, конечно же, не единственный декоратор, который есть в библиотеке, но его одного достаточно для простейшего бота.
Насчёт
Это метод, который, как очевидно, отправляет сообщение пользователю. В приведенном выше примере мы отправляем сообщение по идентификатору
Теперь я напишу маленького бота, на примере которого, я надеюсь, вы поймёте тему лучше.
Посмотреть код можно тут.
Взаимодействовать с ботом: @progway_test_bot
И, как всегда, спасибо за прочтение ❤️
#python #chatbot
Я уже как-то затрагивал ботов обзорно вот в этом посте, сегодня хочу продолжить немного более конкретно. Итак, телеграм сейчас является самой лучшей площадкой для создания ботов. Ни один другой мессенджер или соцсеть не может похвастаться таким же успехом в этом деле. Объяснить это просто:
1. У телеграма прекрасный, удобный, хорошо задокументированный API.
2. Для него уже сейчас существует огромная кодовая база, десятки библиотек на самых разных языках программирования.
Для примера я взял Python, так как этот язык наиболее распространен среди аудитории моего канала, как мне кажется. Для Python есть две неплохие библиотеки - это pyTelegramBotApi и aiogram. Я написал уже где-то ботов 15 за всё время программирования и с уверенностью могу сказать, что на моей практике это лучшие библиотеки.
Aiogram прекрасен своей асинхронностью, а следовательно эффективностью в высоконагруженным проекте, а pyTelegramBotApi - это синхронный младший брат, который, конечно, менее эффективен, но которого более чем достаточно в большинстве задач. pyTelegramBotApi максимально прост, так что в этой библиотеке разберётся любой.
Для начала зарегистрируем нового бота у @botfather. Это не сложно, не будем на этом останавливаться.
Потом установим библиотеку:
pip install pyTelegramBotApi
Далее создадим файл bot.py
и напишем вот такой код:import telebotДалее разберем основы:
bot = telebot.TeleBot(токен от @BotFather)
@bot.message_handler(commands=['start'])
def send_welcome(message):
bot.send_message(message.chat.id, "привет")
bot.polling(none_stop=True)
Первое, что нужно обсудить - это объект message, который в себя принимает функция
send_message
. Message - обычный питоновский словарь, к которому мы можем обращаться по ключам. Принт этого объекта можно посмотреть тут.Второе, конечно же, декоратор
bot.message_handler(commands=['start'])
. Весь его функционал заключается в том, что функция, обёрнутая декоратором, будет выполнятся на определенную команду, например. То есть мы можем оформить декоратор bot.message_handler(commands=['help', 'помощь'])
и описанная ниже функция сработает при командах /help
и /помощь
.Это, конечно же, не единственный декоратор, который есть в библиотеке, но его одного достаточно для простейшего бота.
Насчёт
bot.send_message
. Это метод, который, как очевидно, отправляет сообщение пользователю. В приведенном выше примере мы отправляем сообщение по идентификатору
message.chat.id
, то есть в ответ пользователю. У этого класса есть еще много методов, например для отправки фотографии, аудио, игр или других действий.Теперь я напишу маленького бота, на примере которого, я надеюсь, вы поймёте тему лучше.
Посмотреть код можно тут.
Взаимодействовать с ботом: @progway_test_bot
И, как всегда, спасибо за прочтение ❤️
#python #chatbot
Список доступных хештегов:
Основные:
#theory — общая теория программирования, разбор теоретических вопросов с собеседования
#quiz — короткий вопрос на свободную тему в разработке с вариантами ответов
#useful — просто полезные вещи
#blog — посты в формате блога обо мне / на свободную тему
Подгруппы:
#javascript — всё, связанное с языком
#typescript — аналогично👆
#code — посты во встроенным в текст кодом, готовые примеры
#vite — посты, которые так или иначе затрагивают сборщик
#web — всё, касательно web разработки
#principles — принципы проектирования
#react — всё, касательно React
#patterns — всё о паттернах
#data — всё о данных и манипуляциях с ними
#news — новости
#python — всё, связанное с этим языком
#mobile — мобильная разработка
#design — штучки для дизайна
#github — интересности с гита
#chatbot — мои боты и всё, что с ними связано
Основные:
#theory — общая теория программирования, разбор теоретических вопросов с собеседования
#quiz — короткий вопрос на свободную тему в разработке с вариантами ответов
#useful — просто полезные вещи
#blog — посты в формате блога обо мне / на свободную тему
Подгруппы:
#javascript — всё, связанное с языком
#typescript — аналогично
#code — посты во встроенным в текст кодом, готовые примеры
#vite — посты, которые так или иначе затрагивают сборщик
#web — всё, касательно web разработки
#principles — принципы проектирования
#react — всё, касательно React
#patterns — всё о паттернах
#data — всё о данных и манипуляциях с ними
#news — новости
@deprecated
#python — всё, связанное с этим языком
#mobile — мобильная разработка
#design — штучки для дизайна
#github — интересности с гита
#chatbot — мои боты и всё, что с ними связано
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Сказ о том, как я HTML в JPG конвертировал...
Обычно, когда я пишу посты в канал, я использую фотошоп для создания картиночки к нему. Эта картинка присутствует у подавляющего большинства постов и я думаю для многих это уже неотъемлемая часть стиля всего канала. И часто эта самая картинка — большая проблема для меня. Для её создания мне нужен сам фотошоп, время, куча ненужных действий и вот это вот всё неприятное. И пусть я делаю всё это по шаблону, который подготовил заранее, даже тут моя лень находит способ помешать мне. А лень — двигатель прогресса, это уж точно.
В общем, проблем несколько:
— Лень
— Занимает относительно много времени и не приносит удовольствия
— Посты можно оформить только с ПК
— Я счастливый обладатель MacBook на M1, так что для нормальный работы в Photoshop нужно тратиться на лицензию
Я решил найти другое решение: бесплатное, быстрое, удобное и кросс-платформенное. И нашел.
Для решения задачи я хотел использовать
Ну и, соответственно, я решил использовать
Я быстро накатил первую попавшуюся из поиска библиотеку node-html-to-image, воспользовался неплохой документацией, сверстал максимально странный, но рабочий макет и вот, мой
В итоге, процесс создания картинки максимально упрощён. Я могу оформить пост с любого устройства, где поддерживается клиент телеграмма (то есть даже с утюга), мне не нужно платить за подписку на Photoshop и я даже могу делегировать создание постов на кого-то куда проще.
Всё это написано крайне криво, неказисто, без нормальной архитектуры и, даже, как такового код-стайла, в паре файликов. Но оно работает. И мне этого достаточно. Я не вижу смысла тратить время на вылизывание кода, которым буду пользоваться только я, это элементарно экономически не выгодно. Но если вдруг перед кем-то встанет такая-же задача, то на моё решение можно посмотреть здесь.
Можно было написать лучше, может быть на питоне это генерировалось бы за миллисекунды, мне плевать. Оно работает и выполняет свою задачу более чем удовлетворительно. Картинка к этому посту уже сделана через бота. Сравнив её с прошлыми, где все сделаны вручную, я думаю, вы оцените качество результата. Можете, кстати, поискать на картинке пасхалку. Милая штука, на мой взгляд.
Делюсь. Вот. Спасибо за прочтение, это правда важно для меня.
#blog #useful #github #design #chatbot
Обычно, когда я пишу посты в канал, я использую фотошоп для создания картиночки к нему. Эта картинка присутствует у подавляющего большинства постов и я думаю для многих это уже неотъемлемая часть стиля всего канала. И часто эта самая картинка — большая проблема для меня. Для её создания мне нужен сам фотошоп, время, куча ненужных действий и вот это вот всё неприятное. И пусть я делаю всё это по шаблону, который подготовил заранее, даже тут моя лень находит способ помешать мне. А лень — двигатель прогресса, это уж точно.
В общем, проблем несколько:
— Лень
— Занимает относительно много времени и не приносит удовольствия
— Посты можно оформить только с ПК
— Я счастливый обладатель MacBook на M1, так что для нормальный работы в Photoshop нужно тратиться на лицензию
Я решил найти другое решение: бесплатное, быстрое, удобное и кросс-платформенное. И нашел.
Для решения задачи я хотел использовать
Python
, но решение это было не лучшее. Нет нормального API
для работы с DOM
элементами, нужна песочница для запуска браузера, работает медленнее, а самое главное - на Python
у меня гораздо меньше опыта. Я реализовал рабочий вариант на imgkit
достаточно быстро, но он не устроил меня, код удалён. Ну и, соответственно, я решил использовать
node js
. Я имею куда больше опыта c node
и javascript
, так что рабочее решение, которое по моим тестам работало быстрее решения на Python
в 7.5 раз, было готово меньше чем через 20 минут. Я быстро накатил первую попавшуюся из поиска библиотеку node-html-to-image, воспользовался неплохой документацией, сверстал максимально странный, но рабочий макет и вот, мой
html
конвертируется в изображение за, в среднем, 2.4 секунды. Ещё за полчаса я изучил библиотеку node-telegram-bot-api и создал на основе скрипта-генератора удобный для себя интерфейс для управления им. Теперь картинки к моим постам генерируются на бесплатном хостинге heroku
, и делают они это через API
бота в телеграм. Процесс выглядит так. В итоге, процесс создания картинки максимально упрощён. Я могу оформить пост с любого устройства, где поддерживается клиент телеграмма (то есть даже с утюга), мне не нужно платить за подписку на Photoshop и я даже могу делегировать создание постов на кого-то куда проще.
Всё это написано крайне криво, неказисто, без нормальной архитектуры и, даже, как такового код-стайла, в паре файликов. Но оно работает. И мне этого достаточно. Я не вижу смысла тратить время на вылизывание кода, которым буду пользоваться только я, это элементарно экономически не выгодно. Но если вдруг перед кем-то встанет такая-же задача, то на моё решение можно посмотреть здесь.
Можно было написать лучше, может быть на питоне это генерировалось бы за миллисекунды, мне плевать. Оно работает и выполняет свою задачу более чем удовлетворительно. Картинка к этому посту уже сделана через бота. Сравнив её с прошлыми, где все сделаны вручную, я думаю, вы оцените качество результата. Можете, кстати, поискать на картинке пасхалку. Милая штука, на мой взгляд.
Делюсь. Вот. Спасибо за прочтение, это правда важно для меня.
#blog #useful #github #design #chatbot