在对话框中,我想询问用户他的电子邮件地址.如果用户错误地输入了无效的电子邮件,我希望能够返回或进入一些"循环"状态,继续询问他的电子邮件,直到他输入有效的电子邮件.实现这一目标的最佳方法是什么?我找不到任何方法回到瀑布对话中的一步.
我试图让我的机器人开始与用户进行对话,但我不知道代码中应该从哪里发送消息.启动convo的文档在这里,但它并没有超级帮助:http://docs.botframework.com/connector/new-conversations/#navtitle.我也尝试在HandleSystemMessages中回复(如果我更改了消息类型,它与模拟器一起工作)但它仍然不会发送第一条消息.
我正在使用Microsoft Bot Connector和C#.
// Idk如何在stackoverflow中进行语法高亮显示//这是我在MessageController类中的代码
public async Task<Message> Post([FromBody]Message message)
{
if (message.Type == "Message")
{
return message.CreateReplyMessage($"You said:{message.Text}");
}
else
{
return HandleSystemMessage(message);
}
}
Run Code Online (Sandbox Code Playgroud) 我在 BotFather Telegram 中创建了一个新游戏。但是没有关于游戏链接的任何问题。此外,在“sendGame”函数中没有任何参数来设置游戏网址。如何在 BotFather 创建的游戏后面设置我的 gameUrl?
我应该说,我正在使用 Microsoft Bot Framework 来开发我的机器人。
我们在 Azure 上部署了一个机器人,但我们想将其提供给客户,以便他可以使用自己的资源部署它并运行它。我们需要给他们一个 Powershell 脚本,它神奇地创建和部署机器人工作所需的所有资源。我的机器人架构由以下部分组成:
我的问题是:
1)如何将bots web api配置为连接字符串参数?(表存储,luis和qna服务重新部署时会有所不同)目前我正在定义conn。web.config 上的字符串和 api 键,但正如我所说,这需要是动态的。
2) 如何自动部署 LUIS?Luis 需要首先创建认知服务帐户的密钥。我假设我有导出的模型 json 文件。我正在考虑使用 LUIS API 来进行应用程序导出和发布部分。这样就够了吗?
3)如何部署qna服务?我认为目前被神奇地部署在某个地方,所以也许我不需要对它做任何事情。
谢谢!
azure-table-storage azure-deployment asp.net-web-api botframework azure-language-understanding
我正在研究.NET中的机器人.我有一个scorable,我想从一个对话框D1,然后最终得到一个空堆栈.或者用另一种方式,我想发射一个新的对话框,但不是打断然后恢复我所处的位置(像最可靠的例子),最后得到一个空白的对话框(如取消可行的例子).
可能相关点:它触发的对话框(D1)依次在堆栈上放置另一个对话框(D2),我也希望在堆栈清除之前正常工作.
有一个取消可行的例子:https://docs.microsoft.com/en-us/bot-framework/dotnet/bot-builder-dotnet-global-handlers .其目的是清除对话框堆栈.
我想这样做,但先调用另一个对话框.我在我的scorable的PostAsync()方法中试过这个:
var interruption = dialog_D1.Void<object, IMessageActivity>();
_task.Call(interruption, null);
await _task.PollAsync(token);
_task.Reset();
Run Code Online (Sandbox Code Playgroud)
然而,只要D1调用D2,就会触发PollAsync()并清除对话框堆栈.这意味着当您响应D2时,堆栈为空,RootDialog接受输入.
我也在我的scorable的PostAsync()方法中试过这个:
var interruption = dialog_D1.Void<object, IMessageActivity>();
_task.Call(interruption, AfterCallingDialog);
await _task.PollAsync(token);
...
private async Task AfterCallingDialog(IDialogContext context, IAwaitable<object> result)
{
_task.Reset();
}
Run Code Online (Sandbox Code Playgroud)
但在这种情况下,机器人错误地出现"IDialog方法执行完成了通过IDialogStack指定的多个简历处理程序".一击到_task.Call()
任何人都可以建议修复此问题或让我知道一个不同的方法?
谢谢!
背风处
有人可以澄清一下,我们是否可以在完全非 Azure/非云/非 Azurestack 的纯本地传统私有环境(位于非常严格的企业代理后面,没有使用内部本地 Skype For Business 通道在运行时访问 Azure/AWS/Internet ?如果是这样...是否有一个链接可以用来实现相同的目标(部署到 IIS?)。
我看了这个帖子:Bot Framework without Azure possible?
这似乎仍然需要互联网连接并在微软网站上注册机器人。如果这是一次性活动,那没问题,但我的 BOT 服务是否需要连接到该注册才能保持其正常运行?
到目前为止,我已经创建了一个 Hello World Bot,它可以使用 VS2017 和 Bot 模拟器正常工作(步骤:https: //learn.microsoft.com/en-us/bot-framework/dotnet/bot-builder-dotnet-quickstart)。我多么想将其部署到我们的内部 Skype for Business 渠道,但目前尚不清楚它是否可以独立于任何 Azure/云服务运行。
提前非常感谢
我需要一个接受用户输入的机器人,将其用作某个第三方休息api呼叫的id并发回响应.我查看了Microsoft文档,但没有找到有关如何编写请求 - 响应过程的任何示例.
任何示例或有用的链接将不胜感激
在Azure Bot Service中创建机器人时,根据本文,您有两个托管选项:https : //docs.microsoft.com/zh-cn/bot-framework/bot-service-overview-introduction
应用程序服务计划(标准Azure Web应用程序,Web App Bot)消费计划(Azure功能,Functions Bot)
我试图了解每个优点和缺点。Function Bot的计费模型最适合我的用例,但我似乎在发现局限性。似乎Microsoft的文档也偏向于将Web App Bot作为标准。
到目前为止,这是我所知道的:
计费模式不同。App Services计划的计费方式更像是始终运行的VM,而功能按运行付费。
App Service使用标准的ASP.NET MVC模型。函数使用C#脚本
Visual Studio似乎对调试和发布App Service计划机器人提供了更好的支持
我认为与#2相关的一件事是全局消息处理。Microsoft提供的用于实现全局消息处理程序的示例似乎要求使用global.asax.cs来注册全局处理程序,该文件不在Function Bot中。
Web App机器人是Microsoft的首选选项吗?
两种选择都更好地支持.NET Core吗?
有没有一种方法可以在Function Bots中实现全局处理程序?
功能机器人还有其他特定弱点吗?
一种选择比另一种更“现代”吗?
aws-lex 可以用来构建对话流机器人吗?
例如:
有没有办法在 aws-lex 中做这样的事情?
我尝试使用插槽/提示/lambda,但我无法进入图表中的第二或第三级深度。可以以某种方式完成吗?
非常感谢!
这一切的原因:所以我们有自己的“对话构建器”和“机器人服务”。我们自己的“对话生成器”:可能类似于 Amazon Connect 对话生成器,我们自己的“机器人服务”类似于 Microsoft 机器人框架。在我们使用 microsoft-luis 来获取句子的“意图”之前,同时使用我们自己的对话生成器和我们自己的机器人服务来构建对话/对话流程,例如如果用户说“是”,则转到另一个流程,如果用户说“不”然后转到不同的流程(这可以在槽中完成吗?)===二叉树:)
因此,现在我们正在从 luis 切换到 aws-lex,并尝试思考是否可以只使用 aws-lex UI 而不再使用我们的(对话构建器/机器人服务)。但我的理解是,要在没有某种对话生成器的情况下使用 aws-lex,如果它包含大量数据,我们需要编写大量 if/case 语句,对吗?你的建议是什么?一种方法是仅使用“Amazon Connect”来利用他们的对话生成器,这样我们就不必编写大量 if 语句,但如果我们使用对话生成器,我们可以只使用我们自己的(旧的)对话生成器吗?你怎么认为?
lambda aws-lambda botframework azure-language-understanding aws-lex
我正在尝试开始预定的主动对话(机器人在预定时间启动对话)。我设法根据 Graph API 获取用户的 AAD ID,但它与 Teams 用户 ID 不匹配。尝试了两个多小时才获得正确的ID,但我不知道如何获得。我应该采取的最佳方法是什么?
botframework ×10
bots ×4
azure ×2
azure-language-understanding ×2
c# ×2
aws-lambda ×1
aws-lex ×1
lambda ×1
rest ×1
telegram-bot ×1
waterfall ×1
webhooks ×1