Kuis untuk bot di Twitch.tv

Seperti yang Anda ketahui, ada bot di Twitch.tv. Saya tidak berbicara tentang bot "buruk" untuk menipu pemirsa atau obrolan, tetapi tentang bot yang memungkinkan streamer menambahkan satu atau fungsi lainnya ke aliran atau mengobrol selama aliran. Di antara yang paling terkenal adalah: Moobot, Nightbot, dan MirRobot. Yang terakhir akan dibahas. Mirrobot ditulis oleh rekan senegaranya dan sepatutnya termasuk jumlah bot paling populer. Salah satu fiturnya, yang sangat diminati, adalah melakukan kuis dalam obrolan. 

Inti dari kuis MirRobot: dengan frekuensi tertentu, bot mengajukan pertanyaan kepada penonton dalam obrolan. Jika dalam waktu tertentu, tidak ada yang bisa menjawab dengan benar, bot memberikan petunjuk yang menunjukkan jumlah huruf dalam jawaban dan mengungkapkan beberapa huruf (sesuai dengan prinsip "Gallows" atau "Fields of miracles").
Contoh gameplay kuis:

Segera setelah seseorang menjawab dengan benar, maka, pertama, ia dilakukan dengan baik, dan, kedua, bot ingat bahwa pemirsa inilah yang menjawab dengan benar. Daftar pemirsa yang memberikan jawaban paling benar untuk pertanyaan kuis juga tersedia dalam obrolan di tim khusus. Untuk setiap saluran, daftar ini berbeda.

Idenya


Suatu kali, bereksperimen dengan cara menemukan jawaban untuk pertanyaan sewenang-wenang di Internet, saya ingat kuis di Twitch dan memutuskan untuk mencoba membuat bot yang akan berpartisipasi dalam kuis sendiri. Juga menarik bagi saya untuk mengetahui apa yang akan terjadi jika pemain yang sama ada di puncak kuis di saluran yang sama sekali berbeda. Apakah ini akan menimbulkan kecurigaan pada audiens atau pengembang? Apa yang akan menjadi reaksi? Atau mungkin seseorang sudah membuat bot sebelum saya, dan tidak ada orang yang nyata di atas lagi?

Versi kerja pertama dari bot ditulis dalam semalam pada hari libur Mei. Bot dapat terhubung ke saluran yang diinginkan di Twitch, menganalisis obrolan, mengenali kapan pertanyaan kuis muncul dalam obrolan, dan mencari jawabannya di Internet.

Sayangnya, kami tidak dapat segera menemukan layanan normal yang dapat menjawab pertanyaan sewenang-wenang dalam bahasa Rusia. Google dan Yandex tidak cocok untuk tujuan tersebut, karena mereka tidak memberikan jawaban yang sudah jadi, tetapi tautan ke halaman di Internet yang perlu, setidaknya, dianalisis secara minimal. Bagi seseorang, analisis semacam itu bukan masalah, tetapi bagaimana membuatnya menjadi mobil adalah tugas yang terpisah. Idealnya, saya mencari sesuatu yang mirip dengan Wolfram Alpha, tetapi dengan dukungan untuk bahasa Rusia. By the way, jika ada yang ada dalam pikiran, layanan terbuka - tulis dalam komentar.

Implementasi


Untuk kuis di Twitch, ternyata cukup untuk mencari jawaban di salah satu dari banyak situs yang didedikasikan untuk teka-teki silang, kata kunci, dan permainan serupa lainnya. Pada prinsipnya, setelah mencoba beberapa situs serupa, saya memilih situs tempat format paling sederhana dari halaman hasil pencarian muncul. Ke depan, saya akan mengatakan bahwa basis utama MirRobot terdiri dari "pertanyaan dari teka-teki silang". Efisiensi algoritma untuk pertanyaan-pertanyaan pendidikan umum ternyata cukup tinggi (70%), dan, setelah menulis bot ini berfungsi sejak awal, kami tidak perlu kembali ke sana lagi.

