Обзор решения iQBot
iQBot — бот-платформа, на которой собирают чат-ботов и ИИ-агентов для обслуживания клиентов и сотрудников. Бот строится в визуальном конструкторе из процессов, вопросов-ответов и распознавания намерений, а при необходимости обращается к генеративной модели. С клиентами бот общается не напрямую: все каналы связи и рабочие места операторов обеспечивает омниканальная платформа iQChannels, а за ответы генеративной модели отвечает ИИ-платформа iQGPT. Эта страница показывает, как эти три продукта связаны, из каких частей состоит iQBot и как проходит одно обращение клиента.
О возможностях платформы с точки зрения бизнеса рассказывает страница Платформа iQBot. Здесь описано устройство решения.
Архитектура решения
Цифры на схеме обозначают связи между системами.
| № | Связь | Что передаётся |
|---|---|---|
| 1 | Клиенты и iQChannels | Сообщения клиентов из сайта, мобильного приложения, мессенджеров, соцсетей и почты, ответы клиентам. Все каналы подключены к iQChannels, бот напрямую с каналами не работает. |
| 2 | iQChannels и iQBot | Сообщение клиента уходит в API iQBot по HTTPS. iQChannels обращается к iQBot под учётной записью API-пользователя, которую создают в iQBot, см. Подключение к iQChannels. |
| 3 | iQBot и iQChannels | Ответ бота и служебные команды: передать обращение оператору или группе, закрыть обращение, присвоить категорию. |
| 4 | iQBot и iQGPT | Запрос к шлюзу iQGPT из звена «ИИ-агент»: вопрос клиента, системная инструкция и при необходимости история диалога. В ответ приходит текст генеративной модели. |
| 5 | iQBot и системы заказчика | Запросы по REST API из звена «Вызов API» и из собственных действий бота: получить данные клиента, оформить заявку, проверить статус. |
Кроме клиентов у решения есть ещё две группы людей. Операторы работают в iQChannels: туда же бот передаёт диалог, который не может довести до конца. Сценаристы и администраторы работают в iQBot через браузер: Studio для построения ботов и административная консоль для управления платформой.
Из чего состоит iQBot
| Компонент | Что делает |
|---|---|
| Ядро | Принимает сообщения, ведёт диалог по процессам бота, выполняет действия и обращается к остальным частям. Предоставляет API для iQChannels. |
| Studio | Редактор ботов: процессы, содержимое, намерения, вопросы-ответы, эмулятор и отладка. Работает отдельным процессом, который запускает ядро. |
| Консоль администрирования | Боты, пользователи, роли, журналы, перенос данных, языки и модули, см. Руководство администратора. |
| NLU | Распознаёт намерения и извлекает сущности из фраз клиента, обучает модели на фразах бота. |
| Языковой сервер | Языковые модели для NLU. Работает автономно, без выхода в интернет. |
| Duckling | Необязательный сервис для системных сущностей: время, числа, суммы, адреса электронной почты. Поставляется готовым образом. |
| Messaging | Хранит беседы и сообщения, доставляет события между компонентами. Ядро запускает его само. |
| PostgreSQL | Единое хранилище: боты и их настройки, диалоги, пользователи, обученные модели NLU. |
Порты, нагрузка на сервер и программное обеспечение описаны в разделе Требования к серверам. Ядро, Studio, NLU и Messaging поставляются вместе и запускаются как одна установка, отдельно ставят только языковой сервер и по желанию Duckling (контейнер). Состояние узла и метрики отдают адреса /health и /metrics, см. Мониторинг.
Как проходит обращение клиента
- Клиент пишет в любом канале. iQChannels принимает сообщение и по правилам проекта решает, что обращение обслуживает бот.
- iQChannels передаёт сообщение в API iQBot. Ядро находит бота и поднимает состояние диалога этого клиента.
- Если у клиента уже идёт процесс, ядро продолжает его с текущего звена. Иначе NLU определяет намерение и сущности, а база вопросов-ответов подбирает ответ на типовой вопрос.
- Процесс бота выполняет звенья: показывает сообщения, кнопки и карточки, собирает данные, проверяет условия. По пути звено может обратиться к iQGPT за ответом модели или вызвать API системы заказчика.
- Ядро возвращает iQChannels ответ бота. Если процесс дошёл до звена «Переадресация» или «Закрыть диалог», вместе с ответом уходит команда: iQChannels передаёт обращение оператору или закрывает его.
- Фразы, которые бот не понял, попадают в отчёт «Непонятые фразы». По нему сценарист дорабатывает намерения и процессы.
Интеграция с 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 и база данных вынесены на отдельные машины | Требования к серверам |
| Кластер с резервным узлом | Продуктив, где нужна защита от отказа сервера | Резервный узел |
| Кластер с распределением нагрузки | Большое число диалогов, отказоустойчивость | Распределение нагрузки |
С чего начать
- Создаёте ботов: Руководство пользователя.
- Управляете платформой через консоль: Руководство администратора.
- Устанавливаете и сопровождаете платформу: Руководство инженера.