NodeJs DialogFlow: имя '' не соответствует шаблону - PullRequest
0 голосов
/ 29 ноября 2018

Я пытаюсь использовать Dialogflow NodeJS API для создания типа сущности сеанса.Пока мой код выглядит следующим образом:

app.post('/addsession', (req, res) => {
    pathJoiner = require("path");
    process.env.GOOGLE_APPLICATION_CREDENTIALS = pathJoiner.join(__dirname, "/config/AgentKeyFile.json");
    createSessionEntityType(req.body.path, res);
});

function createSessionEntityType(sessionPath, res) {

  const dialogflow = require('dialogflow');

  // Instantiates clients
  const sessionEntityTypesClient = new dialogflow.SessionEntityTypesClient();

  const entitiesArr = [{
      "value": "Test Name",
      "synonyms": ["Test Name", "Test"]
  }];

  const createSessionEntityTypeRequest = {
      parent: sessionPath,
      session_entity_type: {
          name: sessionPath + "/entityTypes/Friends-Name",
          entity_override_mode: "ENTITY_OVERRIDE_MODE_OVERRIDE",
          entities: entitiesArr
      },
  };

  sessionEntityTypesClient
   .createSessionEntityType(createSessionEntityTypeRequest)
   .then(responses => {
      console.log("Entity type created: " + responses);
      res.setHeader('Content-Type', 'application/json');
      res.send(JSON.stringify(responses.body));
   })
}

Однако, когда я запускаю этот код с сервера Heroku, я получаю следующую ошибку:

UnhandledPromiseRejectionWarning: Error: 3 INVALID_ARGUMENT: Name '' does not match patterns
'projects/{projectId=*}/agent/environments/{environmentId=*}/users/{userId=*}
/sessions/{sessionId=*}/entityTypes/{entityTypeName=*},projects/
{projectId=*}/agent/sessions/{sessionId=*}/entityTypes/{entityTypeName=*}'

Я не уверен, почему он сохраняетговоря имя параметра пусто.Я знаю, что что-то упустил, но не могу понять, что.

1 Ответ

0 голосов
/ 29 ноября 2018

Я изменил свой код на следующий, и проблема исчезла

   const dialogflow = require('dialogflow');
   const projectId = "projId";

   // Instantiates clients
  const sessionEntityTypesClient = new dialogflow.SessionEntityTypesClient();
  const sessionPath = sessionEntityTypesClient.sessionPath(projectId, sessionId);
  const sessionEntityTypePath = sessionEntityTypesClient.sessionEntityTypePath(projectId, sessionId, "Entity-Name");

  const entitiesArr = [{
       "value": "Test Name",
       "synonyms": ["Test Name", "Test"]
  }];

  const createSessionEntityTypeRequest = {
      parent: sessionPath,
      sessionEntityType: {
         name: sessionEntityTypePath,
         entityOverrideMode: "ENTITY_OVERRIDE_MODE_OVERRIDE",
         entities: entitiesArr
      },
  };

  sessionEntityTypesClient
     .createSessionEntityType(createSessionEntityTypeRequest)
     .then(responses => {
     console.log("Entity type created: " + responses);
     res.setHeader('Content-Type', 'application/json');
     res.send(JSON.stringify(responses[0]));
  })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...