Перейти к основному содержимому
Версия: 3.0

Обзор решения iQBot

iQBot — бот-платформа, на которой собирают чат-ботов и ИИ-агентов для обслуживания клиентов и сотрудников. Бот строится в визуальном конструкторе из процессов, вопросов-ответов и распознавания намерений, а при необходимости обращается к генеративной модели. С клиентами бот общается не напрямую: все каналы связи и рабочие места операторов обеспечивает омниканальная платформа iQChannels, а за ответы генеративной модели отвечает ИИ-платформа iQGPT. Эта страница показывает, как эти три продукта связаны, из каких частей состоит iQBot и как проходит одно обращение клиента.

О возможностях платформы с точки зрения бизнеса рассказывает страница Платформа iQBot. Здесь описано устройство решения.

Архитектура решения​

Архитектура решения: клиенты, iQChannels, iQBot, iQGPT и системы заказчика

Цифры на схеме обозначают связи между системами.

№СвязьЧто передаётся
1Клиенты и iQChannelsСообщения клиентов из сайта, мобильного приложения, мессенджеров, соцсетей и почты, ответы клиентам. Все каналы подключены к iQChannels, бот напрямую с каналами не работает.
2iQChannels и iQBotСообщение клиента уходит в API iQBot по HTTPS. iQChannels обращается к iQBot под учётной записью API-пользователя, которую создают в iQBot, см. Подключение к iQChannels.
3iQBot и iQChannelsОтвет бота и служебные команды: передать обращение оператору или группе, закрыть обращение, присвоить категорию.
4iQBot и iQGPTЗапрос к шлюзу iQGPT из звена «ИИ-агент»: вопрос клиента, системная инструкция и при необходимости история диалога. В ответ приходит текст генеративной модели.
5iQBot и системы заказчикаЗапросы по REST API из звена «Вызов API» и из собственных действий бота: получить данные клиента, оформить заявку, проверить статус.

Кроме клиентов у решения есть ещё две группы людей. Операторы работают в iQChannels: туда же бот передаёт диалог, который не может довести до конца. Сценаристы и администраторы работают в iQBot через браузер: Studio для построения ботов и административная консоль для управления платформой.

Из чего состоит iQBot​

КомпонентЧто делает
ЯдроПринимает сообщения, ведёт диалог по процессам бота, выполняет действия и обращается к остальным частям. Предоставляет API для iQChannels.
StudioРедактор ботов: процессы, содержимое, намерения, вопросы-ответы, эмулятор и отладка. Работает отдельным процессом, который запускает ядро.
Консоль администрированияБоты, пользователи, роли, журналы, перенос данных, языки и модули, см. Руководство администратора.
NLUРаспознаёт намерения и извлекает сущности из фраз клиента, обучает модели на фразах бота.
Языковой серверЯзыковые модели для NLU. Работает автономно, без выхода в интернет.
DucklingНеобязательный сервис для системных сущностей: время, числа, суммы, адреса электронной почты. Поставляется готовым образом.
MessagingХранит беседы и сообщения, доставляет события между компонентами. Ядро запускает его само.
PostgreSQLЕдиное хранилище: боты и их настройки, диалоги, пользователи, обученные модели NLU.

Порты, нагрузка на сервер и программное обеспечение описаны в разделе Требования к серверам. Ядро, Studio, NLU и Messaging поставляются вместе и запускаются как одна установка, отдельно ставят только языковой сервер и по желанию Duckling (контейнер). Состояние узла и метрики отдают адреса /health и /metrics, см. Мониторинг.

Как проходит обращение клиента​

  1. Клиент пишет в любом канале. iQChannels принимает сообщение и по правилам проекта решает, что обращение обслуживает бот.
  2. iQChannels передаёт сообщение в API iQBot. Ядро находит бота и поднимает состояние диалога этого клиента.
  3. Если у клиента уже идёт процесс, ядро продолжает его с текущего звена. Иначе NLU определяет намерение и сущности, а база вопросов-ответов подбирает ответ на типовой вопрос.
  4. Процесс бота выполняет звенья: показывает сообщения, кнопки и карточки, собирает данные, проверяет условия. По пути звено может обратиться к iQGPT за ответом модели или вызвать API системы заказчика.
  5. Ядро возвращает iQChannels ответ бота. Если процесс дошёл до звена «Переадресация» или «Закрыть диалог», вместе с ответом уходит команда: iQChannels передаёт обращение оператору или закрывает его.
  6. Фразы, которые бот не понял, попадают в отчёт «Непонятые фразы». По нему сценарист дорабатывает намерения и процессы.

Интеграция с iQChannels​

iQChannels отвечает за каналы связи, распределение обращений и рабочие места операторов. iQBot отвечает за автоматический диалог. Чтобы связать их, нужны три вещи:

  • в iQBot создан API-пользователь: учётная запись, под которой iQChannels обращается к API;
  • в iQChannels платформа iQBot добавлена в список бот-платформ сегмента, а бот связан с пользователем-ботом iQChannels;
  • бот назначен на обращения: в группу распределения или в автоприглашение.

Пошаговая инструкция есть в руководстве пользователя: Подключение к iQChannels. Как работают роли и API-пользователи, описано в разделе Роли и права доступа.

Интеграция с iQGPT​

В процессе бота за обращение к iQGPT отвечает звено «ИИ-агент». Оно отправляет шлюзу iQGPT запрос в формате, совместимом с OpenAI Chat Completions: системную инструкцию, вопрос клиента и, если нужно, последние реплики диалога. Источник знаний для ответа (базу RAG) и модель задают в профиле шлюза. Профили описывает администратор в настройках модуля базовых навыков, а сценарист выбирает нужный в звене.

Ответ модели сохраняется в переменную диалога, дальше процесс продолжается по обычным условиям. Если iQGPT не ответил, звено сообщает об ошибке, и процесс может передать диалог оператору. Подробности настройки — в разделе ИИ-агент на основе GPT.

Интеграция с системами заказчика​

Бот получает данные и выполняет операции в корпоративных системах через их API: CRM, дистанционное банковское обслуживание, учётные системы, Helpdesk. Для этого в процессе используют звено «Вызов API» или собственные действия на JavaScript, которые пишут в редакторе кода Studio. Готовых коннекторов к конкретным системам нет, нужен доступный по сети REST-интерфейс. Данные из этих систем запрашиваются в момент диалога, а не копируются в платформу заранее.

Данные и безопасность​

  • Платформа устанавливается на инфраструктуре заказчика. Данные ботов, диалоги и модели NLU лежат в PostgreSQL, исходящий доступ в интернет для работы не нужен.
  • Наружу из iQBot уходят только обращения к iQGPT и к API систем заказчика, которые вы настроили сами.
  • Доступ к консоли и Studio ограничивается ролями и правами, см. Роли и права доступа. Вход сотрудников: пароль платформы со вторым фактором или единый вход через корпоративного провайдера и каталог, см. Аутентификация и единый вход. Код ботов выполняется в изолированной среде.
  • Сетевая схема, HTTPS и работа с секретами описаны в разделе Безопасность iQBot.

Варианты развёртывания​

ВариантКогда подходитГде описан
Один серверТестовый стенд, небольшая нагрузкаУстановка на Linux, Установка в Docker
Раздельные серверыNLU и база данных вынесены на отдельные машиныТребования к серверам
Кластер с резервным узломПродуктив, где нужна защита от отказа сервераРезервный узел
Кластер с распределением нагрузкиБольшое число диалогов, отказоустойчивостьРаспределение нагрузки

С чего начать​