Skip to main content

QnA Maker初体验 - 为自己的机器人应用创建知识库

分类:  Azure认知服务 标签:  #Azure #人工智能 #语言理解(LUIS) #Azure QnA Maker #QnA Maker 发布于: 2023-06-10 21:12:37

我们前面介绍了使用QnA Maker这个服务主要是为了会话式应用, 我们今天用一个很简单的文章快速的介绍一下如何使用QnA Maker提供的工具快速的创建一个知识库,然后将该知识库发布为可以供客户端应用(像web app, 机器人应用等)访问的终结点。

创建QnA Maker资源

在开始之前我们需要您有Azure的订阅,如果您还没有Azure的订阅,请到Azure的首页创建一个试用的订阅,有了订阅之后,请使用您的账号登录到Azure的首页,在Azure Marketplace里搜索QnA, 在出现的搜索结果中,选择QnA Maker, 然后创建:


在出现的创建界面,需要注意的是,QnA Maker本身不存储任何的数据,它只提供使用机器学习的模型,所有的知识库被存储在Azure Search里,并且由Azure Search进行索引,同时当QnA Maker发布时会发布会以Web App为主题的资源终结点,因此在创建时也需要选择一个Web App的相关信息,由于Managemted目前还是一个preview的阶段,建议不要选择这个选项,详细的情况如下图:


填充好信息之后,点击创建,等待一段时间即可完成创建。

创建知识库

创建好QnA Maker资源之后,访问QnA Maker的Portal:https://qnamaker.ai/, 使用Azure订阅登录,进入QnA Maker的首页, 选择您刚刚创建的资源,如下图:


然后选择Create a Knowledge base
在出现的界面上:

  • 选择创建的资源
  • 选择语言为English, 这个仅仅是为了完成我们的demo, 如果是自己的项目,请根据自己的项目选择对应的语言.
  • 将知识库命名为myfirstDemoKB
  • Enable multi-turn extraction from URLs, .pdf or .docx files.
  • Multi-turn default text: Select an option
  • URL 添加一个FAQ的URL: https://www.microsoft.com/en-us/software-download/faq
  • Chit-chat 选择Professional

然后创建,如下图:



创建新的QnA对

在创建好知识库之后,我们需要创建一些问答对,所谓的问答对,也就是一问一答的实例,您可以浏览一下我们之前给出的样例faq, 可以看看已经有的问答对。在知识库上选择Add QnA Pair, 然后添加如下的问答对

  • Questions: How many Azure services are used by a knowledge base?
  • Answer(使用markdown格式): * Azure QnA Maker service\n* Azure Cognitive Search\n* Azure web app\n* Azure app plan

如下图:


保存并训练模型

点击右上角的Save and Train按钮,保存当前的知识库并训练模型.


测试知识库

选择右上角的Test按钮,测试当前训练好的模型以及知识库, 在出现的对话框中输入:I want to know the difference between 32 bit and 64 bit Windows, 然后可以看到测试结果,在测试结果图一中如果选择Inspect you, 可以观察到更详细的调用过程。如下图一图二



发布知识库

在主菜单上选择Publish对知识库进行发布,发布之后,实时库的索引从test转入到prod索引


发布成功后的结果图,从该图中可以创建一个机器人,如下图:


如果要创建机器人集成,只需要选择按钮Create Bot, 如果无需创建机器人,但是需要给自己的应用使用,只需要保存PostMan或者curl的示例URL

创建机器人

我们在上述完成的结果图中点击Create Bot选择创建一个机器人。
系统会自动引导您进入到Azure Portal, 并引导您创建一个机器人,如下图:


测试机器人

机器人创建成功后,进入到机器人的首页,选择Test in Web Chat, 如下图:


这样无需任何代码已经可以拥有一个通过给知识库添加知识的并且无限增长的机器人了。

今天的入门就到此结束,接下来的章节我们继续深入QnA的各种技术和黑科技。