我需要使用@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/assets/**").addResourceLocations("/assets/");
}
代码将Intents
添加到我的Luis
应用中。在MS文档中,仅存在以编程方式添加语音的示例。但是我尝试自己做。因此,我在浏览器中导航到我的应用程序,然后添加了一个新的Intent并检查了“网络”标签,并收到了c#
这样的请求:
uri: https://westus.api.cognitive.microsoft.com/luis/api/v2.0/apps/App_ID/versions/0.1/intents
这样的请求正文(其中“ testIntent”是添加的意图的名称):
Post
然后我编写了以下代码:
{
"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!"
}
]
答案 0 :(得分:1)
有关Create Intent
方法的信息,请参见LUIS API文档:https://westus.dev.cognitive.microsoft.com/docs/services/5890b47c39e2bb17b84a55ff/operations/5890b47c39e2bb052c5b9c0c
身体应如下所示:
{
"name": "BookFlight"
}
在您的情况下,您提供了一个包含1个项目的数组。
更正它,它将起作用(见下文):