Это происходит из-за неверного значения в свойстве 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"
}]
}