Setelah serangkaian perbaikan, bot dapat: 
  • Berhasil memainkan kuis secara bersamaan di beberapa saluran obrolan.
  • Temukan saluran baru secara mandiri tempat MirRobot dinyalakan dan ada beberapa pemirsa minimum.
  • Jaga database Anda dari jawaban yang benar untuk pertanyaan agar tidak bergantung pada efektivitas pencarian di jaringan dan dapat menjawab pertanyaan spesifik tentang permainan komputer.
  • Catat bagian atas peserta kuis di saluran dan perhitungkan posisi mereka di atas untuk menentukan jawabannya;
  • Hubungkan kembali jika terputus dari Internet.
  • Periksa korespondensi dari jawaban yang Anda harapkan dan pertanyaan dalam kuis.
  • Bekerja sepenuhnya secara mandiri: host di cloud PaaS, kirim analitik yang diperlukan ke web untuk memantau dan memelihara database di DBaaS.
  • Simulasikan obrolan dengan penyebutan pribadi (fungsi ini diimplementasikan jauh kemudian).
  • Simulasikan langkah dan cara respons seseorang.

Apa yang tidak berhasil atau tidak diterapkan karena berbagai alasan:
  • Deteksi apakah bot dilarang di obrolan di saluran tidak diterapkan.
  • Ada dua bug mengganggu yang tidak bisa saya perbaiki. Dalam hal pendeteksian mereka, bot hanya reboot.


Teknologi yang digunakan:
  • Python 3 (sekitar 1 ribu baris kode).
  • IRC (Obrolan Twitch sebenarnya adalah obrolan IRC).
  • Pelayan / Labu untuk antarmuka web.
  • MongoDB (mlab.com).
  • PaaS IBM Bluemix.

Akibatnya, kemerdekaan penuh bot tercapai. Tantangan global telah tercapai. 2 bulan terakhir bot bekerja secara mandiri.

Bot vs manusia



Kemampuan untuk tidak menonjol adalah yang paling penting untuk keberhasilan operasi bot. Cukup mudah untuk mengajarkan bot untuk menjawab pertanyaan. Berdasarkan kemampuan teknisnya, bot dalam kebanyakan kasus mampu menjawab pertanyaan kuis di detik pertama, tetapi ini segera menimbulkan kecurigaan: orang tersebut tidak mengetik jawaban, ia bahkan tidak punya waktu untuk membaca seluruh pertanyaan selama waktu ini. Fitur lain adalah bahwa seseorang tidak merespon dengan sama cepatnya terhadap pertanyaan yang berbeda: untuk yang sederhana - cepat, untuk yang kompleks tidak terlalu. Oleh karena itu, jika Anda cukup menunda beberapa jawaban, ternyata peserta langsung akan "mengklik" pertanyaan sederhana, dan bot akan dengan ahli menjawab semua pertanyaan yang rumit. "Sarjana" seperti itu, yang memberikan jawaban yang benar untuk pertanyaan khusus yang sama sekali berbeda, akan segera menarik perhatian kepada diri sendiri.Saya tidak mulai menerapkan penilaian terhadap "kompleksitas" dari pertanyaan itu.

Dalam tangkapan layar di grup salah satu streamer, mereka marah tentang mereka yang mencari jawaban untuk kuis di Google:

Akibatnya, agar tidak menonjol di antara pemirsa biasa, kami harus mengurangi kemungkinan bot merespons secara benar: 
  • Perkenalkan aturan untuk memberikan jawaban tidak lebih dari 30-40% kasus.
  • Tambah penundaan sebelum mencoba menjawab (nilai acak).
  • Dalam beberapa kasus, berikan jawaban yang benar, terlepas dari kenyataan bahwa seseorang hanya memberikan jawaban yang benar, menciptakan ilusi bahwa seseorang menulis ke obrolan.

Hasil dari "optimasi" (aneh untuk menyebut "optimasi" penurunan efisiensi) adalah bahwa di salah satu saluran yang sangat populer dengan beberapa ribu pemirsa langsung dan pertanyaan kuis dengan frekuensi 1-2 menit, bot menang rata-rata 5-7 kali dalam kuis per jam. Untuk saluran di mana aktivitas pemirsa langsung rendah, probabilitas bot untuk menang hanya mencari probabilitas dasar dari suatu respons (20-30%).

