Решение бота
Ещё не проверялиЧто бот сделает с найденным. Наличие материала не гарантирует готовый ответ.
Как бот справляется с обращениями клиентов.
Подключение — канал, через который клиенты пишут боту. У каждого свой режим ответа.
Два API-ключа Welcome из ядра LLM: для ответов и поиска по знаниям.
Обращения, ответы и действия оператора в одном рабочем окне.
Канал, статус и клиент появятся здесь
Обращения, в которых клиенту требуется живой сотрудник.
Причина передачи и канал появятся здесь
Исправляйте ответы и пополняйте базу знаний.
Что бот делает прямо сейчас и чем закончилось каждое сообщение. Нажмите на строку для полного разбора.
Что здесь делать. Проверьте строку состояния: сбои и застрявшие сообщения подсвечиваются. Откройте строку журнала, чтобы увидеть путь сообщения по этапам. Если сигналы повторяются, откройте «Качество и проблемы».
Как считается.
Загружаем…
Загружаем…
Где бот не смог ответить, почему и что поправить.
Сколько обращений, как бот ответил и что улучшить.
Поведение бота, знания и работа команды.
Тон, инструкция, длина ответа и режим ответов.
Черновик и публикация. «Сохранить черновик» запоминает правки, но клиенты продолжают получать ответы по опубликованной версии. «Опубликовать» сохраняет форму и делает её новой версией. Перед публикацией панель спрашивает подтверждение.
Защита от чужой публикации. Если пока форма была открыта, другой администратор опубликовал свою версию, сервер не примет публикацию. Обновите страницу и проверьте изменения заново.
Режимы. «Только оператор»: бот не отвечает. «Готовит на одобрение»: бот готовит ответ, сотрудник проверяет и отправляет. «Отвечает автоматически»: ответ уходит сразу после проверок, сомнительные вопросы получает оператор. Включение и выключение автоматических ответов требует отдельного подтверждения. Диалог, который взял оператор, остаётся у человека.
Режим отдельного подключения. В разделе «Подключения» для конкретного Telegram-бота или API-проекта можно задать свой режим. Тогда он действует вместо этого.
Параметры сервера. У полей с кнопкой «Как на сервере» пустое значение значит: действует значение из настроек сервера. Своё значение начинает действовать после публикации.
Модель ответов. Модель и режим меняются в «Модели ответов».
Напишите боту как клиент и посмотрите, что он ответит и почему.
Тестовые диалоги не доходят до клиентов. Ответы остаются в панели: в Telegram и API ничего не отправляется, в статистику и очередь операторов проверки не попадают.
Enter отправляет, Shift+Enter переносит строку.
Каждая проверка идёт в отдельном тестовом диалоге. Бот проходит те же шаги, что с клиентом: ищет в базе знаний, готовит ответ моделью и проверяет его.
Ответ сохраняется только в панели. В Telegram, API и очередь «Ожидают оператора» он не уходит, в «Аналитику» и «Качество и проблемы» не попадает.
«Как у клиентов» означает опубликованные настройки. «Черновик» означает сохранённые в «Настройках», но ещё не опубликованные изменения. Выбор закрепляется за диалогом при первом сообщении.
Время ответа считается от получения сообщения до готового текста. «Почему» объясняет решение бота: ответить, уточнить или передать человеку.
Если бот передал диалог человеку, дальше в этом диалоге он не отвечает, как и с настоящим клиентом. Для следующего вопроса начните новый диалог.
Каждое сообщение расходует квоту модели так же, как вопрос клиента. Квота общая с рабочими ответами, поэтому не отправляйте проверки пачками.
Новые материалы: кнопка «Добавить в Фитбейс Знания» или вкладка «Импорт». Черновики из переписок ждут во вкладке «Анализатор знаний».
Какие материалы бот возьмёт для ответа, если клиент начнёт разговор с такого вопроса. Поиск идёт так же, как у клиентов, с опубликованными настройками. Сам ответ покажет кнопка «Показать ответ бота» под результатами: до 3 запросов к модели.
Загрузка состояния…
Отдельный индексЧто бот сделает с найденным. Наличие материала не гарантирует готовый ответ.
Порог берётся из настроек бота.
Сколько найденных материалов модель получит для ответа.
Все источники идут в ответы бота, включая очищенные переписки. Выключенные и заменённые фрагменты хранятся, но боту недоступны. Какие фрагменты бот взял для ответа, видно в разборе диалога.
Находит вопросы, на которые бот не ответил, и превращает их в знания. Публикуете вы.
Фоновые задания, обновление справки, откат базы и пауза ответов.
Проверяем обработчик
Смотрим последние задания
Проверяем правило
Проверяем версии базы
Получаем состояние паузы…
Фоновые задания выполняет отдельный обработчик на сервере: обновление справки, импорт материалов, подготовку и публикацию инструкций, проверки вариантов. Пока задание выполняется, страница обновляется каждые 5 секунд, иначе раз в 30 секунд.
Повтор. Каждое задание делает не больше двух попыток. Если задание дважды прервал перезапуск сервера, его нужно запустить заново. Повтор проверок и обучения расходует квоту модели.
Обновление справки. Бот скачивает статьи help.fitbase.io и собирает новую версию базы. Если статей пришло заметно меньше или сборка не прошла проверку, версия не публикуется и бот продолжает работать на прежней базе.
Откат возвращает базу к состоянию до выбранного обновления. Он доступен, только пока после обновления база не менялась и сохранена копия базы до обновления. Если после обновления одобрили инструкцию или загрузили материал, откат недоступен.
Хранение. Сервер хранит последние 3 опубликованные или откаченные версии базы и последние 2 неудачные попытки, более старые удаляет сам. Старые диалоги удаляются автоматически по сроку хранения из настроек сервера. Резервные копии смотрите в разделе «Сервер и бэкапы».
Пауза ответов сразу останавливает автоматические ответы бота во всех каналах, операторы продолжают отвечать, сообщения сохраняются. Включают и снимают её в «Настройках», раздел «Обслуживание и безопасный режим», с вводом слова подтверждения.
Где работает Welcome bot, хватает ли ему ресурсов и есть ли свежие резервные копии.
Состояние сервера и резервные копии видит только администратор. Очередь и скорость обработки видны на вкладке «Очередь и скорость».
Загрузка
Загрузка
Загрузка
Загрузка
Загрузка
Загрузка
Сбор данных
Загрузка
Загрузка
Welcome bot работает на отдельном сервере. Имя, система и ресурсы берутся с самого сервера при каждом замере, поэтому после переезда страница сама показывает новый сервер.
Сборщик на сервере (служба welcome-operations) раз в 15 секунд снимает процессор, память, диск и подкачку всего сервера, а также процессор и память каждого сервиса Welcome bot. Тестовый стенд чата показан отдельной строкой с меткой «тестовый»: в «N из N работают» и «Всё работает» он не входит. Сборщик меряет сам себя, поэтому его строка всегда «Работает». Другие проекты сюда не попадают. Если замер старше минуты, страница пишет, что данные устарели, и показывает последние известные значения.
Процессор сервера показан от 0 до 100 % на весь сервер: 100 % значит, что заняты оба ядра. Средняя нагрузка 2,0 тоже значит, что оба ядра заняты; выше этого задачи ждут процессор. Пороги внимания и критичности одни для всех шкал и приходят со сборщика.
Подкачка это запас памяти на диске. Процент относится ко всему серверу, в скобках сколько из неё занимают сервисы Welcome bot. Небольшая занятость подкачки нормальна, постоянный рост значит, что памяти не хватает.
Копия создаётся по расписанию, по умолчанию в 00:00 и 12:00 МСК. На несколько секунд сервисы приостанавливаются, чтобы базы скопировались целиком, затем архив упаковывается, проверяется и выгружается на Google Drive. Выгрузка считается успешной, только когда контрольная сумма файла на Drive совпала с локальной.
В копии базы, индекс знаний, код, настройки и образы Docker. Новые копии это zip без пароля: внутри .env с токенами и переписка клиентов, поэтому скачивание доступно только администратору, а файл нужно хранить как секрет. Старые копии в формате .wbenc зашифрованы, для них нужен ключ backup.key на сервере.
«Проверить» заново читает архив и сверяет контрольные суммы и базы. «Пробное восстановление» открывает базы и индекс знаний отдельно, без сети и отправок; рабочие данные не меняются. Пробное восстановление свежей копии идёт само раз в неделю ночью, около 03:00 МСК.
Пробное восстановление возможно только для копии, образы Docker которой есть на этом сервере: для копий, сделанных на прежнем сервере, кнопка недоступна. Выгрузка на Google Drive идёт, только когда на сервере установлен rclone и настроено подключение к Drive; иначе копия остаётся на сервере, а страница показывает предупреждение.
На сервере копии хранятся в пределах лимита, самая новая и последняя с пройденным пробным восстановлением остаются всегда. На Google Drive копии хранятся 180 дней; старые удаляются только после успешной выгрузки новой. Число файлов и объём на Drive берутся из списка папки раз в час, туда входят и старые копии .wbenc, и копии прежних серверов. Полное восстановление на новом сервере описано в docs/OPERATIONS.md.
«Копии сервера» делает отдельная служба сервера (fitbase-backup-project) каждые 6 часов, для бота и для тестового стенда, в свою папку на Google Drive. Панель только показывает их по таймерам systemd и списку файлов на Drive; копия тестового стенда есть только там.
«Сделать копию сейчас» ставит бота на паузу на время копирования баз. Пока в очереди есть сообщения, кнопка недоступна, чтобы пауза не задержала ответы клиентам. Скачать копию можно только после ввода пароля от панели: сервер выдаёт одноразовое подтверждение на одно скачивание.
Ошибки и предупреждения служб Welcome bot за выбранный период. Если ошибка относится к диалогу или сообщению, рядом есть ссылка на диалог и на разбор в Live.
Нагрузка считается внутри приложения Welcome bot: сколько сообщений пришло и обработано за минуту, сколько ждёт в очереди и сколько длилась обработка. Процессор приложения считается от одного ядра. Пустое значение значит, что замера не было, а не ноль.
Предельная пропускная способность не измерялась: для неё нужен отдельный нагрузочный тест в изолированной среде.
Обработчики это потоки внутри приложения, каждый ведёт одно сообщение от получения до готового ответа, как оператор ведёт один разговор. Один диалог никогда не обрабатывается двумя обработчиками одновременно. Число обработчиков меняет администратор, изменение применяется в течение 5 секунд без перезапуска; лишние обработчики сначала доделывают текущее сообщение. Состояние обработчиков хранится в памяти приложения и обнуляется при его перезапуске.
Сравните варианты настроек на одних и тех же вопросах, прежде чем менять их для клиентов.
Загрузка
Контрольная группа отвечает с текущими опубликованными настройками. Варианты меняют только четыре параметра: сколько материалов брать, порог поиска, длину ответа и вариативность. Модель ответов не меняется.
На тестовых вопросах бот отвечает на ваши вопросы каждым вариантом и ничего никому не отправляет. Теневой режим считает ответы вариантов на новые вопросы клиентов в фоне, клиент получает обычный ответ. A/B делит клиентов между вариантами, и они получают ответы вариантов; вариант закрепляется за разговором.
A/B запускается, только когда на сервере включена рабочая отправка ответов клиентам: он меняет настоящие ответы. Пока отправка выключена, запуск заблокирован. Одновременно может идти один теневой и один A/B эксперимент.
Тестовые и теневые проверки ограничены суточным лимитом. Если лимита не хватает на все вопросы, эксперимент не запускается частично. Лимит меняется в «Система и обслуживание».
Итог показывает, сколько раз каждый вариант ответил, уточнил и передал человеку, и обычное время ответа (медиану). Победитель не выбирается автоматически, правильность ответов не проверяется: прочитайте ответы сами.
Проверки расходуют квоту модели, общую с ответами клиентам.
Отчёты о проверках бота: запуски, найденные проблемы, разбор ответов и сравнение. Клиенты ничего не видят.
Загрузка
Сколько запросов обработано, где ответа не было и что требует внимания.
| ID & Источник | Заголовок темы | Текст материала | Краткое описание | Автор | Действия |
|---|---|---|---|---|---|
| Загрузка фрагментов базы знаний… | |||||
Одна инструкция: заполните форму слева. Несколько инструкций: используйте мастер справа: название → текст или файл → проверка → публикация.
Файлы: обычный текст .txt или Markdown .md в кодировке UTF-8. Можно просто вставить текст. PDF, Word, Excel, JSON, сканы и изображения этот мастер не разбирает: сначала подготовьте из них чистый текст. Ссылка: указание первоисточника, а не команда скачать страницу.
Структура: одна самостоятельная тема на фрагмент. Укажите вопрос клиента, условия, точные шаги, ожидаемый результат и случаи передачи оператору. В каждом фрагменте должно быть достаточно контекста без соседних фрагментов.
Тема: [конкретный вопрос клиента] Условия: [для кого и когда применима инструкция] Ответ: [проверенные шаги и результат] Ограничения: [исключения, когда нужен оператор] Проверено: [дата и ответственный] --- Тема: [следующий самостоятельный вопрос] Ответ: [проверенная инструкция]
Разбиение: «По разделителю ---»: для примера выше; «По абзацам»: если каждый блок между пустыми строками является отдельной инструкцией; «По строкам»: только если каждая строка содержит полный ответ; «Одним фрагментом»: для одной короткой темы. Разбиение не проверяет смысл и не исправляет ошибки.
Качество: только актуальные, проверенные факты, точные названия кнопок и условия. Уберите персональные данные, токены, пароли, внутренние секреты, дубли, устаревшие цены и предположения. Не загружайте необработанную переписку или оглавление вместо инструкции. Шаблон с квадратными скобками сначала заполните.
После публикации: дождитесь успешного результата, найдите материал во вкладке «Материалы» → «Опубликованные материалы для клиентов», затем проверьте вопрос во вкладке «Проверка поиска» и ответ в тестовом режиме. Загрузка добавляет новые записи, а не заменяет старые: повторный импорт может создать дубли.
Вы публикуете материал для ответов клиентам. После успешного сохранения и индексации он доступен поиску Welcome bot без отдельного одобрения. Это не обучение модели и не гарантия правильного ответа. Загрузка не включает отправку сообщений клиентам.
Проверьте параметры. Нажатие «Опубликовать материалы» добавит текст в знания, доступные боту для ответов клиентам.
После смены пароля все ваши сессии завершатся, войдите заново с новым паролем.