Para Discord
Una API de moderación para tu bot de Discord
Tu bot envía cada mensaje junto con los últimos del canal. VigiMod responde con una puntuación por categoría y por regla, y el bot decide qué hacer: borrar, aislar temporalmente o avisar a los moderadores.
Por qué usarla en tu bot
Lee la conversación
Envía los mensajes anteriores como contexto: una respuesta, una broma o un spoiler se juzgan por lo que vino antes, no por una sola línea.
Las reglas de tu servidor
Escribe las reglas en lenguaje natural, como «nada de spoilers» o «prohibido vender cuentas», y obtén una puntuación para cada una. Sin listas de palabras que mantener.
26 idiomas
En las comunidades se mezclan idiomas. El modelo se entrenó en 26 y funciona mejor en italiano, inglés, español, francés, alemán y portugués.
Spam por usuario y por servidor
Pasa el id del autor y el id del servidor: los mensajes repetidos y el flood reciben una puntuación de spam, separada para cada servidor.
Cómo conectarla
- 1
Crea una clave
Crea una cuenta gratuita y una clave API en el panel. Guárdala en la máquina donde corre el bot.
- 2
Envía cada mensaje
Con cada mensaje nuevo, envía a POST /moderate el texto, los últimos mensajes del canal y tus reglas.
- 3
Actúa según la respuesta
Lee flagged y flags. Borra u oculta el mensaje, aísla al autor o envíalo a un canal de moderadores.
Ejemplo con 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);El bot necesita el intent Message Content, que se activa en el portal de desarrolladores de Discord. Si la API no responde, el mensaje se queda: la moderación nunca bloquea el chat.
Buenas prácticas
- Empieza con los umbrales predeterminados; súbelos si el bot borra demasiado o bájalos si se le escapa demasiado.
- Deja los baneos y otras acciones graves a una persona: VigiMod 1.2 es un modelo beta y puede equivocarse con mensajes ambiguos.
- Los mensajes se analizan y se descartan: VigiMod no los guarda ni los usa para entrenar modelos.
Preguntas
¿Es gratis?
Sí, durante la beta: todas las funciones, 120 mensajes por minuto por clave, hasta 10 claves.
¿Puedo usarla en muchos servidores?
Sí. Una clave sirve para todos los servidores del bot; pasa el id del servidor como scope para que el spam se cuente por servidor.
¿Funciona con discord.py y otras librerías?
Sí. Es una API HTTP normal: cualquier lenguaje o librería que pueda enviar una petición JSON puede usarla.
Añade moderación a tu bot
Gratis durante la beta. Una clave API se crea en un minuto.