Діалоговий менеджер (центр) тримає вікно контексту розмови, звертається до бази знань через RAG-пошук і прогонятиме об'єднаний контекст крізь шари self-attention, перш ніж згенерувати відповідь — текстом або голосом.
Як це працює ▾
Кожен документ бази знань і кожен запит представлені вектором-ембедингом. RAG-пошук обирає top-K найближчих документів за косинусною подібністю:
sim(q, d) = (q · d) / (‖q‖ · ‖d‖)
Знайдені уривки додаються до вікна контексту разом з попередніми репліками діалогу. Далі трансформер обробляє все вікно шарами self-attention:
Attention(Q,K,V) = softmax(QKᵀ / √dₖ) · V
Так модель «зважує», які токени контексту найважливіші для наступного слова відповіді. У голосовому режимі згенерований текст додатково проганяється крізь TTS-синтез — це видно як вокодерну хвилю під час стрімінгу відповіді.
- Довжина контексту — скільки попередніх реплік пам'ятає бот; більше = точніше, але дорожче й повільніше.
- Топ-K — скільки документів підвантажує RAG; більше = ширший контекст, але більше «шуму».
- Температура — випадковість вибору токена при генерації; вища — креативніше й хаотичніше.