如何通过QnA Create Knowledgebase API发送本地文件路径?

时间:2018-11-22 15:46:08

标签: botframework qnamaker

我指的是这份QnA create knowledgebaseAPI文档。我想通过存储在本地路径中的Excel文件上传知识库。我没有Excel文件的URL,只有本地路径。

我遵循github link上给出的代码,删除了不必要的内容并保留了变量“ kb”,如下所示:

   static string kb = $@"
    {{
      'name': 'VivekKB',
      'qnaList': [],
      'urls': [ ],
      'files': [
            'files': {{DBFile}}
        ]
    }}

DBFile 是具有完整路径的文件名。当我运行代码时,它将创建一个Empty知识库。它没有上传我提到的excel文件。您能否帮我弄清楚如何直接将本地excel QnA数据上传到QnA商店。我想避免将Excel手动上传到位于https://www.qnamaker.ai的知识库中。

先谢谢了。 维维克

1 个答案:

答案 0 :(得分:1)

直接与QnA团队联系,并提出以下要求:

问题:是否可以使用本地文件路径通过编程API创建KB?

我知道程序化QnA API文档中给出的内容演示了如何添加也已经在线提供的PDF文件:

"files": [
    {
      "fileName": "SurfaceManual.pdf",
      "fileUri": "https://download.microsoft.com/download/2/9/B/29B20383-302C-4517-A006-B0186F04BE28/surface-pro-4-user-guide-EN.pdf"
    }

但是,当我尝试使用“ fileUri”中的相对文件路径在Postman中使用“ POST创建知识库”时,出现“无效uri”错误。

请求正文

{
  "name": "Simple QnA",
  "files": [
    {
      "fileName": "simpleQnaSource.docx",
      "fileUri": "C:\\Users\\v-asho\\Documents\\RandomWordDocs"
    }
  ]
}

响应

{
    "error": {
        "code": "BadArgument",
        "message": "Invalid input. See details.",
        "details": [
            {
                "code": "ValidationFailure",
                "message": "File Uri has one or more invalid uri.",
                "target": "Files[0].FileUri"
            }
        ]
    }
}

通过qnamaker.ai门户在线在线上传.docx文件成功创建了一个KB,特别是通过遇到问题的程序化api。


QnA小组的答案:

fileUri”可以具有可公开使用和可下载的URI作为值。 通过API使用时,请将本地文件的内容上传到公共可用域。 (例如:Azure存储Blob已公开共享)。