Почему Dialogflow nodejs sdk "обнаруживает намерение с помощью базы знаний" отвечает нулевым? (V2Beta) - PullRequest
0 голосов
/ 10 января 2019

Я интегрирую Dialogflow Nodejs sdk в свое приложение для определения намерения базы знаний с помощью следующего документа nodejs-dialoglowflow-detect-Knowledgebase-intent .

Ниже мой запрос

const request = {
session: sessionPath,
queryInput: {
  text: {
    // The query to send to the dialogflow agent
    text: message,
    // The language used by the client (en-US)
    languageCode: 'en-US',
  },
},
queryParams: {
  knowledgeBaseNames: ['projects/my-project-id/knowledgeBases/my-knowledge-base-name'],
},

};

Когда я тестирую FAQ в консоли диалогового потока, он работает, но когда я пытаюсь сделать то же самое с Dialoglflow Nodejs SDK, объект knowledgeAnswers из отклика диалогового потока равен нулю.

Любая помощь приветствуется. Благодаря

1 Ответ

0 голосов
/ 15 мая 2019

Это происходит из-за неверного значения в свойстве knowledgeBaseNames. Когда вы создаете базу знаний, она возвращает ответ ниже:

{
  "name": "projects/project-id/knowledgeBases/NDA4MTM4NzE2MjMwNDUxMjAwMA",
  "displayName": "knowledge-base-display-name"
}
Свойство

knowledgeBaseNames принимает массив name. Это отличается от displayName.

В случае, если вы создали панель мониторинга Dialogflow формы Konwledgebase, вы не увидите эту деталь на панели мониторинга. Однако Dialogflow SDK предоставляют API для получения списка базы знаний агента. Узел js V2Beta1 SDK имеет метод projects.knowledgeBases.list, который, когда ему присваивается имя проекта, перечисляет все базы знаний вместе с отображаемым именем и именем. Вы можете отправить список имен в запрос на обнаружение намерения.

Если для вашего варианта использования требуется только знание идентификатора базы знаний, вы можете получить его из раздела «Попробуйте» в консоли Dialogflow. Введите вопрос, который вы добавили в базу знаний, и нажмите diagnostic info. Он покажет ответ диалогового потока в формате JSON. Ищите объект knowledgeAnswers. Идентификатор базы знаний является частью свойства source, как указано ниже:

"knowledgeAnswers": {
            "answers": [{
                "source": "projects/project-id/knowledgeBases/knowledgebase-id/documents/document-id"
            }]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...