Quiz für Bots auf Twitch.tv
Wie Sie wissen, gibt es Bots auf Twitch.tv. Ich spreche nicht von "schlechten" Bots, um Zuschauer oder Chat zu betrügen, sondern von Bots, mit denen ein Streamer einem Stream oder Chat während eines Streams die eine oder andere Funktionalität hinzufügen kann. Zu den bekanntesten gehören: Moobot, Nightbot und MirRobot. Letzteres wird diskutiert. Mirrobot wurde von unserem Landsmann geschrieben und enthält zu Recht die Anzahl der beliebtesten Bots. Eine der gefragtesten Funktionen ist die Durchführung eines Quiz im Chat. Das Wesentliche des MirRobot-Quiz: Mit einer bestimmten Häufigkeit stellt der Bot dem Publikum im Chat eine Frage. Wenn innerhalb einer bestimmten Zeit niemand richtig antworten kann, gibt der Bot Hinweise, die die Anzahl der Buchstaben in der Antwort angeben und einige Buchstaben enthüllen (nach dem Prinzip „Galgen“ oder „Felder der Wunder“).Beispiel für ein Quizspiel:Sobald jemand richtig antwortet, ist er erstens gut gemacht, und zweitens erinnert sich der Bot, dass es dieser Betrachter war, der richtig geantwortet hat. Eine Liste der Zuschauer, die die Quizfragen am besten beantwortet haben, ist auch im Chat eines speziellen Teams verfügbar. Diese Liste ist für jeden Kanal unterschiedlich.Die Idee
Als ich einmal experimentierte, wie man Antworten auf willkürliche Fragen im Internet findet, erinnerte ich mich an das Quitch auf Twitch und beschloss, einen Bot zu erstellen, der selbst am Quiz teilnehmen würde. Es wurde für mich auch interessant herauszufinden, was passieren würde, wenn derselbe Spieler auf völlig unterschiedlichen Kanälen ganz oben im Quiz steht. Wird dies den Verdacht des Publikums oder des Entwicklers hervorrufen? Wie wird die Reaktion sein? Oder hat vielleicht schon jemand einen Bot vor mir gemacht und es sind keine echten Leute mehr oben?Die erste funktionierende Version des Bots wurde über Nacht in den Maiferien geschrieben. Der Bot konnte auf Twitch eine Verbindung zum gewünschten Kanal herstellen, den Chat analysieren, erkennen, wann eine Quizfrage im Chat angezeigt wird, und im Internet nach der Antwort suchen.Leider konnten wir nicht sofort einen normalen Dienst finden, der willkürliche Fragen auf Russisch beantworten konnte. Google und Yandex sind für solche Zwecke nicht geeignet, da sie keine vorgefertigte Antwort geben, sondern Links zu Seiten im Internet, die zumindest minimal analysiert werden müssen. Für eine Person ist eine solche Analyse kein Problem, aber wie man daraus ein Auto macht, ist eine separate Aufgabe. Idealerweise suchte ich etwas Ähnliches wie Wolfram Alpha, aber mit Unterstützung für die russische Sprache. Übrigens, wenn jemand daran denkt, einen solchen offenen Service - schreiben Sie in die Kommentare.Implementierung
Für das Quiz über Twitch hat es sich als ausreichend erwiesen, auf einer der vielen Websites nach Antworten zu suchen, die Kreuzworträtseln, Scanwords und ähnlichen Spielen gewidmet sind. Nachdem ich mehrere ähnliche Websites ausprobiert hatte, entschied ich mich für die, auf der das einfachste Format der Suchergebnisseite angezeigt wurde. Mit Blick auf die Zukunft werde ich sagen, dass sich herausgestellt hat, dass die Hauptbasis von MirRobot aus solchen „Fragen aus Kreuzworträtseln“ besteht. Die Effizienz des Algorithmus für allgemeine Bildungsfragen erwies sich als recht hoch (70%), und nachdem wir diese Bot-Funktion zu Beginn geschrieben hatten, mussten wir nicht mehr darauf zurückkommen.Nach einer Reihe von Verbesserungen konnte der Bot: - Spielen Sie das Quiz gleichzeitig erfolgreich in mehreren Chat-Kanälen.
- Finden Sie unabhängig neue Kanäle, auf denen MirRobot eingeschaltet war, und es gab eine Mindestanzahl von Zuschauern.
- Pflegen Sie Ihre Datenbank mit korrekten Antworten auf Fragen, um sich nicht auf die Effektivität der Suche im Netzwerk zu verlassen und bestimmte Fragen zu Computerspielen beantworten zu können.
- Notieren Sie sich die Spitze der Quizteilnehmer auf den Kanälen und berücksichtigen Sie deren Position oben bei der Entscheidung über die Antwort.
- Bei Trennung vom Internet erneut verbinden.
- Überprüfen Sie die Übereinstimmung Ihrer erwarteten Antwort und der Eingabeaufforderungen im Quiz.
- Arbeiten Sie völlig autonom: Hosten Sie in einer PaaS-Cloud, senden Sie die erforderlichen Analysen zur Überwachung an das Web und pflegen Sie eine Datenbank in DBaaS.
- Simulieren Sie das Chatten mit einer persönlichen Erwähnung (diese Funktionalität wurde viel später implementiert).
- Simulieren Sie das Tempo und die Art der Reaktion einer Person.
Was aus verschiedenen Gründen nicht funktioniert oder nicht implementiert wurde:- Die Erkennung, ob der Bot im Chat auf dem Kanal gesperrt ist, ist nicht implementiert.
- Es gab zwei nervige Fehler, die ich nicht beheben konnte. Im Falle ihrer Erkennung wurde der Bot einfach neu gestartet.
Verwendete Technologien:- Python 3 (ungefähr 1 Tausend Codezeilen).
- IRC (Twitch Chat ist eigentlich ein IRC-Chat).
- Kellnerin / Flasche für das Webinterface.
- MongoDB (mlab.com).
- PaaS IBM Bluemix.
Dadurch wurde die volle Unabhängigkeit des Bots erreicht. Eine globale Herausforderung wurde erreicht. In den letzten 2 Monaten arbeitete der Bot autonom.Bot gegen Mensch

