【问题标题】:How to bring the Bot Activity Message from database in Bot Framework?如何从 Bot Framework 的数据库中获取 Bot 活动消息?
【发布时间】:2020-01-01 03:41:06
【问题描述】:

我正在开发一个小型项目,用于在 Bot Framework 上进行自我开发。在我的要求上需要一些帮助。我希望从数据库中获取机器人对话(只有机器人不是用户)。我知道如何使用静态文本发送活动并获得用户响应,如下所示。

我有这个代码:

private static async Task<DialogTurnResult> NameConfirmStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)
    {
        var promptOptions = new PromptOptions
        {
            Prompt = MessageFactory.Text($"Hello ! My name is XYZ and I am the Manager of ABC Dept.")
        };
    return await stepContext.PromptAsync(nameof(TextPrompt), promptOptions, cancellationToken);
    }

    private static async Task<DialogTurnResult> NameStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)
    {
        stepContext.Values["intro"] = ((FoundChoice)stepContext.Result);
        return await stepContext.PromptAsync(nameof(TextPrompt), new PromptOptions { Prompt = MessageFactory.Text("What is your name?") }, cancellationToken);
    }

上面的代码是用户说话后机器人的活动

但是,我想知道是否有一种方法可以从数据库中读取 Bot Turn Activity?

例如:

机器人:你好!

:你好

机器人:你叫什么名字?

:XYZ

所以我想要的是 Hello你叫什么名字?、... 应该来自数据库(最好是 SQL)的 Bot 活动文本。这可能吗?

我正在使用 Bot Framework v4.0 Emulator 进行本地测试。

【问题讨论】:

  • 我的回答可以接受吗?

标签: c# sql botframework


【解决方案1】:

首先要了解的是,机器人只是网络应用程序。如何从数据库中获取数据到机器人的问题只是如何从数据库中读取数据的问题,与机器人无关。您的问题根本无法回答,因为您没有选择特定的数据库管理系统。如果您的数据位于您的机器人可以以某种方式访问​​的数据库中(例如使用 REST API),那么答案是肯定的。

在 Cosmos DB 等数据库中存储数据是 Bot Framework 中已内置的一项功能,但这与机器人状态有关,机器人状态是帮助机器人跟踪特定用户和对话的数据。听起来您想要的是定义机器人的静态数据,而不是特定于任何特定用户或对话。 C# 应用程序将字符串存储在资源文件中是很常见的,Bot Framework 即将推出您可能感兴趣的 language generation 功能,但如果您真的想从数据库中提取字符串,请继续。由您来决定如何执行此操作,因为您甚至还没有决定要使用什么 DBMS,但我可以告诉您,无论如何,您执行此操作的方式都不会是特定于机器人的。

就 Bot Framework 方面而言,请查看Azure Bot Service documentation 了解更多信息。

【讨论】:

    猜你喜欢
    • 2017-04-20
    • 2021-08-06
    • 2020-07-18
    • 2017-07-04
    • 1970-01-01
    • 1970-01-01
    • 2020-04-07
    • 2021-12-12
    • 2019-03-03
    相关资源
    最近更新 更多