Pada saat yang sama, pernyataan yang terlalu rendah tentang efisiensi bot memungkinkan sedikit “hati nurani yang bersih”. Ternyata bot itu menjawab sedikit dan terutama dalam kasus-kasus ketika tidak ada seorang pun di antara hadirin yang akan tahu jawaban yang benar. Kita dapat mengatakan bahwa bot bersaing dengan "googler", yaitu, dengan mereka yang tidak segera mengetahui jawabannya, mencoba menemukannya di Internet, atau hanya bisa menebak setelah beberapa tips.
Tentu saja, dengan efisiensi seperti itu, bot tidak dapat bersaing dengan peserta kuis langsung, yang dapat dengan mudah memberikan jawaban yang benar sebelum bot. Melihat melalui statistik bot di masa depan dengan latar belakang perubahan di atas, jelas sekali bahwa pemain aktif aktif untuk periode waktu terbatas memberikan jawaban yang lebih benar daripada bot. Terkadang, pada saluran yang sangat aktif, bot mungkin tidak diizinkan untuk memberikan jawaban yang benar selama satu setengah hingga dua jam. Keadaan ini ternyata dapat diterima: bot tidak memberikan banyak jawaban yang benar, tidak mengganggu siapa pun dalam obrolan dengan partisipasinya dan tidak menimbulkan kecurigaan, tetapi terus bergerak ke kuis teratas, karena fakta bahwa, tidak seperti orang, ia tidak beristirahat, tidak tidur, tidak lelah, dan terus berpartisipasi dalam setiap aliran.

Pada titik tertentu, saya "mengacaukan" mesin obrolan bot ke bot sehingga dapat menanggapi pesan pribadi dan mencoba untuk sepenuhnya meniru seseorang. Mesin, dilihat dari artikel di Internet, menunjukkan dirinya dengan sangat baik dalam tes Turing. Tentu saja, Twitch memiliki spesifik obrolan: misalnya, Anda perlu memfilter pesan dari emotikon saja. Tetapi cukup sering itu mungkin untuk mempertahankan ilusi, dan kadang-kadang dialog ternyata cukup lucu. Agak memalukan bahwa kadang-kadang bot itu mengendalikan lawan bicara dan menampilkan dirinya sebagai gadis berusia 10 tahun, tetapi secara keseluruhan masalah komunikasi terpecahkan.

Pernahkah Anda memperhatikan bot?


Fakta bahwa bot berada di atas pada saat yang sama hampir 50 saluran, tidak ada yang memperhatikan. Di sini, menurut pendapat saya, fragmentasi hebat dari kelompok-kelompok audiens, serta fakta bahwa dari sekitar 2 ribu saluran di mana MirRobot digunakan, kuis itu dimasukkan hanya dalam beberapa ratus. Jika kita berbicara tentang saluran di mana ada kuis, dan di mana ada setidaknya beberapa lusin orang dalam obrolan, maka ada ~ 160 saluran seperti itu, dan sebagian besar dari mereka adalah aliran langka yang tidak teratur atau saluran dengan kurang dari 50 pemirsa (seperti itu secara khusus dikecualikan ), atau saluran tempat mereka hanya bereksperimen secara singkat dengan kuis. Ada beberapa saluran aktif dengan atasan "besar", yang tidak dapat dimasukkan, dan kuis pada mereka sudah dimatikan untuk waktu yang lama, tetapi atasan lama tetap ada.
Grafik di bawah ini menunjukkan bahwa bot terus memasuki bagian atas berbagai saluran:

Di sisi lain, bot terlihat di saluran di mana ada sedikit aktivitas dalam obrolan. Ini termasuk kedua saluran di mana hanya ada sedikit pemirsa, dan saluran di mana pemirsa ditutup dengan sejumlah kecil orang "hidup". Pada beberapa saluran, bot dikirim ke larangan. Apa yang mengkhianatinya, seperti yang saya mengerti, adalah:
  • Dia tidak menanggapi panggilan sewenang-wenang kepadanya dalam pesan pribadi dan dalam obrolan umum. Menggunakan mesin bot obrolan saya menerapkan lebih lambat dari awal proyek.
  • Pada saluran sepanjang waktu - sekitar jam hadir dan secara berkala menjawab dalam obrolan.

Bagaimana dengan orang lain?


Banyak orang hanya mencari jawaban di Google. Mereka tidak menyukai orang-orang ini dalam obrolan, dan bahkan secara aktif berperang melawan mereka.

