И ask()
, и tell()
принимают свои параметры и отправляют ответ. Единственная разница в том, что ask()
продолжает разговор, ожидая, что пользователь что-то скажет в ответ, а tell()
указывает на то, что разговор окончен. Если вы думаете об этом с точки зрения веб-сервера, и ask()
, и tell()
отправляют обратно эквивалент страницы, а затем закрывают соединение, но ask()
включает форму на страницу, а tell()
нет.
Оба они могут принимать объект RichResponse, который может включать одну или две строки или Объекты SimpleResponse, которые будут отображаться в виде всплывающих окон чата. Однако вы не можете сделать три, по крайней мере, согласно документации. Таким образом, кажется, что лучше всего будет включить один SimpleResponse
с цитатой и авторством, а второй с подсказкой для другого.
Это также похоже на случай, когда вы хотите, чтобы аудио отличалось от отображаемого текста. В этом случае вам нужно построить SimpleResponse
так, чтобы он имел как поля speech
, так и поля displayText
.
Это может выглядеть примерно так (хотя я не тестировал код):
var simpleResponse = {
speech: 'Steve Jobs said "Innovation is the only way to win."',
displayText: '"Innovation is the only way to win." -- Steve Jobs'
};
var richResponse = assistant.buildRichResponse();
richResponse.addSimpleResponse(simpleResponse);
richResponse.addSimpleResponse('Do you want another?');
assistant.ask( richResponse );
Это также позволит вам делать такие вещи, как добавление карточек в середине этих двух аннотаций, которые могут, например, содержать изображение человека, о котором идет речь. Для этого вы должны вызвать метод richResponse.addBasicCard()
с объектом BasicCard
. Это может быть даже лучше визуально, чем включение атрибуции цитаты во вторую строку.
Что касается дизайна — имейте в виду, что вы разрабатываете дизайн для широкого круга устройств. Попытка сосредоточиться на форматировании строки, когда у вас есть разные режимы отображения (а иногда и несуществующие), имеет сомнительный дизайн. Не пытайтесь сосредоточиться на том, как будет выглядеть беседа, вместо этого вы должны сосредоточиться на том, насколько беседа похожа на беседу вашего пользователя с другим человеком. Помните, что голос является основным средством этого разговора, а визуальные эффекты призваны дополнять этот разговор, а не управлять им.
person
Prisoner
schedule
05.08.2017