2

我必须设计一个机器人来回答我的应用程序用户对他们项目的询问。答案将是某些 API 的实现。我的机器人将用来提供答案的这些 API 由用户特定的身份验证令牌保护。到目前为止,我已经使用 Microsoft bot 框架和 LUIS 编写了一个机器人,它可以理解某些话语并可以通过调用项目 APIS 给出答案。我对如何做这些事情感到困惑:

  1. 如何将用户身份验证令牌传递给机器人?此令牌是使用用户凭据(用户名+密码)生成的。在我的机器人代码中,我不能使用用户名/密码来生成令牌。我只需要从客户端应用程序传递它们。

  2. 如何将项目 ID 传递给机器人关于哪个用户提出问题?用户可能正在调用项目的名称,或者将从列表中选择项目。机器人应该足够智能,可以根据项目 ID 更改答案。

截至目前,我正在使用 LUIS 话语 + 实体组合处理第二部分。所以我的问题(话语是):“告诉我 {projectid} 中有什么新功能”,其中 projectid 是我的项目实体。

但是对于第一个问题,我仍在寻找解决方案。请建议。

4

1 回答 1

0

您只需对机器人进行少量修改即可使用 DirectLine API 而不是网络聊天。Directline API 让您可以灵活地将自己的数据发送到 Bot。Activity.From 中的保留属性很少,您可以从中读取数据。

  var userProperties = [];
        userProperties.push({ 
      projectId: 
        {Project_Id_Will_Be_Sent_Using_This}, 
      UserToken: 
        {User_Generated_Token} 
     });

  BotChat.App({     
    directLine: { secret: 'BOT-SECRET-KEY' },
    user: { id: '', name:'', properties:userProperties },
    bot: { id: 'YOUR-BOT-ID' },
    resize: 'detect',           
  }, document.getElementById("bot"));

如果您需要任何帮助,请回复。

于 2017-12-22T13:27:24.380 回答