Jadi, pada titik tertentu, penulis bot baru mulai mengganti beberapa surat dari pertanyaan dengan surat berbahasa Inggris yang mirip, yang benar-benar mempersulit pencarian. Google dan situs dengan basis data pertanyaan tidak tahu bagaimana menangani omong kosong semacam itu. Yandex mengatasi permintaan semacam itu, yang membuat Google setidaknya memiliki beberapa peluang. Adapun bot, memperbarui algoritma parsing bukan masalah besar.

Itu seperti konfrontasi abadi antara perisai dan pedang. Anda bisa mendapatkan keuntungan hanya dalam periode waktu singkat.

Anehnya, ternyata ada bot atau skrip otomatis untuk memainkan kuis! Setidaknya sekali, saya melihat dalam obrolan bahwa seseorang dari akun yang benar-benar baru menjawab kuis secara harfiah dalam 1 detik setelah pertanyaan muncul.

Ada orang-orang yang tidak dapat diidentifikasi tanpa syarat sebagai bot atau skrip. Namun demikian, mengenai beberapa nama panggilan, dilihat dari beberapa faktor, saya yakin 90% bahwa beberapa jenis otomasi digunakan. Berikut adalah contoh log semua pesan dari peserta yang mencurigakan dalam satu saluran selama 6 jam:

Apa yang bisa diperhatikan oleh log ini:
  • Semua posting sangat pendek dan tidak terkait. Ini adalah upaya untuk memberikan jawaban pada kuis. Selain mencoba menjawab dalam obrolan dalam beberapa jam, tidak ada apa-apa dari peserta ini. Artinya, seseorang tidak menulis apa pun untuk obrolan lagi.
  • Semua pesan ditulis dengan huruf besar dan tidak ada kesalahan ketik.
  • , . (, ) .
  • 3–5 , 1–1,5 . , - , .

Log yang diberikan sangat tidak lazim untuk orang yang masih hidup. Semuanya diperparah oleh fakta bahwa bagi peserta ini perilaku seperti itu diamati bukan hanya satu malam, tetapi selama 7 hari berturut-turut. Ditambah lagi, penelitian ini didaftarkan baru-baru ini - pada awal September, mungkin hanya demi kuis.

Saya bahkan mencoba membicarakannya secara pribadi dengan topik ini, tetapi dialog yang masuk akal tidak terjadi. Apakah orang-orang ini menggunakan bot, semacam bantuan terotomatisasi sebagian, atau hanya duduk di aliran sepanjang malam untuk memainkan kuis - dengan probabilitas 100% tidak mungkin untuk ditentukan. Pertanyaan ini masih terbuka.

Apakah ada manfaatnya?


Itu mungkin untuk mendapatkan sesuatu, tetapi tidak, tidak ada manfaatnya. Pertama-tama, esensi dari percobaan ini bukan untuk mendapatkan hadiah. Kedua, hadiahnya tidak sepadan.

Misalnya, di salah satu saluran diadakan kontes mingguan di mana responden teratas diberikan emas di World of Tanks. Ternyata, bot terus meledak ke atas dan bisa menerima hadiah. Ternyata nanti hanya dengan mencari nama panggilan yang digunakan di mesin pencari, yang menunjuk ke posting di komunitas yang sesuai.

Beberapa statistik


  • Waktu kerja: 4 bulan
  • Jawaban yang benar diberikan: ~ 8 ribu (rata-rata 60-70 per hari)
  • Dikumpulkan di database kami sendiri pertanyaan dan jawaban: ~ 83 ribu (total pertanyaan dalam kuis 110 ribu)
  • Terletak di atas ~ 50 saluran (dari 160 dengan kuis)
  • Dilarang di setidaknya 3 saluran



Kesimpulan dan Kesimpulan


Apakah itu menarik? - Ya. Pengungkapannya adalah bahwa seseorang juga mengotomatiskan permainan kuis.

Apakah ini bermanfaat? - Ya, tetapi hanya sebagai pengembangan teknologi dan penciptaan sesuatu yang baru.

PS. Sejauh ini, bot terus bekerja dalam mode otomatis. Kami berasumsi bahwa percobaan belum mencapai tahap akhir. Jadi, jika Anda bertempur dalam kuis intelektual, melelahkan gyrus, pastikan Anda tidak tahan terhadap skrip cerdas.

Source: https://habr.com/ru/post/id397521/


All Articles