2016-12-11 5 views
3

Я тестировал действия в Google с помощью Api.AI. Я написал простой nodejs webhook, используя их образец: https://github.com/actions-on-google/apiai-silly-name-maker-webhook-nodejs.Разговор заканчивается после выполнения?

Дело в том, что я не хочу, чтобы агент прекратил разговор после выполнения запроса. Я не проверял поле КОНЕЦ КОНВЕРСАЦИИ в Intent на API.AI.

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

ответ

3

Возможно, вы используете assistant.tell(), чтобы отправить ответ. Независимо от того, что настроено в api.ai, это закончит разговор.

Вместо этого используйте assistant.ask() - это будет держать разговор открытым.

Чтобы использовать параметры между вопросами, вы, вероятно, захотите использовать api.ai's contexts.

1

Действия в клиентской библиотеке Google предоставляют поле данных для хранения значений во время сеанса пользователя. Например, логика действия может сделать:

assistant.data.answer = 10; 

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

let previousAnswer = assistant.data.answer; 

Если вы хотите, чтобы пользователь ответить во время разговора с помощью клиентской библиотеки «спросить» метод:

assistant.ask('Welcome to My Action! Say a number.'); 

Если вы хотите, чтобы закончить разговор, используйте клиентскую библиотеку «сказать» метод:

assistant.tell('Ok, see you next time.'); 
+0

Я посмотрел на делать то же самое - с помощью «глобального» контекст давал API.AI для хранить информацию о разном - но обнаружил, что API.AI добавила 2 экземпляра каждого объекта в каждый контекст, чтобы он стал довольно расточительным. Есть ли способ подавить это поведение, или ваш SDK вручную удалит эти лишние атрибуты? – Tom

Смежные вопросы