Instruction of dev-whatson right start

From Bloomex Wiki
Jump to navigation Jump to search

Документация по использованию контейнера коннекта с IBM Watson

Место сервиса в структуре

Photo 2022-12-29 11-54-52.jpg

На приложенной картинке указано, как подключается сервис

Структура проекта

WatsonConnector – класс, отвечающий за подключение и передачу данных между Ватсон ассистентом и ботом;

WatsonProcessor – класс, отвечающий за взаимодействие с Ватсон ассистентом, выполнение команд, передаваемых из ассистента, формирование вспомогательных переменных и сохранение их в контексте, передаваемом в ассистент;

bloomexbot – Django сервер, реализующий API для обработки сообщений пользователя;

BloomexApiConnector – класс передачи API запросов на сервера Bloomex;

static_objects – набор глобальных объектов, через которых происходит работа всего проекта.


Принцип работы модуля

При старте чатбота командой uwsgi uwsgi.ini создаётся заданное количество процессов, обрабатывающих запросы к боту.

При появлении сообщения от пользователя, оно передаётся в API функцию get_message (файл bloomexbot/botapi/views.py), по параметру chat_id и dep_id происходит определение того, новый ли это диалог или продолжение существующего. Если это продолжение, то сохраняется существующий контекст. Далее происходит передача контекста и сообщения на обработку в соответствующий модуль Ватсон Ассистента объектом класса WatsonProcessor в соответствии с проектом, из которого получено сообщение (bloomex.ca или bloomex.com.au).

Из полученного от Ватсон Ассистента результата обработки формируется ответ в формате, описанном в контаркте (файл Контракт.odt).

Просмотр диалогов с пользователем можно осуществить зайдя на страницу

http://<host>:<port>/conversation_filter_view/

Например:

http://chatbot.necs.ca:3001/conversation_filter_view/

Контракт

Формат входных и выходных данных: JSON

Запускаемые функции: 1. message. Входные параметры: a. dep_id - целое число (2 байта); b. chat_id – целое число (8 байт); c. message_id - целое число (8 байт); d. text – строка длиной 2000 символов;

2. chat_oper. Входные параметры: a. chat_id – целое число (8 байт);

3. email. Входные параметры: a. chat_id – целое число (8 байт);

4. get_status. Входные параметры: a. chat_id – целое число (8 байт);


Возвращаемые значения в ответе бота: 1. text – строка длиной максимум 2048 символов; 2. fyi – строка длиной максимум 1048576 символов (на счёт этого параметра не уверен). Поле fyi только json со степенью вложения не более двух; 3. action – строка максимум 30 символов. Данная строка может принимать следующие значения: send, alert, call_oper, passive; 4. delay – целое число (2 байта); 5. urgency – целое число (1 байт).

Максимальное время ответа: 3 сек.;

В случае передачи в функцию message параметра dep_id, который в данный момент не обрабатывается, будет возвращен JSON объект с текстовым полем ‘error’, описывающим ошибку.