Skip to content
ShaerWare edited this page Mar 3, 2026 · 4 revisions

FAQ (Быстрые ответы)

Управление базой типичных вопросов для мгновенных ответов без обращения к LLM.

Workspace-фильтрация: FAQ записи фильтруются по workspace_id из JWT. Redis-кеш FAQ используется только при отсутствии workspace-фильтра. Системные вызовы (LLM FAQ reload, startup) загружают глобальный словарь без фильтрации.

Концепция

FAQ обеспечивает мгновенные ответы на частые вопросы:

  1. Пользователь задаёт вопрос (из чата, бота, виджета)
  2. Система ищет совпадение в FAQ базе
  3. Найдено → мгновенный ответ (0 мс, без LLM)
  4. Не найдено → запрос к LLM (+ Wiki RAG контекст, если настроен)

Это экономит токены/ресурсы и даёт предсказуемые ответы на типовые вопросы.

Таблица FAQ

Все записи отображаются в таблице:

Колонка Описание
Вопрос (trigger) Паттерн или точный текст
Ответ Предопределённый ответ
Приоритет Порядок проверки (выше число = проверяется раньше)
Активен Включена ли запись
Действия Редактировать / Удалить

Паттерны вопросов

Точное совпадение

Как связаться с поддержкой?

Срабатывает только на точный текст.

Ключевые слова (wildcard)

*поддержка*
*контакт*связаться*

Символ * заменяет любое количество символов.

Регулярные выражения

/^(как|где) (связаться|найти)/i

Полная поддержка regex с флагами. Синтаксис: /pattern/flags.

CRUD операции

Добавление

  1. Нажмите "Добавить FAQ"
  2. Введите trigger (паттерн вопроса)
  3. Введите ответ (поддерживается Markdown)
  4. Установите приоритет (100 по умолчанию)
  5. Сохраните

Редактирование

Клик на иконку редактирования → модальное окно → сохранить.

Удаление

Клик на иконку корзины → подтверждение.

Тестирование

Секция "Тест FAQ" позволяет проверить работу:

  1. Введите тестовый вопрос
  2. Нажмите "Тест"
  3. Результат:
    • Найдено — trigger, ответ, время поиска
    • Не найдено — "FAQ match not found"

API: POST /admin/faq/test с телом {"question": "текст вопроса"}

Импорт / Экспорт

Экспорт

Кнопка "Экспорт" скачивает все FAQ в JSON.

Импорт

  1. Нажмите "Импорт"
  2. Выберите JSON файл
  3. Подтвердите

Формат JSON

[
  {
    "trigger": "Как связаться с поддержкой?",
    "response": "Напишите на support@example.com",
    "priority": 100,
    "enabled": true
  }
]

Горячая перезагрузка

Кнопка "Перезагрузить" (POST /admin/faq/reload) обновляет FAQ в памяти из БД без перезапуска.

Взаимодействие с Wiki RAG

FAQ проверяется до Wiki RAG. Приоритет ответов:

  1. FAQ (точное/wildcard/regex совпадение) → мгновенный ответ
  2. Wiki RAG (семантический поиск по wiki-pages/) → контекст для LLM
  3. LLM без дополнительного контекста

API

Endpoint Описание
GET /admin/faq Список всех FAQ
POST /admin/faq Добавить запись
PUT /admin/faq/{trigger} Обновить запись
DELETE /admin/faq/{trigger} Удалить запись
POST /admin/faq/reload Горячая перезагрузка
POST /admin/faq/test Тестировать совпадение
GET /admin/faq/export Экспорт в JSON

TTS | Finetune

Clone this wiki locally