LançamentoAnálise · No radarHabr AI→ original

Bot antispam TAB ganha painel pessoal e site: 13 mil spams removidos e 0,39% de erros

O autor do bot do Telegram TAB, que remove spam com seu próprio modelo LSTM com atenção, fez o balanço de seis meses. O bot atua em 68 chats, verificou 527.554 mensagens e encontrou 13.422 spams com 0,39% de erros. O gerenciamento de modos saiu do chat e foi para um painel pessoal em /lk, e também surgiu uma lista de permissões. O principal problema sem solução é o spam em forma de imagens e stickers.

Processado por IA de Habr AI; editado por Hamidun News
Bot antispam TAB ganha painel pessoal e site: 13 mil spams removidos e 0,39% de erros
Fonte: Habr AI. Colagem: Hamidun News.
Ouvir artigo
Ficha técnica e números-chave
ParâmetroDados
Fonte originalHabr AI ↗
Editor-chefe
Dado-chave #1Spam é 2,54% do tráfego, com pico em dias úteis por volta do meio-dia, horário de Moscou
Dado-chave #2O banimento só ocorre se a base de spammers e o modelo dispararem juntos
Dado-chave #3O OCR (Tesseract, EasyOCR, RapidOCR) não deu conta das imagens

Projetos pessoais costumam morrer um mês depois da primeira publicação. O TAB, um bot do Telegram que apaga spam sozinho, está vivo há mais de um ano e continua crescendo. Seis meses atrás, tinha dois comandos de administrador e a promessa de "algum dia fazer um painel". Agora tem site, instruções e painel pessoal.

Os resultados em números

O bot está em 68 chats. Passaram por ele 527.554 mensagens, 13.422 das quais eram spam. Isso dá 2,54% do tráfego, aproximadamente uma em cada 39 mensagens. Foram banidos 11.193 spammers, e a taxa de erro do modelo é de 0,39%. O modelo é uma LSTM com mecanismo de atenção, treinada na biblioteca própria do autor, a LANCETNIC. O autor não usou modelos prontos do Hugging Face.

O mapa de calor no site mostra que as fazendas de bots seguem um horário bem humano. A atividade vai das 8h às 18h, horário de Moscou, com pico ao meio-dia em dias úteis, silêncio à noite e domingo como o dia mais calmo. Para o administrador, é um sinal prático: a moderação manual pode ser planejada conforme o horário comercial.

Painel pessoal e lista de permissões

Antes, o modo era trocado pelos comandos /handbot e /autobot direto no chat. Todos os participantes veem o comando, e se você tem cinco chats, precisa digitá-lo cinco vezes. Agora o proprietário escreve ao bot no privado /lk, escolhe um chat e, com um clique, muda o modo ou abre a lista de permissões.

São dois modos. No automático, a rede neural verifica cada mensagem e apaga o spam imediatamente. No padrão, em caso de suspeita o bot chama os moderadores, que clicam em "É spam" ou "Não é spam". O primeiro botão mantém a mensagem e a adiciona ao dataset para retreinamento; o segundo apaga a mensagem e bane o autor. Assim, os administradores, sem perceber, rotulam dados de graça.

A lista de permissões resolve uma dor típica: um anunciante combinou com os administradores, mas o bot corta as publicações dele como spam. É possível adicionar uma pessoa pelo ID numérico ou encaminhando a mensagem dela ao bot. O bot ignora completamente esses usuários. Por enquanto, o painel está disponível apenas para os proprietários dos chats, não para todos os administradores.

A proteção contra banimentos falsos é simples. O banimento automático ocorre somente se o usuário estiver na base global de spammers e o modelo tiver classificado a mensagem como spam. Agora são três verificações, mas o autor não revela o que é checado no terceiro nível, para que não aprendam a contorná-lo.

O que quebrou e o que isso ensina

