Как вызвать другое намерение в Dialogflow V1

Мне хорошо известно, что Dialogflow V1 устарел в конце мая 2020 года. Однако мне интересно, знает ли кто-нибудь, как вызвать намерение в Dialogflow через выполнение веб-перехватчика? Последние несколько дней я искал в Google, ища повсюду, и, похоже, пришел к консенсусу, что, хотя события доступны для запуска сопоставления намерений, их не следует использовать. Прямо сейчас у меня есть функция javascript, которая отправляет ответ веб-перехватчика с контекстом вне. Я помещаю этот контекст в свой ввод контекста намерения диалогового потока, но когда я запускаю агент, намерение никогда не запускается.

Код Javascript:

function createTextResponse() {

    let response = {
        "speech": "Nice! Let's keep going.",
        "displayText": "displayed response",
        "contextOut": [
            {
              "name": "trythis",
              "lifespan": 5
            }
          ]
    }    

    return response;
}

Вот изображение с моими контекстами контекстами в диалоговом потоке. В последнее время мне было трудно с этим и был бы признателен за любую помощь / объяснение, чтобы я мог двигаться дальше.


person jeff-ridgeway    schedule 24.04.2020    source источник


Ответы (2)


Во-первых, помните, что намерения представляют то, что пользователь говорит или делает, а не то, как вы на них реагируете. Так что вообще не имеет смысла «запускать намерение». Вот почему обычно советуют не использовать события - хотя они имеют некоторый смысл в ограниченных случаях, эти случаи обычно представляют собой пользовательское событие, а не вашу программу, пытающуюся что-то сделать.

Если вы хотите, чтобы ваше удовлетворение что-то делало - просто сделайте это. Несколько обработчиков намерений могут вызывать одну и ту же функцию, чтобы реагировать одинаково.

Установка контекста не запускает автоматически намерение. Установка контекста ввода для намерения ограничивает, при каких условиях это намерение может быть запущено. Хотя он по-прежнему требует сопоставления одной из обучающих фраз, он также требует, чтобы все входные контексты были активными.

person Prisoner    schedule 26.04.2020
comment
спасибо за прекрасное объяснение. Это дало мне понять, что лучший способ двигаться вперед - это немного увеличить мои намерения на основе пользовательского ввода, которого я ожидаю. Еще раз спасибо ???????? - person jeff-ridgeway; 27.04.2020
comment
Большой! Если ответ помог, принятие и / или голосование всегда приветствуются. - person Prisoner; 27.04.2020

Именно для этого и предусмотрены мероприятия. Просто вызовите событие из своего веб-перехватчика.

person Anthony V    schedule 26.04.2020
comment
Спасибо, но, как я сказал в своем вопросе, я стараюсь избегать событий, насколько это возможно, потому что я думаю, что события основаны в большей степени на крайних случаях, а не на моем собственном конкретном случае. Я пробовал события через свой веб-перехватчик, но, как я уже говорил выше, безуспешно. Лучше задействовать несколько дескрипторов намерений, чем продвигаться вперед с событиями, imo. Спасибо за ответ! - person jeff-ridgeway; 27.04.2020
comment
Может быть, вы лучше сформулируете свой вариант использования и объясните, почему вы думаете, что события - это неправильный подход? События можно использовать для всего, что происходит вне разговора. - person Anthony V; 27.04.2020