Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Описание платформы AutoFAQ

AutoFAQ.ai – умный Help Desk для роботизации поддержки клиентов и сотрудников с помощью вопросно-ответных и диалоговых систем на основе технологий искусственного интеллекта. Платформа внедрена в Райффайзен банке, Альфа банке, Мегафоне, Черкизово, ЮниПро, PwC и Дикси. Обрабатывает более 5 000 000 запросов клиентов в месяц, в т.ч. SkyEng, 585 золотой, Почта банк, КРОК, МВидео (поддержка розничной сети и HR). С 1 июля 2019 года обеспечивает роботизацию поддержки "1С" через партнерство с компанией "1С-Коннект".  

AutoFAQ.ai - это проприетарная разработка без использования лицензируемого ПО третьих лиц, на основе ПО с открытым кодом и собственных разработок. В основе находится микросервисная архитектура с оркестрацией на Docker и Linux.

Система хранения данных реализована на основе: Postgresql, Elasticsearch и Redis.

Фронт и бэкенд разработан с использованием следующих технологийИспользуемые Языки программирования: JVM , Scala, AKKAPython, React.js, Angular, jQuery, Bootstrap, Python, Git.Используемые среды и фреймворки:  JavaScript.

Используемые фреймворки: akka, zio, cats, react.js, next.js, asyncio, aiohttp, sqlalchemy, gunicorn, flask, scikit-learn, scipy, nltk, marisa_trie, fasttext, gensim, aiohttp-sentry, jamspell, cython, pytorch и pytorch-lightning

В системе присутствуют следующие NLP модули:

  • Spellchecker

  • Lemmatizer & POS tagger

  • Word Embedder

  • Synonyms Dictionary

  • Classifier Исправление опечаток

  • Лемматизатор

  • Векторизатор запросов

  • Словарь синонимов

  • Классификатор - ядро, которое использует все предыдущие модули. Этот модуль проводит классификацию запроса или находит ответ на запрос. В системе есть как модели для работы с малым количеством данных, так и модели, основанные на технологиях глубокого обучения нейронных сетей для большого количества данных.

  • Генератор ответов на базе большой языковой модели (LLM)

Модели, их комбинация и гиперпараметры подбираются автоматически (auto ML)  под каждый датасет и Заказчика.

Возможности интеграции

Система имеет встроенный язык создания диалоговых сценариев (DSL), который позволяет осуществлять интеграции с внешними системами, получение и отправку информации в ходе диалогов.

Документация доступна по DSL

Система предоставляет API как для подключения внешних каналов коммуникации (например, мобильного приложения или внешних чат ботов), так и для работы напрямую с базами знаний и классификаторами на основе машинного обучения. 

Документация доступна по ссылке 

Внутренняя микросервисная архитектура AutoFAQ (укрупненно)

...

по API 

Сайзинг решения

Минимальные технические требования к системе приведены ниже, с их учетом и с учетом одновременной работы до 100 операторов в системе, AutoFAQ готов обработать следующее количество диалогов:

 

Максимальная нагрузка, диалогов суммарно по всем каналам

 

всего (операторы + бот)

в т.ч на операторов

В

час

месяц

2000

1200

В день

50 000

20 000

В месяц

1 000 000

600 000

100 000

60 000

 

При превышении нагрузки на 30%-50% работоспособность системы сохраняется, но увеличивается время отклика при работе с интерфейсом.

...

Минимальные технические требования

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

Требования к оборудованию – серверам или виртуальным машинам

Продуктивный сервер AutoFAQ (2 шт):

  1. Процессор - не слабее чем CPU E5-2686 v4 @ 2.30GHz (4 ядра 8 потоков),

  1. Оперативная память - не менее чем 32Gb RAM, 

  1. Хранилище - SSD диск, объем 400 GB.

Тестовый сервер:

  1. Процессор - не слабее чем CPU E5-2686 v4 @ 2.30GHz (4 ядра 8 потоков),

  1. Оперативная память - не менее чем 16Gb RAM, 

  1. Хранилище - HDD диск, объем 100 GB.

Требования к установленному ПО:

