Cómo funciona una API de moderación de comentarios
Tu web manda el texto antes de publicarlo y actúa según la respuesta: lo publica, lo retiene para que lo vea una persona o lo rechaza. Con ToxicFilter es un POST a /v1/text con el contenido. Puedes añadir los idiomas que esperas, dónde va a aparecer (un comentario, un anuncio, un perfil), la política que se aplica y tu propia referencia. La respuesta lleva un identificador que nombra esa decisión concreta, para la cola de revisión, para avisar de un falso positivo o para preguntar a soporte.
Quince categorías, no una nota de toxicidad
Spam, toxicidad, acoso, odio, contenido sexual, violencia, autolesiones, la seguridad de los menores, estafas, datos personales, texto disfrazado, texto sin sentido, contenido fuera de tema, inyección de instrucciones y tus propias listas de palabras. Cada una tiene un umbral para revisar y otro para bloquear. Algunas no bloquean nunca de serie: la toxicidad solo retiene, porque una palabrota no es un ataque, y las autolesiones también, porque a quien perjudica borrar ese mensaje es a quien lo escribió. Temas como las apuestas o las criptomonedas se miden en un eje aparte y no hacen nada hasta que una regla lo dice.
Insultos disfrazados y leetspeak
Un filtro que busca en el texto tal cual solo pilla a quien no lo intenta. Aquí no se busca nada sin normalizar antes: las letras de otros alfabetos que se parecen a las nuestras, los números en lugar de letras, los caracteres invisibles, los asteriscos, las tildes y las letras alargadas vuelven a la palabra que representan. Lo mucho que hubo que desenmascarar una palabra se mide por separado, en evasion. Las palabras permitidas se tapan antes de buscar, así que Scunthorpe, assess o cockpit no saltan nunca.
Rápido por la vía gratuita, y el modelo solo cuando aporta
Casi todos los comentarios son alguien escribiendo una frase normal, y pagar un modelo para leer cada uno es la forma de que la moderación cueste más que la web que protege. Las comprobaciones gratuitas se ejecutan siempre, y el modelo solo lee lo que ellas han dejado abierto. Una comprobación cuesta un crédito; cuando la lee el modelo se suman los tokens que ha usado, unos ocho créditos en total por comentario. Si el proveedor del modelo está caído, la respuesta lo dice con degraded en lugar de dar el comentario por leído.
Reglas por cuenta o por llamada
Empieza con los umbrales de serie o con una de las plantillas de política, para una comunidad, un marketplace o una web infantil. Una política guardada tiene versiones, y un cambio puede ejecutarse en modo sombra junto a la que está en vigor, para ver qué habría hecho con tu propio tráfico antes de que decida nada. Si prefieres no configurar nada, manda rules en la llamada: "bloquea el contenido sexual a partir de 0,7" es una sola petición, y las categorías que no mencionas no deciden nada.
Comentarios en ocho idiomas
Las listas de palabras y los patrones de frases cubren inglés, español, portugués, francés, italiano, alemán, catalán y neerlandés. Dile a la API qué idiomas esperas, y un texto en otro, o lleno de otro alfabeto, se señala como tal. El modelo lee muchos más idiomas, y effort: high lo hace entrar con un texto fuera de esos ocho.