Instruction of dev-whatson right start: Difference between revisions
No edit summary |
No edit summary |
||
Line 32: | Line 32: | ||
<nowiki>http://chatbot.necs.ca:3001/conversation_filter_view/</nowiki> | <nowiki>http://chatbot.necs.ca:3001/conversation_filter_view/</nowiki> | ||
=== Контракт === | |||
Формат входных и выходных данных: 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’, описывающим ошибку. |
Revision as of 05:27, 20 May 2024
Документация по использованию контейнера коннекта с IBM Watson
Место сервиса в структуре
На приложенной картинке указано, как подключается сервис
Структура проекта
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’, описывающим ошибку.