ОС - Linux Ubuntu 18 или Linux CentOS 7 или RHEL 7 и выше.

...

Сценарий установки 

Минимальные требования к ресурсам     

Точки монтирования файловых томов

1 ВМ 

8 vCPU 48 GB RAM, 400 GB HDD   

200 GB /var
400 GB /opt

2 ВМ

 (AS, DBS) 

AS: 8 vCPU 48 GB RAM, 100 GB HDD,
DBS: 4 vCPU 8 GB RAM, 400 GB SSD   

200 GB /var
400 GB /opt

3 ВМ 

(Frontend, Backend, DBS)

Frontend: 2 vCPU 8 GB RAM, 100 GB HDD

Backend: 4  vCPU 32 GB RAM, 400 GB HDD

DBS: 4 vCPU 16 GB RAM, 400 GB SSD

200 GB /var
400 GB /opt

Тестовая среда

4 vCPU 32 GB RAM, 200 GB HDD

200 GB /var
200 GB /opt

Кластер Docker Swarm либо Kubernetes

4 vCPU 16 GB RAM, 100 GB HDD каждая нода кластера

Файловое хранилище на базе NFS, GlusterFS, Ceph, Longhorn или аналоги

Сценарий установки

Плюсы

Минусы

1 ВМ
Рекомендуется как пилотный или тестовый стенд

Простота сопровождения

отказоустойчивость минимальная только за счет инфраструктуры гипервизора

2 ВМ

App server, DB server

Разделение ресурсов и масштабирования

Низкая отказоустойчивость

3 ВМ и более
Docker Swarm либо Kubernetes

Отказоустойчивость и масштабируемость

Высокая стоимость и сложность сопровождения

Требования к развертыванию

Возможна работа на любой ОС OS где есть docker runtime. Для оркестрации контейнеров используется docker-compose.  

Необходим терминальный доступ с административными правами на предоставленные сервера. 

Гарантируется работа на ОС Linux основанных на дистрибутивах Debian или и Redhat.

Для оркестрации контейнеров используется docker-compose. Для работы необходимы установленные в систему пакетыpython3 python3-pip docker

Code Block
python3, docker, docker-compose

(либо доступ к корпоративным либо публичным репозиториям для их загрузки и установки в ОС:

 

Для скачивания дистрибутива )

Необходим терминальный доступ с правами администратора либо развертывание rootless docker.

Загрузка дистрибутива

Для выгрузки дистрибутива ПО и обновлений необходим доступ к адресам по HTTPS протоколу (443 порт):

...

Интеграции

  • SMTP для рассылки приглашений, уведомлений и смены паролей необходима учетная запись системы в корпоративном SMTP email server

...

Нужно выпустить две DNS записи для Appserver IP. Примеры DNS имен:

...

  • и настройка подключения к SMTP.

  • SSO Single Sign-on интеграция с Active Directory для идентификации пользователей канала Web Widget, а также авторизации операторов и администраторов системы.

Первоначальное развертывание

Руководство администратора по развертыванию и настройке доступно по запросу для партнеров и клиентов в виде готовых скриптов и шаблонов конфигураций в документации по развертыванию

Code Block
yum install -y python3 python3-pip docker
pip3 install -y docker-compose

# https://gitlab.com/deephacklab/descent/blob/master/docker-compose.yml
docker login -u login -p secret docker.autofaq.ai
docker-compose -f docker-compose.yml up -d

Обновления

Обновления поставляются как новые версии микросервисов в виде образов из репозитория docker registry https://docker.autofaq.ai. Репозиторий открыт для клиентов, некоторые клиенты сами обновляют систему. Механизм скачивания встроен в ядро docker (транспорт - защищенное соединение - HTTPS GET)

Процесс обновлений прост:

  1. Обновление номера версий компонент в файле переменных для docker-compose.yml (https://gitlab.com/deephacklab/descent/blob/master/.env )

  2. Скачивание и установка обновлений из репозитория docker.autofaq.ai

Code Block
docker login -u clientuser -p secret docker.autofaq.ai
docker-compose -f docker-compose.yml pull
docker-compose -f docker-compose.yml up -d