ReleaseInsight · On RadarHabr AI→ original

Anti-Spam Bot TAB Gets a Personal Dashboard and Website: 13,000 Spam Messages Removed, 0.39% Error Rate

The author of the Telegram bot TAB, which removes spam using its own LSTM model with attention, has summed up six months of work. The bot runs in 68 chats, has checked 527,554 messages and found 13,422 spam messages with a 0.39% error rate. Mode management has moved from the chat to a personal dashboard at /lk, and a whitelist has been added. The main unsolved problem is spam in the form of images and stickers.

AI-processed from Habr AI; edited by Hamidun News
Anti-Spam Bot TAB Gets a Personal Dashboard and Website: 13,000 Spam Messages Removed, 0.39% Error Rate
Source: Habr AI. Collage: Hamidun News.
Listen to article
Article Fact Sheet & Key Figures
ParameterDetails
Primary sourceHabr AI ↗
Editor-in-Chief
Key metric #1Spam is 2.54% of traffic, peaking on weekdays around noon Moscow time
Key metric #2A ban happens only if both the spammer database and the model trigger
Key metric #3OCR (Tesseract, EasyOCR, RapidOCR) failed to handle images

Pet projects usually die a month after the first post. TAB, a Telegram bot that deletes spam on its own, has been alive for more than a year and is growing. Six months ago it had two admin commands and a promise to "build a dashboard someday." Now it has a website, documentation and a personal dashboard.

The Results in Numbers

The bot is a member of 68 chats. 527,554 messages have passed through it, and 13,422 of them turned out to be spam. That is 2.54% of traffic, roughly every 39th message. 11,193 spammers have been banned, and the model's error rate is 0.39%. The model is an LSTM with an attention mechanism, trained on the author's own library, LANCETNIC. The author did not use ready-made models from Hugging Face.

The heat map on the website shows that botnets keep a fairly human schedule. Activity runs from 8 a.m. to 6 p.m. Moscow time, peaks at noon on weekdays, goes quiet at night, and Sunday is the calmest day. For an admin this is a practical signal: manual moderation can be planned around working hours.

Personal Dashboard and Whitelist

Previously, the mode was switched with the /handbot and /autobot commands right in the chat. Everyone in the chat sees the command, and if you have five chats, you have to type it five times. Now the owner messages the bot privately with /lk, selects a chat and changes the mode or opens the whitelist in one click.

There are two modes. In automatic mode, the neural network checks every message and immediately deletes spam. In standard mode, when in doubt, the bot calls moderators, who press "This is spam" or "This is not spam." The first button keeps the message and adds it to the dataset for further training; the second deletes the message and bans the author. This way, admins label data for free without even noticing.

The whitelist addresses a typical pain point: an advertiser has made a deal with the admins, but the bot cuts their posts as spam. You can add a person by numeric ID or by forwarding their message to the bot. The bot fully ignores such users. For now the dashboard is available only to chat owners, not to all administrators.

Protection against false bans is simple. An automatic ban happens only if the user is in the global spammer database and the model has classified the message as spam. There are now three checks, but the author does not disclose what is verified at the third level, so that people do not learn to bypass it.

What Broke and What It Teaches

In the summer the author did not retrain the model for two months, and the bot began to miss blatant spam. In July he assembled a fresh dataset of 30,000 rows. For the "not spam" class he added comments from city communities on VKontakte to diversify ordinary speech. In one retraining, Adam was replaced with RAdam; the production results are still being observed. The lesson is familiar to anyone who runs ML in production: data goes stale, and spammers adapt faster than it seems.

The most painful topic is spam in images and stickers. A text model simply does not see it. Tesseract, EasyOCR and RapidOCR failed. Qwen coped, but it cannot be run locally, and an API would be costly for a hobby project. The author honestly admits he does not yet know what to do. He also suspects that his LSTM "does not work like an LSTM" and plans to rebuild the architecture.

Takeaways

If you are building moderation for a community, three things are worth taking: manual confirmation as a free source of labeled data, a dual condition for bans, and regular retraining on fresh data. If you face image spam, there appears to be no cheap OCR solution. You will have to compare the cost of a multimodal LLM with your own image model.

The limitations are obvious. This is a one-person pet project, the metrics are reported by the author himself and were not independently verified, and the 0.39% error rate was calculated from his own labeling. But as an example of how a small product grows real infrastructure, the story is useful. The statistics website is tab.lancetnic.ru, and the bot is @tantispam_bot.

Story

Key Questions Answered

What are the key details on The Results in Numbers?

The bot is a member of 68 chats. 527,554 messages have passed through it, and 13,422 of them turned out to be spam. That is 2.54% of traffic, roughly every 39th message. 11,193 spammers have been banned, and the model's error rate is 0.39%. The model is an LSTM with an attention mechanism, trained on the author's own library, LANCETNIC. The author did not use ready-made models from Hugging Face. The heat map on the website shows that botnets keep a fairly human schedule. Activity runs from 8 a.m. to 6 p.m.

What are the key details on Personal Dashboard and Whitelist?

Previously, the mode was switched with the /handbot and /autobot commands right in the chat. Everyone in the chat sees the command, and if you have five chats, you have to type it five times. Now the owner messages the bot privately with /lk, selects a chat and changes the mode or opens the whitelist in one click. There are two modes. In automatic mode, the neural network checks every message and immediately deletes spam.

What Broke and What It Teaches?

In the summer the author did not retrain the model for two months, and the bot began to miss blatant spam. In July he assembled a fresh dataset of 30,000 rows. For the "not spam" class he added comments from city communities on VKontakte to diversify ordinary speech. In one retraining, Adam was replaced with RAdam; the production results are still being observed. The lesson is familiar to anyone who runs ML in production: data goes stale, and spammers adapt faster than it seems.

ZK
Zhemal Khamidun — CPO at Alpina Digital, product manager of AlpinaGPT. Building AI products since 2019. Hamidun News is a pet project that grew into a production aggregator with 6,000+ readers.
✦ 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
What do you think?
Loading comments…