No verão, o autor ficou dois meses sem retreinar o modelo, e o bot começou a deixar passar spam explícito. Em julho, ele montou um dataset novo de 30.000 linhas. Para a classe "não spam", adicionou comentários de comunidades de cidades no VKontakte, para diversificar a fala comum. Em um dos retreinamentos, o Adam foi substituído pelo RAdam; o resultado em produção ainda está sendo observado. A lição é conhecida de quem mantém ML em produção: os dados envelhecem, e os spammers se adaptam mais rápido do que parece.

O tema mais doloroso é o spam em imagens e stickers. Um modelo de texto simplesmente não o enxerga. Tesseract, EasyOCR e RapidOCR falharam. O Qwen funcionou, mas não dá para rodá-lo localmente, e uma API sairia cara para um projeto de hobby. O autor admite com honestidade que ainda não sabe o que fazer. Ele também suspeita que sua LSTM "não funciona como uma LSTM" e pretende refazer a arquitetura.

O que tirar disso

Se você constrói moderação para uma comunidade, vale levar três lições: a confirmação manual como fonte gratuita de rotulagem, a condição dupla para banimento e o retreinamento regular com dados novos. Se você enfrenta spam em imagens, parece não haver uma solução barata de OCR. Será preciso comparar o custo de um LLM multimodal com o de um modelo próprio para imagens.

As limitações são óbvias. É um projeto pessoal de uma só pessoa, as métricas foram apresentadas pelo próprio autor e não foram verificadas de forma independente, e os 0,39% de erros foram calculados com base na rotulagem dele mesmo. Mas, como exemplo de como um produto pequeno ganha infraestrutura de verdade, a história é útil. O site com estatísticas é tab.lancetnic.ru e o bot é @tantispam_bot.

História

Perguntas frequentes sobre a notícia

O que se sabe sobre Os resultados em números?

O bot está em 68 chats. Passaram por ele 527.554 mensagens, 13.422 das quais eram spam. Isso dá 2,54% do tráfego, aproximadamente uma em cada 39 mensagens. Foram banidos 11.193 spammers, e a taxa de erro do modelo é de 0,39%. O modelo é uma LSTM com mecanismo de atenção, treinada na biblioteca própria do autor, a LANCETNIC. O autor não usou modelos prontos do Hugging Face. O mapa de calor no site mostra que as fazendas de bots seguem um horário bem humano.

O que se sabe sobre Painel pessoal e lista de permissões?

Antes, o modo era trocado pelos comandos /handbot e /autobot direto no chat. Todos os participantes veem o comando, e se você tem cinco chats, precisa digitá-lo cinco vezes. Agora o proprietário escreve ao bot no privado /lk, escolhe um chat e, com um clique, muda o modo ou abre a lista de permissões. São dois modos. No automático, a rede neural verifica cada mensagem e apaga o spam imediatamente. No padrão, em caso de suspeita o bot chama os moderadores, que clicam em "É spam" ou "Não é spam".

O que quebrou e o que isso ensina?

No verão, o autor ficou dois meses sem retreinar o modelo, e o bot começou a deixar passar spam explícito. Em julho, ele montou um dataset novo de 30.000 linhas. Para a classe "não spam", adicionou comentários de comunidades de cidades no VKontakte, para diversificar a fala comum. Em um dos retreinamentos, o Adam foi substituído pelo RAdam; o resultado em produção ainda está sendo observado. A lição é conhecida de quem mantém ML em produção: os dados envelhecem, e os spammers se adaptam mais rápido do que parece.

ZK
Zhemal Khamidun — CPO da Alpina Digital, gerente de produto do AlpinaGPT. Cria produtos de IA desde 2019. O Hamidun News é um projeto pessoal que virou um agregador em produção com mais de 6.000 leitores.
✦ Private AI Builders Community · Vibe Club

Ship AI Faster with Founders, Engineers & Weekly Architecture Reviews

Inside Vibe Club (hamidun.com/club) — weekly live masterminds with Zhemal Khamidun, Tech Radar, full LMS access, and 370+ production Claude Code skills.

Join Vibe Club →Explore Hamidun Academy
O que você acha?
Carregando comentários…