【问题标题】:Add Intents to Luis programmatically以编程方式向 Luis 添加意图
【发布时间】:2019-02-19 22:32:11
【问题描述】:

我需要使用c# 代码将Intents 添加到我的Luis 应用程序中。在 MS 文档中,只有以编程方式添加话语的示例。但是我试图自己做。所以我在浏览器中导航到我的应用程序,然后添加了一个新的 Intent 并检查了网络选项卡并得到了 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"
    }
}

【问题讨论】:

  • Luis 意图名称可以包含空格和特殊字符吗?
  • 是的!他们可以:) 找到解决方案!看看下面的答案。

标签: c# .net-core azure-language-understanding


【解决方案1】:

请参阅此处的 LUIS API 文档,了解 Create Intent 方法:https://westus.dev.cognitive.microsoft.com/docs/services/5890b47c39e2bb17b84a55ff/operations/5890b47c39e2bb052c5b9c0c

正文应如下所示:

{
    "name": "BookFlight"
}

在您的情况下,您提供了一个包含 1 个项目的数组。

纠正它,它会工作(见下文):

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多