Informacje o postępach związanymi z BotAPI i implementacji botów na jego podstawie

in #polish6 years ago (edited)

Cześć,
w tym poście chciałbym napisać o postępach nad tworzeniem wygodnego API do tworzenia botów. Więcej informacji o projekcie i jego założeniach znajdziecie tutaj

Najpierw napiszę coś o samym BotAPI, a potem będzie o implementacji botów na podstawie tworzonego API.
Obecnie udało mi się stworzyć taką strukturę, która posiada kilka poziomów przetwarzania informacji. Na początek każdy bot będzie mógł pobrać interesujące go dane tzw. "zafeedowanie się danymi". Czyli po prostu uzyskaniem odpowiednich informacji w celu dalszego przetwarzania. Do tego używany jest obecnie interfejs HelpInformation.

Drugą częścią bota jest możliwość tworzenia odpowiednich czynności bota. Takie czynność można zaimplementować używając interfejsu botAction. Dodatkowo każda akcja posiada pewien zbiór reguł odpowiedzialnych za decyzję bota przy danej akcji.

Wszystko to łączy się pobranymi na początku informacjami. Bot może uzyskać informacje z konfiguracji użytkownika np. związane z danymi konta bota. BotAPI umożliwia także weryfikację wymaganych zależności dla bota. Zależności dzielę na dwie części:

  1. Zależności stałe
  2. Zależności "ruchome"

Zależności stałe, to takie, które bot potrzebuje od użytkownika w konfiguracji bota. Natomiast zależności "ruchome", to takie które bot przetwarza w trakcie jego działa i informacje te zmieniają się w zależności od np. jakiego użytkownika steem obsługuje.

Dzisiaj udało mi się uruchomić testowo @kumpel, który będzie miał za zadanie głosować na posty polskiej społeczności na określonych tagach. Wiem, że @fervi ma swojego @diosbot i @hellobot. Tyle tylko, że korzysta on z "whitelisty", czyli użytkownicy dodawani są ręcznie. Ma to plusy związane z "upewnieniem się", że ktoś tworzy posty z "dobrą treścią". Minusem jest potencjalna subiektywność w ocenie które konto się nadaje, a które niekoniecznie. @kumpel będzie po prostu alternatywną wersją @diosbota. Jeżeli @mmmmkkkk311 zdecyduje się na swojego bota kuratora, to będzie jeszcze inna opcja :)

Mój bot będzie działał raczej na zasadzie "dopóki nie zrobisz głupoty, to masz szansę na głos". Czyli jedynym ogranicznikiem jest czarna lista bota i tagi jakie bot będzie obserwował.
Zastanawiam się nad czarną listą w postaci pliku lub takiej utrzymywanej w bazie sqlite.
Takie rozwiązanie działania bota gwarantuje, że każdy ma równe szanse na otrzymanie głosu. Zarówno nowa osoba, która dopiero coś napisała jak i osoba, która ma już jakiś staż. Zastanawiam się nad wspieraniem tagu #polish oraz #pl-programowanie (#programowanie). #polish ponieważ jest to największa rzesza polskich użytkowników, a pl-programowanie, ponieważ chce wspierać dodatkowo strefę programistyczną.
Wiadomo, będą trafiać się posty słabe i splagiatowane, ale od tego jestem ja, aby zajmować się niestandardowymi przypadkami.
Dopóki ktoś nie plagiatuje treści na którą zagłosował bot, to może otrzymać głos każda treść. Czy to jest taka z dtube, dlive czy z innych interfejsów.
Myślę także o automatycznym przetwarzaniu SBD->Steem->Steem Power używając wewnętrznego marketu.

Głównym przesłaniem bota @kumpel jest "zachęcić" do korzystania z platformy wszystkie osoby, nawet jeżeli nie mają talentu do pisania "wysokiej jakości" artykułów.
Jako, że uczestniczę w życiu tej społeczności, to chciałbym dodać coś od siebie i właśnie tego typu projekty, są czymś, w czym czuję się dobrze i jestem wstanie dołożyć swoją cegiełkę projektując nowe, tego typu rozwiązania.

Sam @kumpel będzie moim botem i będę do niego delegował moje SP, żeby miał on jakąś sensowniejszą moc głosu. Raczej chciałbym, żeby operował on na dobrowolnych głosach użytkowników, niż poprzez delegacje SP. Delegując SP zwiększamy moc takiemu kontu automatycznie zwiększając moc głosu. Delegacjami lepiej jest wspierać @diosbot, gdyż opiera on się bardziej na dobrowolnych dotacjach i delegacjach.

Jeżeli chodzi o implementację bota głosującego opartego na założeniach podobnych do @diosbot, to stoję przed odpowiednią implementacją sqlita. Po zaimplementowaniu bazy danych reszta to już formalności.

Generalnie to nikt nie wie ile osób głosuje na czyiś post, a ile to są w pewien sposób zaprogramowane boty. Wielu twórców botów nie ujawnia, że jakieś konto jestem sterowane przez bota. Jednym z możliwych wyjaśnień, to podbijanie postów, żeby trafiły do trending albo do hot. Obecnie można sobie wykupić głos od bota z dużą mocą za określoną kwotę kryptowaluty. W większości przypadków taki głos jest nieopłacalny. Jedyny pewny zysk to skok reputacji, gdy ktoś chce ją sobie podbić. Ten akapit jest tylko taki uświadamiający nowych użytkowników, że steem jest dużo bardziej skomplikowany i zautomatyzowany niż nam się to wydaje.

Żeby zautomatyzować proces dodawania do "wyjątków", będę musiał w późniejszym przyroście dodać odpowiednią akcję, która działa na podobnej zasadzie co @steemitboard. Bot ten przestaje obserwować działania użytkowników, gdy użytkownik wpisze "STOP".
Nie chce nikogo denerwować komentarzami @kumpla, więc jeżeli nie podoba wam się pomysł, bądź po prostu nie chcecie aby bot was losował, to dajcie znać, a umieszczę wasz nick w wyjątkach.

Cały kod BotAPI i implementację botów cały czas aktualizuję na githubie, gdzie moje repozytoria są albo "Hall of fame" albo "Hall of shame" :)

Sort:  

Hej! Otrzymałeś losowo głos za swój post! Jeżeli chcesz uczestniczyć w projekcie związanym ze wspieraniem polskiej społeczności, to dodaj głos na ten komentarz :)
Jeżeli jesteś autorem postu i nie chcesz być losowany w przyszłości, to odpowiedz na ten komentarz "STOP", a zostaniesz dodany do listy "wyjątków".

Coin Marketplace

STEEM 0.35
TRX 0.12
JST 0.040
BTC 70733.96
ETH 3563.16
USDT 1.00
SBD 4.76