Cas d'usage

Modération par IA du chat de jeu, dans toutes les langues de vos joueurs

Les jeux en ligne réunissent dans le même lobby des joueurs de nombreux pays, et la chambrerie peut tourner au harcèlement en quelques secondes. VigiMod vérifie chaque message sur votre serveur de jeu, en lisant ceux d'avant, dans 26 langues, avec des règles écrites pour votre jeu.

Ce qui rend la tâche difficile

Chambrerie ou harcèlement ?

« GG, trop facile » après une partie, c'est normal ; le même joueur qui attaque quelqu'un pour ce qu'il est, non. Le contexte et des catégories séparées font la différence.

Des lobbies mondiaux

Une partie peut mélanger espagnol, portugais, allemand et italien. Le modèle a été entraîné sur 26 langues.

Les règles de votre jeu

Vente de triche, échange de comptes ou spoilers sur la nouvelle saison sont des règles de votre jeu, pas des catégories génériques.

Comment ça marche avec VigiMod

  1. 1

    Votre serveur de jeu reçoit le message et garde les derniers messages du salon ou de la partie.

  2. 2

    Il les envoie à VigiMod avec l'identifiant du joueur, le salon comme scope et vos règles.

  3. 3

    Si le message est signalé, il n'est pas diffusé ; votre serveur peut avertir, rendre muet ou signaler le joueur.

Des règles à copier

Envoyez-les dans le champ rules : chacune revient avec son propre score, comme une catégorie intégrée.

{
  "rules": {
    "no-cheats": "Pas de vente ni de partage de triches, hacks ou exploits",
    "no-trading": "Pas d'échange de comptes ou d'objets contre de l'argent réel",
    "no-spoilers": "Pas de spoilers sur l'histoire de la nouvelle saison",
    "no-boosting": "Pas d'offres de boosting ni de vente de rangs"
  }
}

Exemple

Un serveur de chat Node.js avec WebSockets : chaque message est vérifié avant d'être envoyé aux autres joueurs.

JavaScript (Node.js)

// npm install ws  (Node 18+)
// A game chat server: each message is checked before it is sent to the room
import { WebSocketServer } from "ws";

const RULES = { "no-cheats": "No selling or sharing cheats, hacks or exploits" };
const recent = [];                       // the last messages of the room, sent as context
const wss = new WebSocketServer({ port: 8080 });

async function moderate(text, playerId) {
  const res = await fetch("https://api.vigimod.com/moderate", {
    method: "POST",
    headers: { "X-API-Key": process.env.VIGIMOD_KEY, "Content-Type": "application/json" },
    body: JSON.stringify({ text, context: [...recent], rules: RULES, user_id: playerId, scope: "room-1" }),
    signal: AbortSignal.timeout(2000),
  }).catch(() => null);
  return res?.ok ? res.json() : { flagged: false };   // slow or down: let the message through
}

wss.on("connection", (socket, req) => {
  const playerId = req.headers["x-player-id"] ?? "guest";   // use your own authenticated player id
  socket.on("message", async (data) => {
    const text = data.toString().slice(0, 2000);
    const result = await moderate(text, playerId);
    if (result.flagged) {
      socket.send(JSON.stringify({ type: "blocked", reason: "This message breaks the chat rules." }));
      return;
    }
    recent.push(text);
    if (recent.length > 10) recent.shift();
    for (const client of wss.clients) client.send(JSON.stringify({ type: "chat", playerId, text }));
  });
});

Conseils

  • Vérifiez les messages sur votre serveur, jamais depuis le client du jeu : la clé API ne doit pas être livrée avec le jeu.
  • Utilisez des seuils plus hauts pour toxic en mode compétitif et plus bas en mode famille : les seuils changent à chaque requête.
  • Si la vérification échoue ou traîne, laissez passer le message et notez-le, pour que le chat ne s'arrête pas.

Questions

Puis-je appeler VigiMod directement depuis Unity ou Unreal ?
Ne mettez pas la clé API dans la build du jeu : appelez VigiMod depuis votre serveur ou backend, qui décide ensuite quoi diffuser.
Modère-t-il le chat vocal ?
Non, seulement le texte. Si vous transcrivez la voix en texte, vous pouvez vérifier la transcription comme n'importe quel message.
Est-ce rapide ?
Un appel HTTP par message. Donnez-lui un délai court et laissez passer le message s'il traîne ; l'endpoint batch vérifie jusqu'à 20 messages en un appel.
Est-ce adapté aux jeux avec des enfants ?
Ajoutez la catégorie optionnelle child_safety (bêta), qui signale les tentatives d'approche d'un mineur, et envoyez ces signalements à une personne de votre équipe.

Essayez-le sur votre communauté

Créez une clé API gratuite en deux minutes. Sans carte, sans période d'essai.