Die Fähigkeit, nicht aufzufallen, war für den erfolgreichen Betrieb des Bots am wichtigsten. Es war leicht genug, dem Bot das Beantworten von Fragen beizubringen. Aufgrund seiner technischen Fähigkeiten ist der Bot in den meisten Fällen in der Lage, die Quizfrage in der ersten Sekunde zu beantworten. Dies lässt jedoch sofort den Verdacht aufkommen: Die Person kann die Antwort nicht eingeben, sie hat in dieser Zeit nicht einmal Zeit, die gesamte Frage zu lesen. Ein weiteres Merkmal ist, dass eine Person nicht gleich schnell auf verschiedene Fragen reagiert: auf einfache - schnell, auf komplexe, nicht sehr. Wenn Sie die Antwort einfach erheblich verzögern, stellt sich heraus, dass Live-Teilnehmer auf einfache Fragen „klicken“ und der Bot alle komplexen Fragen meisterhaft beantwortet. Ein solcher „Gelehrter“, der die richtigen Antworten auf ganz andere Fachfragen gibt, wird sofort auf sich aufmerksam machen.Ich habe nicht begonnen, eine Bewertung der „Komplexität“ der Frage vorzunehmen.Im Screenshot in der Gruppe eines der Streamer sind sie empört über diejenigen, die nach Antworten auf das Quiz bei Google suchen:Um nicht unter normalen Zuschauern aufzufallen, mussten wir die Wahrscheinlichkeit, dass der Bot richtig reagiert, erheblich reduzieren: - Führen Sie eine Regel ein, um in nicht mehr als 30–40% der Fälle Antworten zu geben.
- Erhöhen Sie die Verzögerung, bevor Sie versuchen zu antworten (zufälliger Wert).
- Geben Sie in einigen Fällen die richtigen Antworten, obwohl gerade jemand die richtige Antwort gegeben hat, wodurch die Illusion entsteht, dass eine Person in den Chat schreibt.
Das Ergebnis solcher „Optimierungen“ (es ist seltsam, „Optimierung“ als Effizienzminderung zu bezeichnen) war, dass der Bot auf einem der sehr beliebten Kanäle mit mehreren tausend Live-Zuschauern und Quizfragen mit einer Häufigkeit von 1 bis 2 Minuten durchschnittlich 5 bis 7 Mal im Quiz gewann pro Stunde. Bei Kanälen, auf denen die Aktivität der Live-Zuschauer gering war, suchte die Gewinnwahrscheinlichkeit des Bots einfach nach der Grundwahrscheinlichkeit einer Antwort (20-30%).Gleichzeitig ermöglichte eine solche Untertreibung der Effizienz des Bots ein wenig „reines Gewissen“. Es stellte sich heraus, dass der Bot wenig antwortete und hauptsächlich in Fällen, in denen niemand im Publikum war, der die richtige Antwort wusste. Wir können sagen, dass der Bot mit „Googlern“ konkurrierte, dh mit denen, die die Antwort nicht sofort kannten, versuchten, sie im Internet zu finden, oder nur nach ein paar Tipps raten konnten.Natürlich konnte der Bot mit dieser Effizienz nicht auf kurze Distanz mit den Live-Teilnehmern des Quiz konkurrieren, was leicht die richtige Antwort vor dem Bot geben konnte. Beim Blick auf die zukünftigen Statistiken des Bots vor dem Hintergrund der Änderung in der Spitze wurde deutlich, dass ein aktiver Live-Spieler für einen begrenzten Zeitraum korrektere Antworten gibt als der Bot. Manchmal darf der Bot auf dem sehr aktiven Kanal anderthalb bis zwei Stunden lang nicht die richtige Antwort geben. Dieser Sachverhalt erwies sich als akzeptabel: Der Bot gab nicht viele richtige Antworten, ärgerte niemanden im Chat mit seiner Teilnahme und erregte keinen Verdacht, sondern bewegte sich stetig zum obersten Quiz, da er im Gegensatz zu einer Person nicht ruhte, nicht schlief, nicht schlief müde und nahm stetig an jedem Strom teil.
Irgendwann habe ich die Chat-Engine des Bots mit dem Bot "verschraubt", damit dieser auf private Nachrichten reagieren und versuchen kann, eine Person vollständig nachzuahmen. Der Motor zeigte sich nach den Artikeln im Internet in Turing-Tests sehr gut. Natürlich hat Twitch seine eigenen Besonderheiten beim Chatten: Sie müssen beispielsweise Nachrichten nur aus Emoticons filtern. Aber ziemlich oft war es möglich, die Illusion aufrechtzuerhalten, und manchmal erwiesen sich die Dialoge als ziemlich lustig. Es war ein wenig peinlich, dass der Bot manchmal den Gesprächspartner trollte und sich als 10-jähriges Mädchen präsentierte, aber im Großen und Ganzen war das Kommunikationsproblem gelöst.Hast du den Bot bemerkt?
Die Tatsache, dass der Bot zur gleichen Zeit fast 50 Kanäle an der Spitze hatte, bemerkte niemand. Hier, meiner Meinung nach, die große Fragmentierung der Zuschauergruppen sowie die Tatsache, dass von etwa zweitausend Kanälen, auf denen MirRobot verwendet wird, das Quiz nur in wenigen hundert enthalten war. Wenn wir über Kanäle sprechen, in denen es ein Quiz gab und in denen mindestens ein paar Dutzend Personen im Chat waren, dann gab es ~ 160 solcher Kanäle, und die meisten von ihnen waren entweder unregelmäßige seltene Streams oder Kanäle mit weniger als 50 Zuschauern (solche wurden ausdrücklich ausgeschlossen) ) oder Kanäle, auf denen sie nur kurz mit einem Quiz experimentiert haben. Es gab buchstäblich ein paar aktive Kanäle mit einem „großen“ Top, die nicht betreten werden konnten, und das Quiz auf ihnen war schon lange ausgeschaltet, aber das alte Top blieb.Die folgende Grafik zeigt, dass der Bot die Oberseite verschiedener Kanäle stetig betreten hat:Andererseits wurde der Bot auf Kanälen bemerkt, auf denen im Chat nur sehr wenig Aktivität stattfindet. Dies umfasste sowohl Kanäle, in denen es nur wenige Zuschauer gibt, als auch Kanäle, in denen die Zuschauer mit einer kleinen Anzahl von „lebenden“ Menschen zusammengebracht wurden. Auf mehreren Kanälen wurde der Bot zum Verbot geschickt. Was ihn verriet, wie ich es verstand, war:- Er antwortete nicht auf willkürliche Anrufe in privaten Nachrichten und im allgemeinen Chat. Mit der Chat-Bot-Engine habe ich viel später als zu Beginn des Projekts implementiert.
- Auf Rund-um-die-Uhr-Kanälen - rund um die Uhr war anwesend und wurde regelmäßig in einem Chat beantwortet.
Was ist mit anderen?
Viele Leute suchen nur nach Antworten bei Google. Sie mögen diese Leute im Chat nicht und kämpfen sogar aktiv gegen sie.Irgendwann hat der Autor des Bots damit begonnen, einige Buchstaben der Frage durch ähnlich aussehende englische Buchstaben zu ersetzen, was die Suche wirklich erschwerte. Google und Websites mit Fragendatenbanken wissen nicht, wie sie mit solchem Kauderwelsch umgehen sollen. Yandex kommt mit solchen Anfragen zurecht, was Google zumindest einige Chancen ließ. Für den Bot war die Aktualisierung des Parsing-Algorithmus keine große Sache.Es ist wie eine ewige Konfrontation zwischen einem Schild und einem Schwert. Sie können nur in kurzer Zeit einen Vorteil erzielen.Überraschenderweise stellte sich heraus, dass es andere Bots oder automatische Skripte zum Spielen des Quiz gibt! Mindestens einmal sah ich in einem Chat, dass jemand von einem völlig neuen Konto das Quiz buchstäblich innerhalb von 1 Sekunde beantwortete, nachdem die Frage aufgetaucht war.Es gab diejenigen, die nicht unbedingt als Bot oder Skript identifiziert werden konnten. In Bezug auf mehrere Spitznamen war ich mir jedoch nach mehreren Faktoren zu 90% sicher, dass irgendeine Art von Automatisierung verwendet wurde. Hier ist ein Beispiel für das Protokoll aller Nachrichten eines verdächtigen Teilnehmers in einem Kanal für 6 Stunden:Was kann an diesem Protokoll bemerkt werden:- Alle Beiträge sind sehr kurz und unabhängig. Dies ist ein Versuch, Antworten auf das Quiz zu geben. Neben dem Versuch, innerhalb weniger Stunden im Chat zu antworten, gab es nichts von diesem Teilnehmer. Das heißt, eine Person schreibt nichts mehr in den Chat.
- Alle Nachrichten werden groß geschrieben und es gibt keine Tippfehler.
- , . (, ) .
- 3–5 , 1–1,5 . , - , .
Das angegebene Protokoll ist für eine lebende Person sehr untypisch. Alles wird durch die Tatsache erschwert, dass für diesen Teilnehmer ein solches Verhalten nicht nur an einem Abend, sondern an 7 aufeinander folgenden Tagen beobachtet wird. Außerdem wurde diese Studie kürzlich registriert - Anfang September, wahrscheinlich nur für ein Quiz.Ich habe sogar versucht, sie persönlich zu diesem Thema zu sprechen, aber es fand kein verständlicher Dialog statt. Ob diese Leute einen Bot verwenden, eine Art teilweise automatisierte Hilfe oder einfach die ganze Nacht in Streams sitzen, um ein Quiz zu spielen - mit 100% iger Wahrscheinlichkeit ist es unmöglich zu bestimmen. Diese Frage ist noch offen.Gab es einen Vorteil?
Es war möglich, etwas zu bekommen, aber nein, es gab keinen Vorteil. Zuallererst bestand die Essenz des Experiments darin, keine Preise zu erhalten. Zweitens waren die Preise nicht wert.Auf einem der Kanäle findet beispielsweise ein wöchentlicher Wettbewerb statt, bei dem die besten Befragten in der World of Tanks mit Gold ausgezeichnet werden. Wie sich herausstellte, platzte der Bot stetig nach oben und konnte Preise erhalten. Es stellte sich später einfach heraus, indem nach dem in der Suchmaschine verwendeten Spitznamen gesucht wurde, der auf die Beiträge in der entsprechenden Community zeigte.Einige Statistiken
- Arbeitszeit: 4 Monate
- Die richtigen Antworten wurden gegeben: ~ 8 Tausend (durchschnittlich 60–70 pro Tag)
- Gesammelt in unserer eigenen Datenbank mit Fragen und Antworten: ~ 83 Tausend (Fragen insgesamt im Quiz 110 Tausend)
- Befindet sich in den Top ~ 50 Kanälen (von 160 mit einem Quiz)
- In mindestens 3 Kanälen verboten
Schlussfolgerung und Schlussfolgerungen
War es interessant - Ja. Die Entdeckung war, dass jemand auch das Quizspiel automatisierte.War das hilfreich? - Ja, aber nur als Entwicklung von Technologie und Schaffung von etwas Neuem.PS. Bisher arbeitet der Bot im automatischen Modus weiter. Wir gehen davon aus, dass das Experiment noch nicht das Endstadium erreicht hat. Wenn Sie also im intellektuellen Quiz kämpfen und den Gyrus belasten, stellen Sie sicher, dass Sie nicht gegen ein intelligentes Skript antreten. Source: https://habr.com/ru/post/de397521/
All Articles