4-Уровневая Система Памяти и Гибридный Поиск (L1–L4)
Система памяти в ForjBot Engine состоит из 4 взаимосвязанных слоев. Она гарантирует высокую точность контекста, эффективное использование контекстного окна LLM и долгосрочное запоминание фактов о пользователе.
1. L1. Краткосрочный Контекст (Short-Term Memory)
- Параметр:
BotConfig.short_term_context_n(по умолчанию 15–20 реплик). - Механизм: Скользящее окно последних сырых диалоговых сообщений пользователя и бота.
- Очистка: Команда
/resetмгновенно очищает L1 контекст для конкретного пользователя, сохраняя при этом сжатое резюме (L2) и накопленные факты (L3).
2. L2. Сжатый Контекст и Профиль Стиля (Context Compression)
При превышении порога сообщений запускается фоновый процесс сжатия диалога:
background_summary: Краткая выжимка ключевых тем беседы, договоренностей и эмоционального фона. Внедряется в системный промпт через переменные{background_summary}.style_profile: Автоматически анализирует манеру общения пользователя (длина сообщений, сленг, использование эмодзи, уровень формальности). Модель подстраивает свой стиль под профиль пользователя.
3. L3. Динамическое Хранилище Фактов (UserFact)
Каждые N сообщений модель анализирует новые данные и извлекает сухие факты о пользователе (имя, профессия, увлечения, питомцы, важные даты).
- Модель БД:
UserFact+FactRelation(граф связейuser_id,category,key,value,importance). - Извлечение: Векторный поиск ищет факты, релевантные текущей реплике пользователя, и подставляет их в
{user_facts}и{retrieved_facts}. - Подсказка модели: Плагин предоставляет инструмент
memory_hintдля сохранения важных заметок в один клик.
4. L4. Гибридный RAG и Индексация Изображений
Удаление legacy-колонки mode:
В архитектуре августа 2026 года концепция режима mode="chat" / mode="rag" полностью удалена. Векторный поиск RAG управляется флагом BotConfig.rag_enabled и работает параллельно со всеми плагинами.
Формула Гибридного Поиска RRF (Reciprocal Rank Fusion)
Система объединяет результаты полнотекстового поиска PostgreSQL FTS (to_tsquery) и векторного поиска по эмбеддингам TEI (ibm-granite/granite-embedding-311m-multilingual-r2) с помощью алгоритма RRF:
RRF_Score = 1 / (60 + Rank_vector) + 1 / (60 + Rank_fts)
Таблица Сравнения Методов Поиска
| Метод Поиска | Сильные Стороны | Что Ищет |
|---|---|---|
| PostgreSQL FTS | Точное совпадение терминов, кодов, названий товаров | document_chunks_bot_{id} по лексемам |
| PGVector TEI | Семантический поиск по смыслу, даже при синонимах | Эмбеддинги Granite 311M (косинусное расстояние) |
| OCR & Image Chunks | Извлечение схем, таблиц и иллюстраций из PDF/Docx | document_images_bot_{id} ➔ инструмент attach_document_image |
5. Метрика Отношений и Естественный Спад (User.metric_score)
- Метрика лояльности:
User.metric_score(значение от0до100). - Динамика: Модель может изменять балл на
metric_delta(от-10до+10) в зависимости от характера общения. - Естественный спад (
decay_users_metric): При включенномRELATION_DECAY_ENABLEDспециальный планировщик ежедневно снижает балл лояльности неактивных пользователей, имитируя естественное остывание отношений при отсутствии внимания.