Не удается изменить определенный пользователем контекст с помощью Watson Assistant API v2 - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь перенести чат-бота для использования недавно представленного Assistant API v2 .

Моя инфраструктура чат-бота включает в себя службы промежуточного программного обеспечения, которые изменяют контекст после получения ответа из Ватсона. В некоторых случаях я использовал для удаления определенных свойств из контекста, и это работало нормально. Однако я заметил, что после перехода на API v2 этот подход больше не работает, поскольку удаленные свойства каким-то образом хранятся на стороне Watson .

Например, я получил следующее context от Watson:

{
    "assistantId": "---",
    "sessionId": "---",
    "messageInput": {
        "Text": "Some text",
        "Options": {
            "Debug": "true",
            "ReturnContext": "true",
            "Restart": "false"
        }
    },
    "context": 
    {
        "Global": "null",
        "Skills": {
            "AdditionalProperties": {
                "main skill": {
                    "user_defined": {
                        "id": "23",
                        "description": "Dont know"
                    },
                    "system": {---}
                }
            }
        }
    }
}

Затем я удаляю 'description' из контекста и отправляю запрос Watson еще раз. Удивительно, но 'description' все еще там с тем же значением ('Не знаю').

Возможным решением будет не удалить свойство, а установить его значение в пустую строку. Но даже в этом случае мой диалог не работает правильно, так как Уотсон каким-то образом сохраняет точку в диалоге, который он посещал ранее (или нет, это мои догадки). Я предполагаю, что это может быть связано со свойством system.state, в котором хранится закодированное состояние диалога (снова или нет).

Мой вопрос: почему диалог ведет себя так? Как он хранит контекстную информацию, поэтому я не могу удалить свойства из user_defined context? И как я могу сбросить диалоговое состояние к исходному, сохраняя тот же dialog_id ( session_id )?

PS Я использую Watson API v2 : 2020-04-01

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...