【发布时间】: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