Bots 如何在本地机器上运行QnA Maker帮助创建的机器人?

Bots 如何在本地机器上运行QnA Maker帮助创建的机器人?,bots,botframework,Bots,Botframework,(请注意,此常见问题解答机器人程序是在Microsoft QnA Maker的帮助下创建的,无需任何编码,然后将其连接到机器人程序框架) 我在MicrosoftBot框架上借助其“无需编码”QnA制造商创建了一个FAQ机器人,然后在bot框架上注册了它。现在我需要插入消息端点,以便bot正常工作。但我现在还没有订阅Azure机器人服务或任何其他托管服务来托管机器人。我想在本地Windows计算机上运行它 我下载了Bot Framework Emulator,并将node.js http serv

(请注意,此常见问题解答机器人程序是在Microsoft QnA Maker的帮助下创建的,无需任何编码,然后将其连接到机器人程序框架)

我在MicrosoftBot框架上借助其“无需编码”QnA制造商创建了一个FAQ机器人,然后在bot框架上注册了它。现在我需要插入消息端点,以便bot正常工作。但我现在还没有订阅Azure机器人服务或任何其他托管服务来托管机器人。我想在本地Windows计算机上运行它

我下载了Bot Framework Emulator,并将node.js http server命令运行到其文件夹中,使用ngrok对其进行隧道传输,并将生成的URL后跟消息端点的/api/messages(like)放入Bot Framework Emulator中。但它不起作用。Ngrok给出了一个错误,因为Bot是远程的,隧道是到我的本地机器的,那里也需要软件。但我没有带机器人软件代码,因为QnA制造商显然不提供下载。那么,在我为我的机器人创建工作端点之前,有哪些选项


希望我的问题是明确的,如果没有,请让我进一步澄清。蒂亚

您希望如何使用QnA层

QnA Maker页面自动承载QnA功能(目前免费,但用户正在查看使用情况),因此您可以通过多种方式将其集成:

  • 使用机器人
  • 但在一个经典的Asp.Net应用程序中也是如此
  • 或者在许多其他项目类型中
怎么用? 要使用您的知识库,设置(并培训)知识库后,第一步是在中发布。您将获得此类信息:

在bot中集成 您可以使用QnA模板:

它将使用一个名为
QnAMakerDialog
的专用对话框类型,可通过NuGet/npm获得:

对于C#,QnAMaker对话框通过 Microsoft.Bot.Builder.CognitiveServices NuGet软件包

对于Node.js,QnAMaker对话框通过 botbuilder认知服务npm模块

以下是如何使用发布阶段的参数:以下示例代码中使用了
QnASubscriptionKey
QnAKnowledgebaseId

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Threading;
using Microsoft.Bot.Connector;
using Microsoft.Bot.Builder.Dialogs;
using Microsoft.Bot.Builder.CognitiveServices.QnAMaker;

[Serializable]
public class BasicQnAMakerDialog : QnAMakerDialog
{        
    //Parameters to QnAMakerService are:
    //Required: subscriptionKey, knowledgebaseId, 
    //Optional: defaultMessage, scoreThreshold[Range 0.0 – 1.0]
    public BasicQnAMakerDialog() : base(new QnAMakerService(new QnAMakerAttribute(Utils.GetAppSetting("QnASubscriptionKey"), Utils.GetAppSetting("QnAKnowledgebaseId"), "No good match in FAQ.", 0.5)))
    {}
}
直接在另一个项目中 由于QnA Maker将您的QnA知识库发布为web API,您可以通过web调用直接从代码中使用它。以下是API参考的链接:

如果您查看了上提供的方法,您将使用
生成答案

可能存在的副本