Добавьте Intents к Луису программно - PullRequest
0 голосов
/ 19 февраля 2019

Мне нужно добавить Intents в мое приложение Luis, используя код c#.В документах MS есть только примеры программного добавления высказываний.Однако я попытался сделать это самостоятельно.Поэтому я перешел к своему приложению в браузере, а затем добавил новое намерение, осмотрел вкладку сети и получил запрос Post, подобный следующему:

uri: https://westus.api.cognitive.microsoft.com/luis/api/v2.0/apps/App_ID/versions/0.1/intents

тело запросавот так (где «testIntent» - это имя добавленного намерения):

{
  "name": "testIntent"
}

Затем я написал следующий код:

class Program
{ 
      static void Main(string[] args)
      {
                AddIntent().Wait();
      }

      async static Task<HttpResponseMessage> SendPost(string uri, string requestBody)
      {
             using (var client = new HttpClient())
             using (var request = new HttpRequestMessage())
             {
                 request.Method = HttpMethod.Post;
                 request.RequestUri = new Uri(uri);

                 if (!String.IsNullOrEmpty(requestBody))
                 {
                     request.Content = new StringContent(requestBody, Encoding.UTF8, "text/json");
                 }

              request.Headers.Add("Ocp-Apim-Subscription-Key", authoringKey);
                 return await client.SendAsync(request);
             }
       }

       async static Task AddIntent()
       {
            string uri = "https://westus.api.cognitive.microsoft.com/luis/api/v2.0/apps/App_ID/versions/0.1/intents";
            string requestBody = File.ReadAllText("json.json");
            var response = await SendPost(uri, requestBody);
            var result = await response.Content.ReadAsStringAsync();
            Console.WriteLine(JsonFormatter.Format(result));
       }
}

и json.json файл выглядит так:

[
    {
      "name": "Intent from c# code!"
    }
]

Я получаю сообщение об ошибке:

{
    "error": {
        "code": "BadArgument",
        "message": "Failed to parse classifier creation object. Parameter name: classifierCreateObject"
    }
}

1 Ответ

0 голосов
/ 19 февраля 2019

См. Документацию по API LUIS здесь, для Create Intent метода: https://westus.dev.cognitive.microsoft.com/docs/services/5890b47c39e2bb17b84a55ff/operations/5890b47c39e2bb052c5b9c0c

Тело должно быть примерно таким:

{
    "name": "BookFlight"
}

В вашем случае вы предоставили массив с 1item.

Исправьте это, и оно будет работать (см. ниже):

enter image description here

...