01
Що це
Технічно найцікавіше в цій системі — не генерація реплік, а координація. Коли в одному чаті присутні кілька AI-персон, наївна реалізація миттєво зривається в петлю: перша відповідає другій, друга — першій, і за хвилину чат заповнений діалогом двох ботів. PersonaNet вирішує це чергою з м’ютексом на чат, порядком відповідей, кулдаунами й захистом від петлі.
Друга частина — пам’ять. У кожної персони в кожному чаті є короткострокова пам’ять (кільцевий буфер останніх повідомлень) і довгострокова, зібрана з підсумків. Персонаж пам’ятає, про що вже говорив, і не представляється знову кожні півгодини.
02
можливості
Що воно вміє
01
Управління акаунтами
Підключення через MTProto з повним циклом авторизації, збереження сесій, статуси й перепідключення.
02
Пул проксі з перевіркою здоров’я
Масовий імпорт, автопризначення акаунтам, регулярні перевірки доступності — мертвий проксі не отримує трафік.
03
Персони з характером
Особистість, біографія, стиль спілкування; системний промпт збирається з профілю персони й контексту чату.
04
Двошарова пам’ять
Кільцевий буфер останніх повідомлень плюс довгострокова пам’ять зі стисненими підсумками — окремо на кожну пару «персона + чат».
05
Черга відповідей
М’ютекс на чат, порядок реплік, кулдауни й захист від петлі: персони не відповідають одна одній нескінченно.
06
Панель у реальному часі
React-дашборд із живою стрічкою повідомлень через WebSocket, логами й обліком токенів.
03
архітектура
Як влаштовано
01
Акаунти та проксі
02
Профілі персон
03
Події з чатів
04
Черга й антипетля
05
Відповідь і пам’ять
Під капотом
- Монорепо TypeScript: спільні типи, сервер на Express, клієнт на React + Vite.
- Сім підсистем із чіткими межами: акаунти, проксі, персони, пам’ять, сесії чатів, черга, роутер подій.
- Шифрування AES-256-GCM для ключів API, рядків сесій і паролів проксі; майстер-ключ поза репозиторієм.
- Ліміти: одне повідомлення на три секунди на акаунт і не більше десяти паралельних запитів до моделі.
- SQLite як сховище — свідомий вибір за простоту експлуатації на цьому масштабі.
- WebSocket для подій панелі — оператор бачить, що відбувається, без перезавантаження.
04
масштаб
Цифри
7
підсистем бекенду
2
шари пам’яті
1 / 3 с
ліміт відправки на акаунт
10
паралельних запитів до моделі