TGViewer
annFlow annFlow @annsflow · 33 subscribers
Post #127 24
Как я защищаю проект от хаоса, дублей и случайности

Самая неприятная вещь в таких проектах не ошибки, а тихий накапливающийся хаос.

Когда одно и то же событие приходит дважды.
Когда медиа сохраняется повторно.
Когда система постепенно начинает противоречить самой себе.

Снаружи это почти незаметно.
Но именно так проект и теряет форму.

Первое, что пришлось сделать, это остановить дубли на самом низком уровне:

UNIQUE(chat_id, msg_id, media_type)


База просто не даёт записать одно и то же дважды.
Без дополнительной логики и без надежды, что это потом кто-то разберёт вручную.

Следом идёт второй слой:

INSERT OR IGNORE INTO ann_message_media


Если событие уже было, оно просто не проходит дальше.
Лишнее состояние не создаётся.

Но дубли это только часть проблемы.

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

Здесь появляется:
cooldown_until


Система хранит момент, раньше которого она не должна ничего делать.
Это уже не про функциональность, а про дисциплину поведения.

Следующий принцип касается тяжёлых операций.
Их нельзя выполнять прямо в момент ответа.
Если пересчитывать профиль на каждую реплику, система становится избыточно чувствительной и начинает шуметь.

Поэтому часть логики вынесена в фон:
очереди, отложенные обновления, накопление материала перед действием.

И, наконец, сбои.

Если внешний слой падает, проект не должен превращаться ни в тишину, ни в мусор.
Поэтому здесь есть паузы, fallback-сценарии, восстановление состояния, а база работает через WAL, чтобы запись не блокировала систему целиком.

В итоге защита строится по слоям:

• база не пускает дубли
• код не усиливает повтор
• cooldown сдерживает лишнюю активность
• тяжёлая логика вынесена из диалога
• сбой не разрушает весь поток работы

И только после этого вообще можно говорить о качестве ответов.

Оглавление темы 📌
Навигация по проектам канала 📍
Все проекты 🎶

#annBot@annsFlow

💻 annFlow
Telegram annFlow «Бессмысленность и скоротечность» как философия, встроенная в память, разговор и рециркуляцию. ● Как из идеи книги родилось пространство для памяти, разговора и рециркуляции ● Из чего на самом деле состоит этот проект ● Память, профиль и контекст: на…
More from @annsflow
  1. Sep 24, 2026LiveContext в реальном разговоре. На видео я разбираюсь с претензией по недоставленному за…
  2. Sep 21, 2026Как LiveContext разделяет мой голос и голос собеседника Чтобы LiveContext мог понимать раз…
  3. Sep 16, 2026Почему мне оказалось недостаточно просто сохранять разговоры В VoxBase я решал проблему то…
  4. Sep 15, 2026Как я построил LiveContext, или Как связать живой разговор с памятью проекта ● Почему мне…
  5. Sep 14, 2026annFlow pinned a video
  6. Sep 14, 2026Самая неожиданная вакансия, которую нашел мой бот Моя система постоянно сама ищет вакансии…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →