【问题标题】:Sorry, my bot code is having an issue... But it does not抱歉,我的机器人代码有问题......但它没有
【发布时间】:2017-12-04 16:54:42
【问题描述】:

我已经使用 Microsoft Bot Framework(Builder v3.12.2.4,这是目前的最新版本)开发了一个机器人。实际上,我将所有库都更新到了最新版本,也有 AdaptiveCards,最新的 beta10。

所以,我构建了机器人,部署了它,一切都运行良好。但是突然之间,所有平台都给出了“抱歉,我的机器人代码有问题”的响应。因此,在每次输入时,都会给出反馈(如你好、卡片……),但也会给出这条消息。

我检查了双重 context.Wait() 调用,但没有。 我启用了信息日志记录并放置了各种日志记录,给出了以下结果(在这里看不到错误,因为我的 catch 语句会记录一行)

2017-12-04T16:45:40  PID[4812] Information Sentiment recognition ON: True
2017-12-04T16:45:41  PID[4812] Information Forwarded message to Luis Dialog: Hallo
2017-12-04T16:45:41  PID[4812] Information Detect Chat intent in Luis Dialog

我所看到的,但之前已经是这样的情况是:

2017-12-04T16:45:46  PID[4812] Warning     The Bot State API is being deprecated.  
Please refer to https://aka.ms/yr235k for details on how to replace with your own storage.

但是,这似乎是机器人框架内部的东西...... Bot 服务说“我很好,没有发现问题”。所以我的想法已经不多了。

任何人都遇到过这个并且有线索。顺便说一句:我已经为 1 个平台(电报)设置了自适应卡片,并在另一个平台(Skype、网络聊天)上使用了内置的 herocard,并且都给出了这种行为

其他信息。我忘了把 1 个异常日志记录放在 API 控制器方法本身中。 这个说: 操作返回无效状态代码“冲突” 但是,我不知道这意味着什么。通过https://docs.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes 找到的默认 REST API 解释似乎没有意义

【问题讨论】:

  • 那是HTTP Status code 409。它可能与State API有关,或者您使用的是“beta10”?
  • 您发布了零代码。在不知道代码中发生了什么的情况下,任何人都可以做的就是猜测为什么会出现特定错误。您应该花一些时间阅读帮助中心,以获取有关您的问题需要包含哪些内容才能成为主题和可回答的建议。
  • 请提供您的 appID 和机器人句柄也可以在这里打开一个 github 问题github.com/Microsoft/BotBuilder/issues/new
  • 这可能是重复的吗? - stackoverflow.com/questions/47638240/…
  • 不,Joe Mayo,你指的是同一个话题;)

标签: c# botframework chatbot azure-language-understanding


【解决方案1】:

错误信息:

Bot State API 已被弃用

意味着您的聊天机器人需要使用您自己的存储来管理状态。消息中的 URL 转到 Manage custom state data with Azure Cosmos DB for .NET 页面,这解释了原因。

去年 7 月,Bot Framework 团队在博客上发表了这篇文章:Saving State data with BotBuilder-Azure in .NET。之后,如果您阅读其他几篇博文,您将了解如何使用其他数据存储(如 SQL Server)进行状态管理。

确实,您希望使用自己的状态管理,因为它们提供的存储量非常小,提高了性能,减少了延迟,并且更好地控制了状态。

设置状态应该是所有聊天机器人的正常任务。

【讨论】:

  • 我同意,保持自己的状态的好处是还可以控制会话终止策略。
  • 谢谢,我现在正在实施该部分,因为这是一个很好的建议。目前该错误已解决,所以它一定是框架中的一些奇怪的东西,但是,我阅读了您参考的博客文章,它也给了我更多的可能性。
  • 我肯定对 Azure cosmos 或任何它们的存储不感兴趣,我们不能用 memcached 或 redis 之类的东西来做吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-28
  • 1970-01-01
  • 1970-01-01
  • 2012-07-29
  • 2012-04-19
  • 2012-06-19
相关资源
最近更新 更多