Caso de uso

Moderação com IA para o chat da Twitch que conhece as regras do seu canal

Um chat da Twitch cheio anda mais depressa do que qualquer moderador consegue ler. A VigiMod verifica cada mensagem com as anteriores, em 26 idiomas, e segundo as regras do seu canal: o seu bot apaga o que as quebra e deixa as piadas em paz.

O que torna difícil

Rápido e cheio de piadas internas

Emotes, copypastas e provocações entre habituais parecem insultos fora de contexto. Ler as mensagens anteriores evita a maioria das marcações erradas.

Regras que nenhum filtro conhece

«Sem spoilers do jogo», «Sem backseat», «Sem autopromoção»: cada canal tem as suas, e as listas de palavras não as apanham.

Espetadores de todo o lado

Os canais grandes recebem chat em muitos idiomas, e as listas de palavras têm de ser reescritas para cada um. A VigiMod foi treinada em 26 idiomas.

Como funciona com a VigiMod

  1. 1

    O seu bot lê o chat (IRC ou EventSub) e guarda as últimas dez mensagens.

  2. 2

    Cada nova mensagem vai para a VigiMod com esse contexto, o id do autor e as regras do canal.

  3. 3

    Se a resposta vier assinalada, o bot apaga a mensagem com a API da Twitch, ou dá timeout ao utilizador após várias marcações.

Regras para copiar

Envie-as no campo rules: cada uma volta com a sua própria pontuação, como uma categoria integrada.

{
  "rules": {
    "no-spoilers": "Sem spoilers do jogo que está a ser jogado",
    "no-backseating": "Não dizer ao streamer como jogar se ele não pedir",
    "no-self-promo": "Sem promover o próprio canal ou redes sociais",
    "portuguese-only": "No chat, só português"
  }
}

Exemplo

Um bot em Node.js: o tmi.js lê o chat, a VigiMod verifica cada mensagem e a API da Twitch apaga-a se for assinalada (o token precisa do scope moderator:manage:chat_messages).

JavaScript (Node.js)

// npm install tmi.js  (Node 18+)
// tmi.js reads the chat; the Twitch API deletes a message (token scope: moderator:manage:chat_messages)
import tmi from "tmi.js";

const { VIGIMOD_KEY, TWITCH_TOKEN, TWITCH_CLIENT_ID, BROADCASTER_ID, MODERATOR_ID } = process.env;
const RULES = { "no-spoilers": "No spoilers about the game being played" };
const recent = [];                       // the last messages of the chat, sent as context

const client = new tmi.Client({ channels: ["your_channel"] });

client.on("message", async (channel, tags, text, self) => {
  if (self) return;
  const res = await fetch("https://api.vigimod.com/moderate", {
    method: "POST",
    headers: { "X-API-Key": VIGIMOD_KEY, "Content-Type": "application/json" },
    body: JSON.stringify({
      text: text.slice(0, 2000), context: [...recent], rules: RULES,
      user_id: tags["user-id"], scope: channel,
    }),
    signal: AbortSignal.timeout(2000),
  }).catch(() => null);                  // slow or down: let the message through
  recent.push(text.slice(0, 2000));
  if (recent.length > 10) recent.shift();
  if (!res?.ok) return;

  const result = await res.json();
  if (result.flagged) {
    const q = new URLSearchParams({ broadcaster_id: BROADCASTER_ID, moderator_id: MODERATOR_ID, message_id: tags.id });
    await fetch(`https://api.twitch.tv/helix/moderation/chat?${q}`, {
      method: "DELETE",
      headers: { Authorization: `Bearer ${TWITCH_TOKEN}`, "Client-Id": TWITCH_CLIENT_ID },
    });
  }
});

client.connect();

Dicas

  • Mantenha o AutoMod ligado: retém as mensagens antes de aparecerem; a VigiMod acrescenta depois as suas regras, o contexto e outros idiomas.
  • Apague à primeira marcação, mas dê timeout só após várias marcações do mesmo utilizador em pouco tempo.
  • Envie user_id e o canal como scope: mensagens repetidas e flood do mesmo utilizador aumentam a pontuação de spam.

Perguntas

A VigiMod substitui o AutoMod da Twitch?
Não, funciona em conjunto. O AutoMod vem integrado na Twitch e retém mensagens antes de serem mostradas; a VigiMod verifica as suas regras, lê o contexto e cobre 26 idiomas.
É rápida o suficiente para chat ao vivo?
Cada mensagem é uma chamada HTTP. Dê-lhe um timeout curto (cerca de dois segundos) e, se uma chamada falhar ou demorar, deixe passar a mensagem para o chat continuar.
E os canais com muito movimento?
A beta gratuita permite 120 mensagens por minuto por chave API. Se o seu chat for mais rápido, escreva ao suporte com o seu volume e o limite pode ser aumentado.
Posso usá-la em VODs ou clips?
A VigiMod verifica só texto. Pode verificar títulos, repetições do chat e comentários, mas não o vídeo nem o áudio.

Experimente na sua comunidade

Crie uma chave API gratuita em dois minutos. Sem cartão, sem período de teste.