如何处理用户动作 - c#

我想使用c#处理Bot框架中的用户操作。我向用户显示一些输入作为选择。在这里,用户可能不需要任何选择。因此,他们可以直接键入一些命令以退出。如果用户键入Exit,而不是选择选项(Exit未在选择中列出),我需要处理退出。默认情况下,Bot不允许输入未列出的内容。

希望这可以由Node JS(Handle User Actions)完成。我想实现以下相同的功能。

有人可以协助我吗?任何建议,将不胜感激。

参考方案

如果用户键入Exit,而不是选择选项(Exit未在选择中列出),我需要处理退出。默认情况下,Bot不允许输入未列出的内容。

您可以尝试实现global message handler,只要用户用特定的单词Exit答复对话,就执行执行代码的。以下代码段供您参考。

GlobalMessageHandlersBotModule:

public class GlobalMessageHandlersBotModule : Module
{
    protected override void Load(ContainerBuilder builder)
    {
        base.Load(builder);

        builder
            .Register(c => new ExitScorable(c.Resolve<IDialogTask>()))
            .As<IScorable<IActivity, double>>()
            .InstancePerLifetimeScope();
    }
}

ExitScorable:

public class ExitScorable : ScorableBase<IActivity, string, double>
{
    private readonly IDialogTask task;

    public ExitScorable(IDialogTask task)
    {
        SetField.NotNull(out this.task, nameof(task), task);
    }

    protected override async Task<string> PrepareAsync(IActivity activity, CancellationToken token)
    {
        var message = activity as IMessageActivity;

        if (message != null && !string.IsNullOrWhiteSpace(message.Text))
        {
            if (message.Text.ToLower().Equals("exit", StringComparison.InvariantCultureIgnoreCase))
            {
                return message.Text;
            }
        }

        return null;
    }

    protected override bool HasScore(IActivity item, string state)
    {
        return state != null;
    }

    protected override double GetScore(IActivity item, string state)
    {
        return 1.0;
    }

    protected override async Task PostAsync(IActivity item, string state, CancellationToken token)
    {
        this.task.Reset();
    }
    protected override Task DoneAsync(IActivity item, string state, CancellationToken token)
    {
        return Task.CompletedTask;
    }
}

从php文件运行命令行程序 - javascript

我想从php文件执行任何命令。我有一个nodejs文件,当我给出命令执行某件事时。它工作正常。即abc.js参数在终端上可以正常工作并执行一些任务但是,我想从运行我的命令的php文件中执行相同的任务。我尝试了不起作用的exec('filename arguments')。如果我给exec(ls -l)给出输出。请让我知道您的建议。谢谢 参考方案 我认为您必须…

Microsoft chatbot(Node.js和C#)是否支持中英文微信集成? - c#

我有一个聊天机器人,它是用Node.js在Microsoft机器人框架中构建的,并且还将该机器人与一个名为LUIS.AI的NLP框架集成在一起。我正在将其与Skype和Messenger集成,并且还尝试将其与微信集成。我正在尝试使用以下链接进行微信集成,但目前尚无法实现。https://github.com/jyfcrw/botbuilder-wechat-…

js:尝试将精细上传器挂接到flask应用程序中 - javascript

我正在尝试将上载器连接到Flask端点。端点看起来像:@app.route('/', methods=['GET', 'POST']) def a_function(): if request.method == 'POST': file = request.files[…

如何保持Keras模型加载到内存中并在需要时使用它? - python

我正在阅读Keras blog讲解如何使用Flask创建简单的图像分类器Restful API。我想知道如何在不使用python的其他Web框架中实现加载模型的相同方法。在下面的代码中,将在服务器启动之前将模型加载到内存中,直到服务器处于活动状态,它才会运行:# if this is the main thread of execution first lo…

LeetCode题解计算机为什么是基于二进制的?

可以是三进制么?二进制有什么好处?题解:为什么叫电子计算机?算盘应该没有二进制