сайт в бете
нашли баг? напишите
левин. записаться
весь блог

Бот, который проверяет вывеску по 168-ФЗ до прихода проверки

Собрал Telegram-бота, который по фото вывески отвечает на один вопрос: есть ли нарушение закона о русском языке. Рассказываю, зачем это понадобилось и как устроено внутри.

Л
Проект Левин
автор

Владелец кофейни присылает мне фото своей вывески и спрашивает: «У меня тут CoffeeRoom большими буквами, это вообще законно?» Я лезу читать 168-ФЗ, потом региональные правила благоустройства, потом смотрю, что писали юристы. Через двадцать минут выдаю ответ, который звучит примерно как «скорее всего нормально, но зависит от того, зарегистрирован ли товарный знак».

Потом такой же вопрос задаёт второй человек. Третий. На четвёртом я понял, что делаю руками ту работу, которую можно отдать боту.

Так появился проект 168fz-bot и лендинг на домене проверьвывеску.рф.

Что вообще проверяем

168-ФЗ — это закон о защите русского языка в публичном пространстве. Он касается не только вывесок. Под него попадают меню в кафе, ценники, объявления, реклама, указатели. Требование в общем виде: информация для потребителя должна быть на русском. Иностранные слова допустимы, но у них есть условия — например, зарегистрированный товарный знак живёт по своим правилам.

Проблема бизнеса не в том, что закон непонятный. Проблема в том, что владелец точки не будет читать закон. Он посмотрит на свою вывеску, пожмёт плечами и продолжит работать — пока не приедет проверка.

Бот закрывает ровно этот разрыв. Человек кидает фото, получает разбор.

Как это работает со стороны пользователя

Сценарий максимально короткий, потому что любой лишний шаг убивает конверсию:

  1. Открыть бота в Telegram
  2. Отправить фото вывески, меню или рекламного макета
  3. Получить текстовый разбор: что видно на изображении, где потенциальное нарушение, что стоит поправить

Никаких форм, регистрации и «выберите тип объекта из списка». Фотография — это уже вся входная информация, которую человек готов дать. Всё остальное вытягивает модель.

Отдельно отмечу: бот не выдаёт юридическое заключение. Он показывает, на что смотреть. Это разные вещи, и я стараюсь не размывать границу — обещание «мы гарантируем отсутствие штрафа» было бы враньём.

Что внутри

Стек намеренно скучный. Мне не нужна была архитектура на вырост, мне нужно было, чтобы работало.

  • Бот — Python, aiogram 3.x, long-polling. Крутится в Docker-контейнере на VPS.
  • Модель — через OpenRouter. Ключ и название модели вынесены в переменные окружения, так что подменить движок — это одна строчка в .env, без пересборки логики.
  • Админка — FastAPI на порту 8080, nginx проксирует. Нужна была, чтобы смотреть, что люди реально присылают.
  • Лендинг — статический HTML/CSS/JS. Никакого фреймворка: страница отдаётся nginx как файлы и грузится мгновенно.

Деплой устроен так, чтобы я не думал о деплое. Пуш в master → GitHub Actions → SSH на сервер → git pull, копирование лендинга в /var/www/168fz-landing/, docker compose up -d --build. Одна ветка, один пайплайн, ноль ручных шагов.

Где я потратил больше времени, чем ожидал

На SEO. Казалось бы, бот — это про Telegram, при чём тут поиск. Но люди ищут проблему словами «вывеска на английском законно ли» и попадают на лендинг раньше, чем в бота.

Первый аудит дал 64 балла из 100. Слабые места были предсказуемые: тонкие страницы, недостаточная перелинковка, нет структурированных данных, отсутствующие фавиконки для Яндекс.Вебмастера.

Что я сделал за один заход:

  • расширил тонкие страницы и добавил FAQPage-разметку
  • настроил внутренние ссылки между страницами
  • поправил nginx: gzip, кеширование статики, security headers
  • собрал ICO/PNG-фавиконки — Яндекс к ним придирчив
  • починил мобильную навигацию: бургер вёл себя неправильно, CTA перекрывал контент
  • добавил 404-страницу и обновил sitemap

После фиксов оценка выросла до 82. Больше всего дал технический блок — 92 из 100. Просело содержание: 65 баллов по контенту означают, что текстов на сайте всё ещё мало и они поверхностные. Это честная оценка, и я с ней согласен.

Что я вынес из проекта

Узкая задача бьёт универсальность. Бот умеет одну вещь. Именно поэтому им пользуются: человеку не надо разбираться, что в него можно писать.

Ответ должен быть человеческим. Первые версии выдавали текст с формулировками из закона. Люди не дочитывали. Пришлось переписывать промпт в сторону «объясни как знакомому, который разбирается в теме».

Лендинг — часть продукта. Он приводит трафик и снимает первый барьер доверия. Без него бот остался бы ссылкой, которую некому переслать.

Автодеплой окупается на второй неделе. Когда правка доезжает до прода за одну команду git push, ты правишь мелочи. Когда деплой ручной — копишь их и не выкатываешь.

Кому это может пригодиться

Схема повторяется под любую регуляторную проверку, где есть понятный чек-лист и визуальный носитель: маркировка товаров, обязательные таблички, требования к оформлению уголка потребителя. Логика одинаковая — фото на входе, разбор по пунктам на выходе, минимум шагов между ними.

Я не считаю себя экспертом по 168-ФЗ. Я собрал инструмент, который берёт на себя первый заход в вопрос, чтобы человек понял, стоит ли идти к юристу. Пока что этого хватает.

теги #168-фз#telegram-бот#вывеска#aiogram#автоматизация
разберём вашу задачу

Автоматизация для бизнеса

Вторая сторона исследования: собираю под бизнес ИИ-агентов и автоматизации, которые работают и с клиентами, и с командой. Система остаётся у вас в работе и под вашим управлением.

подробнее и записаться цена по запросу

один разговор — и поймём, чем я могу помочь.

В эпоху ИИ человеку нужен человек. Сяду рядом и доведу до результата — встреча длится столько, сколько нужно. Без скрипта продаж и пакетов «за 999 000 ₽». Если пойму, что помочь не смогу, — скажу сразу.