我们可以让聊天机器人先说问候语,而不仅仅是作为反应吗

2024-03-19

我正在使用 Microsoftt Bot Framework 和 LUIS 认知服务开发聊天机器人。 我想要一条初始欢迎消息,例如“你好,用户,你好吗!”我的机器人一启动。

在 MessageController 中可以做任何事情

public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
        {
            Trace.TraceInformation($"Type={activity.Type} Text={activity.Text}");

            if (activity.Type == ActivityTypes.Message)
            {
                //await Microsoft.Bot.Builder.Dialogs.Conversation.SendAsync(activity, () => new ContactOneDialog());

                await Microsoft.Bot.Builder.Dialogs.Conversation.SendAsync(activity, () =>
                new ExceptionHandlerDialog<object>(new ShuttleBusDialog(), displayException: true));

                //await Microsoft.Bot.Builder.Dialogs.Conversation.SendAsync(activity, () => new ShuttleBusDialog());
            }
            else
            {
                HandleSystemMessage(activity);
            }
            var response = Request.CreateResponse(System.Net.HttpStatusCode.OK);
            return response;
        }

您可能想尝试将消息作为ConversationUpdate事件。更新你的HandleSystemMessage方法,因此看起来如下所示:

    private async Task HandleSystemMessage(Activity message)
    {
        if (message.Type == ActivityTypes.DeleteUserData)
        {
            // Implement user deletion here
            // If we handle user deletion, return a real message
        }
        else if (message.Type == ActivityTypes.ConversationUpdate)
        {
            ConnectorClient client = new ConnectorClient(new Uri(message.ServiceUrl));

            var reply = message.CreateReply();

            reply.Text = "Hello user how are you?"

            await client.Conversations.ReplyToActivityAsync(reply);
        }
        else if (message.Type == ActivityTypes.ContactRelationUpdate)
        {
            // Handle add/remove from contact lists
            // Activity.From + Activity.Action represent what happened
        }
        else if (message.Type == ActivityTypes.Typing)
        {
            // Handle knowing tha the user is typing
        }
        else if (message.Type == ActivityTypes.Ping)
        {
        }
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我们可以让聊天机器人先说问候语,而不仅仅是作为反应吗 的相关文章

随机推荐

  • 具有三个键的复合索引,如果我查询跳过中间一个会发​​生什么?

    对于 PostgreSQL 我想在三列上使用复合索引A B C B is the created at日期时间 有时我可能会查询没有B 如果我复合索引会发生什么 A B C 但然后查询条件A and C 但不是B 那是 A and C但想要
  • 查找权重仅为 1 和 2 的生成树的算法

    给定一个带权 连通 简单无向图 G 每条边的权重仅为 1 和 2 求 G 在 O V E 中的 MST 有任何想法吗 很抱歉问题的措辞 我尽力翻译它 In Prim 算法 http en wikipedia org wiki Prim 27
  • 在 require.js AMD 中添加 Mustache Temple 到 require

    在 js 中 您可以在定义模块时在 require 部分加载 html 模板 例如 模板文件 test html 在模块中 define template test function rest of code 但这会在获取文件名附加的文件时
  • python 打印一行相同的空格

    我需要在同一个地方打印 确定 有什么办法可以做到吗 我找到了解决方案 但它们不能正确地与 IDLE 配合使用 while count lt 9 if statusm
  • phpmyadmin 和外键

    我向我的字段之一添加了外键约束 插入时 该字段显示为下拉菜单而不是预期的文本框 但下拉菜单中的每个值都会列出两次 一次在值之前有一个减号 一次在值之后有一个减号 像这样 value1 value2 value3 value1 value2
  • 如何将 .pb 转换为 TFLite 格式?

    我下载了一个retrained graph pb and retrained labels txt我在 Azure 认知服务中训练的模型的文件 现在我想使用该模型制作一个 Android 应用程序 为此我必须将其转换为 TFLite 格式
  • 在渲染服务器端之前获取数据

    现在我正在发现Este js我对同构应用程序有一个小问题 我不明白如何在使用 renderToString 渲染服务器端之前进行 api 调用 一种解决方案是使用 React Router 在路由器级别获取所有数据 根据顶层路由 我可以预测
  • 在 MatSnackBar 中使用“snackBar.openFromComponent()”方法时如何放置操作按钮?

    我使用 MatSnackBar 进行通知 并且希望在小吃栏中有一个操作按钮 使用时如何插入 snackBar openFromComponent method Here is my code https stackblitz com edi
  • Facebook API 用于读取已添加书签的项目

    Facebook 最近添加了一项新功能 允许为有趣的链接添加书签以供以后阅读 保存的链接可在 保存 选项卡中找到 是否有任何 Facebook API 例如 Graph API 用于检索这些保存的项目 用于访问 Facebook 已保存链接
  • 如何进行全局字符串替换而不需要转义所有内容?

    我想用另一个字符串替换字符串中出现的所有模式 例如 让我们将所有 转换为 gt 纯 string replace 仅替换第一个匹配项 replace gives 正则表达式迫使我转义为特殊字符 replace g Pattern is no
  • 如何格式化 Multimarkdown 表格?

    我正在按照以下表格部分下的指南编写 Multimarkdown 表格语法指南 http fletcherpenney net multimarkdown users guide multimarkdown syntax guide 我希望使
  • 将根据数量复制记录的查询

    我正在使用 SQL Server 2008 并寻找一个将根据数量复制记录的查询 表具有 QTY 和 PartNumber 列 需要为每个数量添加一条附加记录 假设零件编号的数量为 3 我需要包含该零件编号的三行 任何帮助将不胜感激 谢谢 测
  • 如何删除注册表中损坏的符号链接

    我正在对注册表进行一些编辑原型 以创建从一个区域到另一个区域的符号链接 我使用了以下代码 HKEY hkFS HKEY hkSOFTWARE DWORD dwDisposition LSTATUS result result RegOpen
  • 比较函数指针

    如何比较 C 中的函数指针 稳定吗 例如 这样的事情是否有效 if pFnc myFnc Do something C 03 5 10 1 expr eq 等于 和 不等于 运算符具有相同的作用 语义限制 转换和结果类型作为关系 运算符 但
  • postgresSQL中NOT IN和NOT EXISTS的区别

    Here s my table 当我使用 NOT IN 执行以下查询时 它给出了 namal 和 Ann SELECT firstname FROM info student info WHERE firstname NOT IN SELE
  • ClickOnce 或 InstallShield 能否安装 SQL Server 或 SQL Server Express?

    可以 ClickOnce 或 InstallShield 设置或配置 SQL Server 或 SQL Server Express 专门添加sa密码 启用命名管道 授予从文件夹读取的权限 添加主数据库 mdf我的客户端应用程序所需的文件
  • Swift SpriteKit SKSpriteNode 的“有时”不出现

    我正在使用 Swift 和 SpriteKit 制作 iOS 但是 我的应用程序运行时遇到不规则现象 有时船舶 SKSpriteNodes 不会出现在屏幕上 有时子弹的 SKSpriteNodes 不会出现 有时一切都显示良好 我将子弹添加
  • AlertDialog 中的资源 ID #0x0

    我添加一个AlertDialog在 kotlin 文件中 但出现异常 btnLogin setOnClickListener view gt login fun login val builder AlertDialog Builder t
  • 如何对整数字符串进行排序?

    我在对具有整数值的字符串列表进行排序时遇到一个奇怪的问题 然而 某些值可以以某些字符作为前缀 e g B1 5 50 A10 7 72 B3 A1 A2 基本上有页码 应该按如下方式排序 A1 A2 A10 B1 B3 5 7 50 72
  • 我们可以让聊天机器人先说问候语,而不仅仅是作为反应吗

    我正在使用 Microsoftt Bot Framework 和 LUIS 认知服务开发聊天机器人 我想要一条初始欢迎消息 例如 你好 用户 你好吗 我的机器人一启动 在 MessageController 中可以做任何事情 public