Перейти к содержанию

Слои контекста

ContextOutput отдаёт четыре источника контекста независимо, чтобы UI мог показать, откуда что пришло, а модель — понимать, что есть что.

Слои

  1. System prompt — всегда первый, всегда авторитетный. Обязателен; TokenBudgetedContextBuilder выбрасывает исключение, если он не влезает.
  2. Profile — извлекается из прошлых сообщений пользователя. Опционален; если он выталкивает промпт за бюджет — молча отбрасывается.
  3. Session memory — сжатая выжимка старых ходов. Достаётся из векторного хранилища по синтетическому doc_id session_{chat_id}.
  4. RAG-документы — top-k чанков из документов, привязанных к чату.

Что когда включать

Сценарий RAG Session Profile
Разовая Q&A по документу
Долгий чат с одним документом
Продолжение разговора (без нового контекста)
Многопользовательский ассистент с профилем

Справка по полям

Поля ContextInput:

  • query (обязательно) — текущий вопрос пользователя.
  • system_prompt — закрепляется в начале финального промпта.
  • doc_ids — список целочисленных ID документов для поиска.
  • chat_id — если задан, ищется память сессии по session_{chat_id}.
  • embedding_model — передаётся в LLM.embed.
  • top_k_rag, top_k_session — глубина выборки по слоям.
  • include_rag, include_session, include_profile — переключатели.

Поля ContextOutput:

  • system_prompt — собранная финальная строка.
  • rag_blocks, session_blocks — реальные чанки, попавшие в промпт.
  • profile_used — был ли включён профиль.
  • budget_report — заполняется только TokenBudgetedContextBuilder.

English version