Bot, który ponagla użytkowników, aby oznaczali swój kod tagami ```

Odpowiedz Nowy wątek
2019-10-27 21:33
22

Cześć,
jak prawdopodobnie nikt nie zauważył, od pewnego czasu działa sobie bot, który ponagla użytkowników, którzy nie zastosowali tagów ``` do swojego kodu, dodając komentarze do ich postów - niejaki @Tasmanian Devil.

Na razie działa w bardzo ograniczonym zakresie, dopiero od wczoraj zaczął analizować jakiekolwiek fora poza C# i .NET, a do tego tych komentarzy praktycznie nie dodaje, dopóki jawnie tego nie zrobię (tj. bot działa w tle szukając problemów, a potem dopiero wsadowo odpalam komentowanie - chociaż ma możliwość robić jedno i drugie naraz). Przynajmniej na razie.

Przykładowa sesja wygląda mniej więcej tak:
Annotation 2019-10-26 222804.png

To, co jest w tym momencie, jest to rozwinięcie tego małego pomysłu, który pokazałem ~3 tygodnie temu.

Cały sposób oparty jest o to, że chciałem zobaczyć sobie jak działa ML.NET (i jego auto-train) - stąd bot jest oparty o uczenie maszynowe, wykorzystuje binarny klasyfikator "kod"-"nie kod". Ogólna zasada działania jest taka, że pobiera posty z forum, usuwa z nich wszystko, co jest oznaczone jako kod (tj. w znacznikach <code>), a potem w pozostałym tekście klasyfikuje i jeśli znajdzie coś, co wygląda jak kod, z prawdopodobieństwem przekraczającym 0,99, to zapisuje to w logach (albo wysyła komentarz). Po czym "idzie spać" i znów wraca po jakimś czasie, pobiera posty z forum i tak dalej.

Napisany jest oczywiście w C#, dla .NET Core 3.0, u mnie na serwerze działa sobie w kontenerze Dockera. Wykorzystuje zarówno Coyote API, jak i bezczelne scrapowanie strony, bo nie do wszystkiego API istnieje ;)

Przykładowy efekt działania w komentarzach do 1628334.

Źródła są na GH: https://github.com/ktos/Eleia, zresztą binarki też (dla Linuksa i dla Windows), aktualna wersja to 0.7.1.

Co można by zrobić lepiej?

edytowany 3x, ostatnio: Ktos, 2019-10-27 21:36
Pokaż pozostałe 2 komentarze
Ale z tym "Tasmanian Devil" jako bot to, jak dla mnie, miałeś fantazję. ;) - Silv 2019-10-30 00:14
Skoro mamy Coyote, mieliśmy Roadrunner... cóż pasowało? ;) - Ktos 2019-10-30 09:06
Czy on pojawiał się razem z pozostałymi dwoma czy oddzielnie? - Silv 2019-10-30 18:07
Bezpośrednio z Kojotem i Strusiem Pędziwiatrem chyba się nie pojawiał, na pewno były jakieś odcinki razem z Królikiem Bugsem (chyba go chciał zjeść nawet) i Kaczorem Daffy, ale ogólnie to dla mnie jedno "uniwersum" Zwariowanych Melodii :) - Ktos 2019-10-30 20:40
To jest jeszcze wiele możliwości nazw na dalsze boty. :) - Silv 2019-10-30 20:44

Pozostało 580 znaków

2019-10-28 01:13
2
Ktos napisał(a):

