antisocial

+1
с 30.05.2026
0 подписчиков
0 подписок

Привет! Спасибо за вопросы

Про 1кк токенов: Засылать миллион токенов на каждый чих игрока в проде - дорого и медленно (растет задержка). Поэтому мы используем скользящее окно истории (последние 4–12 ходов) + автоматическую фоновую суммаризацию старых ходов раз в 12–24 шага. Context window держится в пределах пары тысяч токенов.
Как хранится сессия: В PostgreSQL 16. Состояние персонажа (статы, инвентарь, эффекты, погода, время) упаковано в структурированные JSONB-поля, а сообщения чата и локации лежат в нормализованных таблицах.
Как устроена карта и RAG: База знаний мира и правила индексируются единоразово при создании/обновлении мира (текст режется на чанки и векторизуется в 768-мерные эмбеддинги через Google API). При запросе игрока на лету ничего не индексируется, а срабатывает гибридный поиск в БД

Пайплайн хода
Навигатор (легкая модель) определяет текущий location_slug.
RAG-поиск собирает актуальные правила и лор.
Сборка промпта: статический промпт (кэшируется провайдером) + динамический контекст (статы, RAG, погода) + история + ввод игрока.
Генерация: модель возвращает JSON с нарративом и дельтой изменений.
Анти-чит: ActionValidator проверяет наличие предметов в БД, а StateValidator режет нелегитимные начисления ресурсов

Спасибо большое за обратную связь, очень приятно слышать.

Да, на реакте фронт написан.
Как раз работал над первой сессией чтобы было полегче, рад сразу услышать подтверждение этой теории.

Буду очень благодарен если продолжите делиться фидбеком.