...
Система хранения данных реализована на основе: 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) под каждый датасет и Заказчика.
...
Система предоставляет API как для подключения внешних каналов коммуникации (например, мобильного приложения или внешних чат ботов), так и для работы напрямую с базами знаний и классификаторами на основе машинного обучения.
Внутренняя микросервисная архитектура AutoFAQ (укрупненно)
...
Сайзинг решения
Минимальные технические требования к системе приведены ниже, с их учетом и с учетом одновременной работы до 100 операторов в системе, AutoFAQ готов обработать следующее количество диалогов:
| Максимальная нагрузка, диалогов суммарно по всем каналам | |
| всего (операторы + бот) | в т.ч на операторов |
В |
месяц |
2000
1200
В день
50 000
20 000
В месяц
1 000 000
100 000 | 60 000 |
При превышении нагрузки на 30%-50% работоспособность системы сохраняется, но увеличивается время отклика при работе с интерфейсом.
...
Минимальные технические требования
Возможно реализовать резервирование AutoFAQ за счет балансировщика нагрузки в целях повыщения надежности работы системы. Подробное архитектурное описание решения высокой доступности разрабатывается отдельно под Заказчика.
Продуктивный сервер AutoFAQ (2 шт):
...
Сервер приложений: 4 vCPU 32 Gb RAM, 100 GB HDD
...
Сценарий установки | Минимальные требования к ресурсам | Точки монтирования файловых томов |
1 ВМ | 8 vCPU 48 GB RAM, 400 GB HDD | 200 GB /var |
2 ВМ (AS, DBS) | AS: 8 vCPU 48 GB RAM, 100 GB HDD, | 200 GB /var |
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 |
Тестовая среда (сервер приложений и БД на одной ВМ): 4 vCPU 16 Gb RAM, 100 GB HDD
200 GB /var | ||
Тестовая среда | 4 vCPU 32 GB RAM, 200 GB HDD | 200 GB /var |
Кластер Docker Swarm либо Kubernetes | 4 vCPU 16 GB RAM, 100 GB HDD каждая нода кластера | Файловое хранилище на базе NFS, GlusterFS, Ceph, Longhorn или аналоги |
Сценарий установки | Плюсы | Минусы |
1 ВМ | Простота сопровождения | отказоустойчивость минимальная только за счет инфраструктуры гипервизора |
2 ВМ App server, DB server | Разделение ресурсов и масштабирования | Низкая отказоустойчивость |
3 ВМ и более | Отказоустойчивость и масштабируемость | Высокая стоимость и сложность сопровождения |
Требования к развертыванию
Возможна работа на любой OS где есть docker runtime. Гарантируется работа на ОС Linux основанных на дистрибутивах Debian или и Redhat.
Для оркестрации контейнеров используется docker-compose. Для работы необходимы установленные в систему пакеты
Code Block |
---|
python3, python3-pip, docker, docker-compose |
(либо доступ к корпоративным либо публичным репозиториям для их загрузки и установки)
Необходим терминальный доступ с правами администратора либо развертывание rootless docker.
...
...
...
.
...
Загрузка дистрибутива
Для скачивания выгрузки дистрибутива ПО и обновлений необходим доступ к адресам
Интеграции
...
SMTP для рассылки приглашений, уведомлений и смены паролей необходима учетная запись системы в корпоративном SMTP email server и настройка подключения к SMTP.
SSO Single Sign-on интеграция с Active Directory для идентификации пользователей канала Web Widget, а также авторизации операторов и администраторов системы.
Первоначальное развертывание
Руководство администратора по развертыванию и настройке доступно по запросу для партнеров и клиентов в виде готовых скриптов и шаблонов конфигураций в репозитории https://gitlab.com/deephacklab/descent документации по развертыванию
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-compose.yml
(https://gitlab.com/deephacklab/descent/blob/master/.env )Скачивание и установка обновлений из репозитория
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 |
...