簡體   English   中英

如何從 Bot Framework 中的數據庫中獲取 Bot Activity Message?

[英]How to bring the Bot Activity Message from database in Bot Framework?

我正在 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 的活動,一旦用戶說了些什么

但是,我想知道是否有辦法從數據庫中讀取 Bot Turn Activity?

例如:

機器人:你好!

:你好

機器人:你叫什么名字?

:XYZ

所以我想要的是像你好你叫什么名字的 Bot 活動文本 , ...應該來自數據庫(最好是 SQL) 這可能嗎?

我正在使用 Bot Framework v4.0 Emulator 進行本地測試。

首先要了解的是,機器人只是網絡應用程序。 如何從數據庫中獲取數據到機器人中的問題只是如何從數據庫中讀取數據的問題,與機器人無關。 您的問題根本無法回答,因為您沒有選擇特定的數據庫管理系統。 如果您的數據位於您的機器人可以以某種方式訪問​​的數據庫中(例如使用 REST API),那么答案是肯定的。

將數據存儲在 Cosmos DB 等數據庫中是 Bot Framework 內置的一項功能,但這與機器人狀態有關,該狀態是幫助機器人跟蹤特定用戶和對話的數據。 聽起來您想要的是定義機器人的靜態數據,而不是特定於任何特定用戶或對話。 C# 應用程序將字符串存儲在資源文件中是很常見的,並且 Bot Framework 具有您可能感興趣的即將推出的語言生成功能,但如果您真的想從數據庫中提取字符串,請繼續。 由您決定如何執行此操作,因為您甚至還沒有決定要使用什么 DBMS,但我可以告訴您,在任何情況下,您執行此操作的方式都不會特定於機器人。

就 Bot Framework 方面而言,請查看Azure Bot 服務文檔以獲取更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM