Für Discord
Eine Moderations-API für deinen Discord-Bot
Dein Bot schickt jede Nachricht zusammen mit den letzten des Kanals. VigiMod antwortet mit einem Score pro Kategorie und pro Regel, und der Bot entscheidet, was passiert: löschen, Timeout geben oder die Moderatoren informieren.
Warum Bots sie nutzen
Sie liest das Gespräch
Schick die vorherigen Nachrichten als Kontext mit: Eine Antwort, ein Witz oder ein Spoiler wird nach dem beurteilt, was davor kam, nicht nach einer einzelnen Zeile.
Die Regeln deines Servers
Schreib Regeln in normaler Sprache, etwa „keine Spoiler“ oder „kein Verkauf von Accounts“, und erhalte für jede einen Score. Keine Wortlisten zu pflegen.
26 Sprachen
In Communities werden Sprachen gemischt. Das Modell wurde mit 26 Sprachen trainiert und funktioniert am besten auf Italienisch, Englisch, Spanisch, Französisch, Deutsch und Portugiesisch.
Spam pro Nutzer und Server
Übergib die ID des Autors und die ID des Servers: Wiederholte Nachrichten und Flooding bekommen einen Spam-Score, getrennt für jeden Server.
So bindest du sie ein
- 1
Schlüssel erstellen
Erstelle ein kostenloses Konto und einen API-Schlüssel im Dashboard. Bewahre ihn auf dem Rechner auf, auf dem der Bot läuft.
- 2
Jede Nachricht senden
Schick bei jeder neuen Nachricht den Text, die letzten Nachrichten des Kanals und deine Regeln an POST /moderate.
- 3
Auf die Antwort reagieren
Lies flagged und flags. Lösche oder verstecke die Nachricht, gib dem Autor einen Timeout oder melde sie in einem Moderatoren-Kanal.
Beispiel mit discord.js
import { Client, GatewayIntentBits } from "discord.js";
const client = new Client({
intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, GatewayIntentBits.MessageContent],
});
// your server's rules, in plain language
const RULES = { "no-spoilers": "No spoilers about movies or series" };
client.on("messageCreate", async (message) => {
if (message.author.bot || !message.content) return;
// the last messages of the channel, oldest first
const previous = await message.channel.messages.fetch({ limit: 5, before: message.id });
const context = [...previous.values()].reverse().map((m) => m.content).filter(Boolean);
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: message.content.slice(0, 2000),
context,
rules: RULES,
user_id: message.author.id, // turns on the spam score
scope: message.guildId, // spam is counted per server
}),
});
if (!res.ok) return; // the API did not answer: the message stays
const result = await res.json();
if (!result.flagged) return;
const why = Object.keys(result.flags).filter((k) => result.flags[k]).join(", ");
await message.delete();
await message.channel.send(`${message.author}, your message was removed (${why}).`);
});
client.login(process.env.DISCORD_TOKEN);Der Bot braucht den Message Content Intent, den du im Discord-Entwicklerportal aktivierst. Antwortet die API nicht, bleibt die Nachricht stehen: Die Moderation blockiert nie den Chat.
Gute Praxis
- Starte mit den Standard-Schwellenwerten; erhöhe sie, wenn der Bot zu viel entfernt, oder senke sie, wenn ihm zu viel entgeht.
- Überlass Bans und andere schwere Maßnahmen einem Menschen: VigiMod 1.2 ist ein Beta-Modell und kann sich bei mehrdeutigen Nachrichten irren.
- Nachrichten werden geprüft und verworfen: VigiMod speichert sie nicht und nutzt sie nicht zum Training von Modellen.
Fragen
Ist es kostenlos?
Ja, während der Beta: alle Funktionen, 120 Nachrichten pro Minute pro Schlüssel, bis zu 10 Schlüssel.
Kann ich es auf vielen Servern nutzen?
Ja. Ein Schlüssel reicht für alle Server des Bots; übergib die Server-ID als scope, damit Spam pro Server gezählt wird.
Funktioniert es mit discord.py und anderen Bibliotheken?
Ja. Es ist eine normale HTTP-API: Jede Sprache und Bibliothek, die eine JSON-Anfrage senden kann, kann sie nutzen.
Bring Moderation in deinen Bot
Kostenlos während der Beta. Ein API-Schlüssel ist in einer Minute erstellt.