Cześć,
jak prawdopodobnie nikt nie zauważył, od pewnego czasu działa sobie bot, który ponagla użytkowników, którzy nie zastosowali tagów ``` do swojego kodu, dodając komentarze do ich postów - niejaki @Tasmanian Devil.

Jeśli ten bot wyjdzie z fazy testów to można by (a raczej należy) go połączyć z kontem @4programmers.net, tak aby przynajmniej nie cuchnął lewymi botami – w końcu nazwa @Tasmanian Devil nikomu nic nie mówi.

Przykładowy efekt działania w komentarzach do 1628334.

Podejrzewam, że użytkownicy mimo wszystko będą olewać tego typu komentarze i niczego zmieniać nie będą, więc kolejną funkcją do zaimplementowania w tym bocie powinna być funkcja usuwania bałaganiarskich postów, jeśli post nie ulegnie modyfikacji przez autora. Cukierek albo psikus. :]


edytowany 1x, ostatnio: furious programming, 2019-10-29 00:06

Pozostało 580 znaków

2019-10-28 21:51
1

Komentarz komentarzem, ale działanie bota powinno polegać na automatycznym oznaczaniu wykrytego kodu znacznikami i wysyłaniu edycji do akceptacji moderatorowi, gdzie moderator może wprowadzić - jesli trzeba, odpowiednie poprawki i zatwierdzić. Lub wysyłać powiadomienie użytkownikowi o propozycji edycji, post wstępnie zedytowany do zatwierdzenia, coś jak na StackOverflow. Chociaż, co do drugiego, tak jak napisał @furious programming użytkownicy raczej będą to olewać, ale może nie zawsze - wtedy, gdy użytkownik oleje temat, dopiero moderator może dostać powiadomienie.

edytowany 2x, ostatnio: Meini, 2019-10-28 21:55

Pozostało 580 znaków

2019-10-28 23:04
2

@furious programming:

Jeśli ten bot wyjdzie z fazy testów do można by (a raczej należy) go połączyć z kontem @4programmers.net, tak aby przynajmniej nie cuchnął lewymi botami – w końcu nazwa @Tasmanian Devil nikomu nic nie mówi.

Hej, nie cuchnie "lewymi" botami, w końcu jest w oficjalnej grupie "boty" ;)
Nie jestem pewien, czy oficjalne konto to jest to - osobiście widziałbym go jako oddzielny byt. Trzeba by to przemyśleć - i zapytać co o tym sądzi władza zwierzchnia :)

Podejrzewam, że użytkownicy mimo wszystko będą olewać tego typu komentarze i niczego zmieniać nie będą, więc kolejną funkcją do zaimplementowania w tym bocie powinna być funkcja usuwania bałaganiarskich postów, jeśli post nie ulegnie modyfikacji przez autora.

Chyba bym się bał dawać maszynie uprawnienia usuwania czegokolwiek. Tak się zaczyna - najpierw usuwa posty, a nim się obejrzysz - próbuje usunąć Sarę Connor ;)

@Meini:

Komentarz komentarzem, ale działanie bota powinno polegać na automatycznym oznaczaniu wykrytego kodu znacznikami i wysyłaniu edycji do akceptacji moderatorowi, gdzie moderator może wprowadzić - jesli trzeba, odpowiednie poprawki i zatwierdzić. Lub wysyłać powiadomienie użytkownikowi o propozycji edycji, post wstępnie zedytowany do zatwierdzenia, coś jak na StackOverflow.

Pomysł jak najbardziej sensowny, ale będzie to wymagało zmian w samym Coyote - obecnie nie ma takich funkcji.
W zasadzie w ogóle można by to było "spiąć" z Coyote, w taki sposób, aby system forum sam stwierdzał, przed dodaniem posta, że "coś jest nie tak" i być może wymaga zmian - i wtedy nie potrzeba by zewnętrznego narzędzia, które "scrapuje" forum.

Pozostało 580 znaków

2019-10-29 00:13
1
Ktos napisał(a):

Nie jestem pewien, czy oficjalne konto to jest to - osobiście widziałbym go jako oddzielny byt. Trzeba by to przemyśleć - i zapytać co o tym sądzi władza zwierzchnia :)

To tylko sugestia. IMO użytkownikom (przede wszystkim nowym, którzy nie są obeznani z serwisem) łatwiej by było zrozumieć że komentarz zamieścił zaaprobowany bot, jeśli by jego nick był skojarzony z nazwą serwisu.

Chyba bym się bał dawać maszynie uprawnienia usuwania czegokolwiek. Tak się zaczyna - najpierw usuwa posty, a nim się obejrzysz - próbuje usunąć Sarę Connor ;)

Nie ma się czego bać, jeśli tylko wiesz jak on działa i kiedy słusznie wykrywa bałagan. :d

Nad tym tematem pasowało by się zastanowić, dlatego że mógłby on raportować posty – nie trzeba by liczyć na przypadkowe odkrycie czy na pomoc fizycznych użytkowników. Myślę że ten bot ma spory potencjał i może znacznie pomóc w utrzymaniu porządku w serwisie.


edytowany 1x, ostatnio: furious programming, 2019-10-29 00:14
Mam jeszcze w zanadrzu inne konto, bardziej kojarzące się z nazwą serwisu: @Asystent 4p (które kiedyś było żartem primaaprilisowym) ;) - Ktos 2019-10-29 10:01

Pozostało 580 znaków

2019-10-29 04:37
0

Mam nadzieję, że nie wywołam offtopu, ale zastanawiam się, jaki wpływ na zdolności w programowaniu ma myślenie perfekcjonistyczne. Są osoby, dla których znaczenie ma każdy piksel i każdy znak, i nawet niewidzialny dla oka biały znak przed końcem linii może ich "kłuć w oczy". Dla jednych formatowanie nie ma żadnego znaczenia, a inni nie będą mogli zostawić swojego kodu, dopóki nie będzie wyglądał idealnie (w ich własnej ocenie). Wiem, że opisałem dwa skrajne przypadki, i że wielu osobom wystarczy coś, co jest wystarczająco dobre lub po prostu działa, ale nie musi być idealne.

Kiedyś na tym forum założyłem wątek z podobnym pytaniem, ale wtedy chodziło mi o to, jak w programowaniu radzą sobie programiści, którzy nie przejmują się poprawną pisownią (gramatyką, ortografią i interpunkcją). Zostałem oskarżony o to, że uważam się za kogoś lepszego, mimo że moja wypowiedź nie miała żadnej tezy, nie wspomniałem o moim sposobie pisania i nie napisałem o mojej własnej opinii na ten temat.

Umiem sobie wyobrazić, że programiści, którzy nie zwracają uwagi na precyzję, mogą w pewnych obszarach programowania sobie lepiej radzić, niż tacy, którzy zwracają uwagę na każdy szczegół. Wiem, że charakter, dysgrafia lub zaburzenia osobowości związane ze skrajnym perfekcjonizmem nie muszą przekładać się na zdolności w myśleniu programistycznym. Na przykład mój CTO jest bardzo dobrym programistą, ale według mnie jest bardzo niedokładny. W jego przypadku niedokładność jest czymś, co można pominąć, żeby zyskać na czasie kosztem braku elegancji.

Zastanawiam się, jak osoba, której myślenie jest chaotyczne, "dogaduje się" z super precyzyjnym komputerem, który rozumie tylko taki kod, który jest napisany według ściśle określonych zasad i nie przyjmuje kompromisów. Tak samo osoby, które nie formatują w prawidłowy sposób swoich postów na forum, bardzo ryzykują bycie niezrozumianym przez innych forumowiczów, mimo że chcieliby być zrozumieni, żeby uzyskać poprawną odpowiedź.

edytowany 7x, ostatnio: Burmistrz, 2019-10-29 04:56
Pokaż pozostałe 20 komentarzy
Według mnie to dobra cecha, gdy ktoś woli sprawdzić i i dopytać, niż zakładać, że dobrze zrozumiał i wyciągać pochopne wnioski. Zastanawiałem się kiedyś nad tym i myślę, że to właśnie cechuje dobrych sędziów, adwokatów (chociaż tutaj to może być udawane) i osoby, które wstrzymują się z oceną, dopóki nie poznają faktów i opinii każdej ze stron. Wydaje mi się, że najgorsza jest sytuacja, gdy pozna się zdanie jednej ze stron i na tej podstawie formułuje się swój hejt bez próby zrozumienia drugiej strony. To niestety jest często spotykane w internecie. - Burmistrz 2019-10-29 05:56
W moim przypadku nie miałem na myśli żadnej konkretnej sytuacji, napisałem trochę humorystycznie wyolbrzymiając tragizm sytuacji. - Burmistrz 2019-10-29 06:01
Rzeczywiście, internet jest – wydaje mi się – bardziej na to podatny niż np. spotkanie osobiste. Być może jest tak (trochę jak na ironię), że emocje ograniczają emocje. Być może tak, jak przy spotkaniu twarzą w twarz możesz lepiej ocenić, jakie twoje działanie wywoła jakie emocje rozmówcy, tak przy "spotkaniu" w internecie nie da się tego tak dobrze ocenić. W związku z czym – ludzie pozwalają sobie na więcej; trudniej im zrozumieć / poczuć, co może druga strona czuć, więc widzą mniej ograniczeń. Tak myślę. - Silv 2019-10-29 06:06
Tak właśnie jest, ale nawet eliminując emocje można źle coś zrozumieć. Nie jest trudne przedstawienie dobrych argumentów bez kłamania, ale z ukrywaniem pewnych szczegółów, które mają duże znaczenie w ocenie sytuacji. Ta druga strona może przedstawić te argumenty, chociaż nie zawsze daje się jej szansę do zrobienia tego. - Burmistrz 2019-10-29 06:19
@Silv: dzięki za info, fajny pomysł 😁 - cerrato 2019-10-29 07:37

Pozostało 580 znaków

2019-10-30 00:10
1

Pomysł fajny, tylko co to da? W przykładowym poście, autor od 3 dni nie poprawił posta.

Tutaj taki bot byłby fajny, jakby stworzyć grupę użytkowników, którzy dostają prawo do edycji takich postów by wstawić te znaczniki.

W sensie bot zaznacza, post wymaga znaczników kodu, daje uprawnienia do edycji tego konkretnego posta grupie userow, ktoś z grupy dokonuje zmiany w poście.

Pozostało 580 znaków

2019-10-30 01:44
4
Panczo napisał(a):

Pomysł fajny, tylko co to da? W przykładowym poście, autor od 3 dni nie poprawił posta.

Z tym wątkiem jest taki problem, że założył go nowy użytkownik i po jakimś (krótkim) czasie traci możliwość edycji posta. Blokada edycji została wprowadzona po to, aby użytkownicy nie dewastowali swoich starych postów po uzyskaniu odpowiedzi lub w ramach zacierania po sobie śladów (a zdarzało się to wielokrotnie).

Ale aby uniknąć takich sytuacji, zasugerowałem, że oprócz przypominania użytkownikom o formatowaniu treści, bot powinien także co najmniej wysyłać raport do moderatorów, jeśli użytkownik ma w dupie prośby lub jeśli opcja edycji posta jest dla niego niedostępna.

Zresztą mechanizm wykrywania bajzlu w poście powinien być zaimplementowany w Coyocie, tak aby blokował możliwość wysłania posta lub przynajmniej ostrzegał użytkownika, że niesformatowana treść najprawdopodobniej przyciągnie moderatora, który mu wątek wywali.


edytowany 4x, ostatnio: furious programming, 2019-10-31 22:40
Tak długo tu jestem, że nawet nie wiem, jakie młodzi mają uprawnienia - Panczo 2019-10-30 07:04
@Panczo: moderatorzy mogą fszysko - cerrato 2019-10-30 09:20

Pozostało 580 znaków

2019-10-30 09:09
2

Ale aby uniknąć takich sytuacji, zasugerowałem, że oprócz przypominania użytkownikom o formatowaniu treści, bot powinien także co najmniej wysyłać raport do moderatorów, jeśli użytkownik ma w dupie prośby lub jeśli opcja edycji posta jest dla niego niedostępna.

Ok, racja, raport do moderatorów dodam.

Zresztą mechanizm wykrywania bajzlu w poście powinien być zaimplementowany w Coyocie, tak aby blokował możliwość wysłania posta lub przynajmniej ostrzegał użytkownika, że niesformatowana treść najprawdopodobniej przyciągnie moderatora, który mu wątek wywali.

Docelowo - na pewno tak. Nie wiem tylko jak to zaimplementować bezpośrednio w systemie, ale zapewne istnieją jakieś biblioteki ML dla PHP, które można było by wykorzystać w podobny sposób jak tutaj.

Pozostało 580 znaków

2019-10-30 09:22
4

Jeśli ten bot wyjdzie z fazy testów do można by (a raczej należy) go połączyć z kontem @4programmers.net

tak tylko dodam, że moim zdaniem powinno być coś pomiędzy. Nie łączyłbym tego wprost z kontem @4programmers.net, ale też nie dawałbym jakiejś nazwy z czapy, tylko coś, co będzie jednoznacznie wskazywać, że ten mechanizm jest częścią forum. Może coś jak 4P_editor_bot ;)


That game of life is hard to play
I'm gonna lose it anyway
The losing card I'll someday lay
So this is all I have to say
Mniej w tym fantazji... ale też bym tak wolał. - Silv 2019-10-30 18:08

Pozostało 580 znaków

2019-10-30 22:38
3

screenshot-20191030223832.png

TO DZIAŁA :D :D :D


That game of life is hard to play
I'm gonna lose it anyway
The losing card I'll someday lay
So this is all I have to say
A co ma robić? Wylegiwać się i czekać na dostawę prądu? Porządny pracownik, to i pracuje... ;) - Silv 2019-10-30 22:43
rządzisz ;) - Spine 2019-10-30 22:43
Ale rozumiem, że znalezienie samemu to nie to samo, co patrzenie na przykład znaleziony przez kogoś innego. - Silv 2019-10-30 22:48
Ale to ja sformatowałem ten kod, razem z aktualizacją jego tytułu :'( - Ktos 2019-10-30 22:51
@Ktos: aż tak dobrze boty działać nie mogą. A przynajmniej ja bym nie chciał. - Silv 2019-10-30 22:52

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 0, botów: 1

Robot: CCBot