ГОЛОСовые сервисы
- Почему бы и нет?-подумал я.
Идей по использованию блокчейна наберётся уже с приличную фуру. Думаю, заточка его под сервисы, не нова. Но вот в каком виде его точить, с каким лицом?
Здесь-то и пригодился мало-мальский опыт кодописания, для экспериментов с разными вариантами коммуникативных взаимодействий. (Признаюсь, для меня Node.js - это дремучий лес. Уж очень много лишних телодвижений надо сделать в вещах, которые, на том же mql, пишутся в четыре знака. Однако, всё поднимается прижатием пятой точки к креслу.)
Идея взаимодействия между сервисом и пользователем была слямзина с уже имеющихся роботов. Помните, как @on0tole раздавал инвайты? Почему бы не использовать этот механизм? Вызываем сервис в любом месте и на любом ресурсе блокчейна (имею ввиду ГОЛОС), получаем ответный коммент с информацией. То есть, не бродим по просторам веба, а, неуходя с ресурса, получаем ответы на запросы.
Вполне понятно, что уже есть годами наработанные пользовательские интернет-шаблоны и привычки, которые "записаны на подкорке", однако, они привились до технологии блокчейна. Что с ними станется в будущем, какая трансформация произойдёт?
С такими мыслями, я написал и запустил сервисного робота @gemini. По-сути, это просто пример сервиса.
Сегодня робот обладает двумя функциями. Я не стал делить функции по разным роботам, специально пошел путём универсальности: посмотреть пинг "пользователь-сервис-пользователь" в режиме многозадачности.
Функция #1
Робот самостоятельно публикует в ленте прогноз погоды по нескольким ключевым городам.
Узнать прогноз погоды на ближайшие четверо суток в другой местности, можно любому пользователю из любого комментария к любому посту и любого автора ГОЛОСа.
Например, нужен прогноз по городу Тюмень. В комментарии пишем:
@gemini Тюмень?
Робот, символически, проапвоутит комментарий из которого его вызвали, свяжется со своей базой данных, найдёт прогноз и опубликует его ответным комментом.
Проблем с распознаванием запроса пользователя у робота нет. Есть проблемы с самой базой данных. Дело в том, что БД, в большей степени,заточена под геокоординаты, а это, в свою очередь, совсем не комильфо для пользователя. Здесь и возникают некоторое недопонимание "запрос - ответ". Конечно, это всё устранимо - сложности никакой, нужно совсем немногое - время (которое сами знаете что).
Итак, первая функция - Прогноз погоды по запросу местности. Пока строгий синтаксис вызова. Робот должен знать, что вызвали именно его и чего от него хотят, поэтому пишем только: имя робота, через пробел - наименование населённого пункта, вопросительный знак.
@gemini Тюмень?
Для лучшей точности, можно так:
@gemini Тюмень,ru?
или так: @gemini Tyumen,ru?
(до и после запятой пробелов нет)
Функция #2
Курирование контента. Активирование апвоутов робота зависит только от самого пользователя (любого!). Чтобы робот отдал свой апвоут за пост, надо в комментарии первого уровня к посту (который хотим проапвоутить) вызвать робота и дать ему команду. Синтаксис вызова (всё латиницей):
@gemini up!
Робот понимает, что вызвали именно его и что от него хотят. Он апвоутит пост и, в ответном комментарии, сообщает о своих действиях вызвавшему его пользователю. Неважно о чём пост, важно - нужна помощь.
Идея, опять же, не нова. Подобное практикуется на Steemit, но там, для апвоутов роботов @minnowsupport и @banjo, надо заплатить регистрационный взнос и кидать им в discord ссылки на посты (кстати, более одного поста в день не получится).
Я немного преобразил сам подход - упростил способ общения и не использую никаких ограничений на вызов @gemini для апвоутов.
Понятно, что апы с его сегодняшней СГ, это тише комариного писка, но со временем, думаю, это поправимо. Его сила голоса прирастает как постингом, так и ответными вашими действиями (да и благотворительность никто не запрещал).
Важное замечание
В настоящий момент, сервисный робот запущен на VDS и работает в прямом потоке. Его отзывчивости могут помешать, как сбои в работе сервера, так и техническая особенность прямого потока. Иными словами: пока @gemini отвечает одному пользователю, он может пропустить какой-нибудь блок с вызовом другого пользователя и оставить вызов без ответа. Просмотра истории вызовов пока у робота нет. Поэтому, просто переспросите (или перепопросите) редакцией коммента.