Как сделать звонок CURL для тренера rasa nlu

У меня был тренер rasa nlu, работающий на порте xxxx. Я хочу кормить тренера nlu из другого источника всякий раз, когда из моего приложения (метеор) звонят в тренер rasa nlu. Исходный флаг тренера rasa nlu с командой curl?

или есть ли у меня другой вариант, чтобы кормить тренера rasa nlu динамическим исходным путем из моего метеорного приложения? Пожалуйста, направьте меня.


person user3405478    schedule 05.07.2017    source источник


Ответы (1)


Как указано в их официальной документации, вы можете отправлять cURL-запросы к RASA NLU, используя /train конечная точка. Это запрос 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;
            }
}

Теперь просто сделайте HTTP GET из Chrome, передав каталог командного файла в качестве аргументов.

person Kunal Mukherjee    schedule 04.11.2017
comment
Как насчет основного стека RASA? github.com/RasaHQ/starter-pack-rasa-stack Я хотел бы для доступа к моему боту с помощью команды curl вместо использования make cmdline. - person webmastx; 12.10.2018