Сессионный объект Google Assistant Некоторое время работает, иногда не работает .. nodejs - PullRequest
0 голосов
/ 09 октября 2019

у меня есть один код .. полученный от действия на Google .. иногда он работает, иногда его нет .. помогите мне, если у кого-то есть идея ... объект сеанса не работает должным образом

const dialogflowAPI = require('dialogflow');
const sessionClient = new dialogflowAPI.SessionEntityTypesClient();
const client = new dialogflowAPI.EntityTypesClient();
const entityList = ['measure','dimension','size'];
const size = ['top','bottom','high','highest','low','lowest'];
exports.entityList=entityList;
exports.size=size;
exports.createSessionEntityType = async function(conv,entityName,entityValues){
try{
    const sessionEntityType = {
    name: conv.body.session + '/entityTypes/'+entityName,
    entityOverrideMode: 1,
    entities: entityValues,
  };
  const request = {
        parent: conv.body.session,
        sessionEntityType: sessionEntityType,
  };
  console.log(sessionEntityType);
  const [response] = await sessionClient.createSessionEntityType(request);
} catch(e) { 
   console.log(e); 
} 

1 Ответ

1 голос
/ 09 октября 2019

Метод для обработки сущностей сеансов отличается от действий в Google. Вместо вызова API вы указываете сущности в своем ответе. Документация показывает новый способ предоставления этой информации. Также приводится фрагмент кода для того, как вы можете сделать это в библиотеке Node.js.

app.intent('input.welcome', (conv) => {
  conv.ask('make your choice: apple or orange?');
  // Set the fruit session entity values to 'apple' and 'orange'.
  const responseBody = conv.serialize();
  responseBody['sessionEntityTypes'] =  [ {
    name: conv.body.session + '/entityTypes/fruit',
    entities: [{
        value: 'APPLE_KEY',
        synonyms: [
          'apple', 'green apple', 'crabapple'
        ]
     },
     {
        value: 'ORANGE_KEY',
        synonyms: [
         'orange'
        ]
     }],
    entityOverrideMode: 'ENTITY_OVERRIDE_MODE_OVERRIDE'
  }];
  conv.json(responseBody);
});
...