0

我有 rasa nlu 训练器在 xxxx 端口上运行。每当我的应用程序(流星)向 rasa nlu 训练器发出呼叫时,我想用不同的来源为 nlu 训练器提供食物。我想到了对 nlu 训练器的 curl 请求,但我们怎么能喂——带有 curl 命令的 rasa nlu 训练器的源标志?

或者我是否有另一种选择来为 rasa nlu 培训师提供来自我的流星应用程序的动态源路径?请指导我。

4

1 回答 1

0

如官方文档中所述,您可以使用/train端点向 RASA NLU 发出 cURL 请求。它是一个 HTTP POST 请求,因此请确保将语料库作为请求正文发送。

$ curl -XPOST localhost:5000/train?project=my_project -d @data/examples/rasa/demo-rasa.json

或者,您可以执行以下操作:

制作一个用于训练 RASA 的批处理文件,例如 TrainRASA.bat,其中包含以下 python 命令:

cd <Your Path>
python -m rasa_nlu.train -c config_spacy.json

制作 config_spacy.json 文件如下:

{
    "project": "Travel",
    "pipeline": "spacy_sklearn",
    "language": "en",
    "num_threads": 1,
    "max_training_processes": 1,
    "path": "C:\\Users\\Kunal\\Desktop\\RASA\\models",
    "response_log": "C:\\Users\\Kunal\\Desktop\\RASA\\log",
    "config": "C:\\Users\\Kunal\\Desktop\\RASA\\config_spacy.json",
    "log_level": "INFO",
    "port": 5000,
    "data": "C:\\Users\\Kunal\\Desktop\\RASA\\data\\FlightBotFinal.json",
    "emulate": "luis",
    "spacy_model_name": "en",
    "token": null,
    "cors_origins": ["*"],
    "aws_endpoint_url": null
  }

现在制作一个 C# Web API 来训练您的 RASA 模型,如下所示:

[HttpGet]
[Route("api/TrainRASA")]
[EnableCors("*", "*", "*")]
public Task TrainRASA([FromUri] string BatchFilePath, [FromUri] string BatchFileDirectory)
{
            try
            {
             return Task.Run(() => 
              {
                ProcessStartInfo startInfo = new ProcessStartInfo()
                {
                    FileName = BatchFilePath,
                    CreateNoWindow = false,
                    UseShellExecute = true,
                    WindowStyle = ProcessWindowStyle.Normal,
                    WorkingDirectory = BatchFileDirectory
                };

                // Start the process with the info we specified.
                // Call WaitForExit and then the using-statement will close.
                using (System.Diagnostics.Process exeProcess = System.Diagnostics.Process.Start(startInfo))
                {
                    exeProcess.WaitForExit();
                }
           });
         }
            catch (Exception ex)
            {
                throw;
            }
}

现在只需从 Chrome 发出一个 HTTP GET,将批处理文件目录作为参数传递。

于 2017-11-04T17:09:05.840 回答