Ваш вопрос несколько расплывчатый, но звучит так, как будто у вас в параметре Intent будет задано какое-то значение, эти значения поступают из пользовательского типа сущности, и вы хотите разные ответы для каждого значения.
Вы не можете справиться с этим через раздел Ответа Намерения - вам нужно использовать веб-крюк выполнения.
Если вы используете библиотеку actions-on-google (которую выпредположим, что вы можете использовать), а параметр был назван val
, тогда фрагмент кода может выглядеть примерно так:
app.intent('choose.value', (conv, {val}) => {
switch( val ){
case 'red':
agent.add('I like red too!');
break;
case 'blue':
agent.add('Blue is pretty cool!');
break;
default:
agent.add(`Not sure what to say about ${val}.`);
}
})
Если вы используете библиотеку dialogflow-executement , это будет что-то вроде:
var chooseVal = function( agent ){
var val = agent.parameters.val;
switch( val ){
case 'red':
conv.ask('I like red too!');
break;
case 'blue':
conv.ask('Blue is pretty cool!');
break;
default:
conv.ask(`Not sure what to say about ${val}.`);
}
}
Если вы используете multivocal , вы можете добавить конструктор, который устанавливает настройку среды Outent
на основе цвета, и установить ответыдля Outent и Intent в конфигурации:
new Multivocal.Config.Simple({
Local: {
en: {
Response: {
"Outent.red": [
"I like red too!",
"Red is nifty."
],
"Outent.blue": [
"Blue is pretty cool!",
"I really groove blue"
],
"Intent.choose.value": [
"Not sure what to say about {{Parameter.val}}"
]
}
}
}
});
var outentBuilder = function( env ){
env.Outent = `Outent.${env.Parameter.val}`;
return Promise.resolve( env );
};
Multivocal.addBuilder( outentBuilder );