public class LUISAPIHelper
{
public static string appID { get; set; } //LUIS KB库ID
public static string authoringKey { get; set; }
//添加意图
public static async Task<string> AddIntents(string SemanticsId, string Name)
{
var client = new HttpClient();
var queryString = HttpUtility.ParseQueryString(string.Empty);
string host = "https://westus.api.cognitive.microsoft.com/luis/api/v2.0/apps/" + appID + "/versions/0.1/";
// Request headers
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", authoringKey);
var uri = (host + "intents");
HttpResponseMessage response;
string str = "";
// Request body
byte[] byteData = Encoding.UTF8.GetBytes("{'name':'" + SemanticsId+","+ Name + "'}");
using (var content = new ByteArrayContent(byteData))
{
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
response = await client.PostAsync(uri, content);
if (response.StatusCode == HttpStatusCode.Created)
{
str = response.Headers.Location.Segments[9].ToString();
}
return str;
}
}
//更新意图
public static async Task<bool> UpdateIntents(string SemanticsId, string Name,string LuisIntentId)
{
var client = new HttpClient();
bool falg = false;
var queryString = HttpUtility.ParseQueryString(string.Empty);
// Request headers
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", authoringKey);
string host = "https://westus.api.cognitive.microsoft.com/luis/api/v2.0/apps/" + appID + "/versions/0.1/";
var uri = (host + "intents/"+ LuisIntentId);
HttpResponseMessage response;
string str = "";
// Request body
byte[] byteData = Encoding.UTF8.GetBytes("{'name':'" + SemanticsId+","+Name + "'}");
using (var content = new ByteArrayContent(byteData))
{
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
response = await client.PutAsync(uri, content);
if (response.StatusCode == HttpStatusCode.OK)
{
falg = true;
}
return falg;
}
}
//删除意图
public static async Task<bool> DeleteIntents(string LuisIntentId)
{
bool falg = false;
var client = new HttpClient();
var queryString = HttpUtility.ParseQueryString(string.Empty);
// Request headers
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", authoringKey);
// Request parameters
queryString["deleteUtterances"] = "false";
string host = "https://westus.api.cognitive.microsoft.com/luis/api/v2.0/apps/" + appID + "/versions/0.1/";
var uri = (host+"intents/"+LuisIntentId+"?" + queryString);
HttpResponseMessage response = await client.DeleteAsync(uri);
if (response.StatusCode== HttpStatusCode.OK)
{
falg = true;
}
return falg;
}
//添加问题
public static async Task<string> AddQuestion(string text,string LuisName)
{
var client = new HttpClient();
var queryString = HttpUtility.ParseQueryString(string.Empty);
// Request headers
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", authoringKey);
string host = "https://westus.api.cognitive.microsoft.com/luis/api/v2.0/apps/" + appID + "/versions/0.1/";
var uri = (host + "example");
HttpResponseMessage response;
string str = "";
// Request body
byte[] byteData = Encoding.UTF8.GetBytes("{'text':'" + text + "','intentName':'" + LuisName + "'}");
using (var content = new ByteArrayContent(byteData))
{
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
response = await client.PostAsync(uri, content);
if (response.StatusCode == HttpStatusCode.Created)
{
string exampleResult = await response.Content.ReadAsStringAsync();
var exampleModel = Newtonsoft.Json.JsonConvert.DeserializeObject<LUISUtteranceModel>(exampleResult);
if (exampleModel != null)
{
str = exampleModel.ExampleId;
}
// await GetQuestions(text);
//string _str=JsonConvert.SerializeObject(response);
//str = response.Headers.Location.Segments[9].ToString();
}
return str;
}
}
//删除问题
public static async Task<bool> DeleteQuestion(string ExampleId)
{
bool falg = false;
var client = new HttpClient();
// Request headers
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", authoringKey);
string host = "https://westus.api.cognitive.microsoft.com/luis/api/v2.0/apps/" + appID + "/versions/0.1/";
var uri = (host + "examples/" + ExampleId );
HttpResponseMessage response = await client.DeleteAsync(uri);
if (response.StatusCode == HttpStatusCode.OK)
{
falg = true;
}
return falg;
}
//查找所有问题
public static async Task<string> GetQuestions(string text)
{
var client = new HttpClient();
var queryString = HttpUtility.ParseQueryString(string.Empty);
// Request headers
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", authoringKey);
// Request parameters
queryString["skip"] = "0";
queryString["take"] = "500";
string host = "https://westus.api.cognitive.microsoft.com/luis/api/v2.0/apps/" + appID + "/versions/0.1/";
var uri = (host + "examples? " + queryString);
var response = await client.GetAsync(uri);
string _str = JsonConvert.SerializeObject(response);
return null;
}
public static async Task<bool> train()
{
bool falg = true;
try
{
var client = new HttpClient();
// Request headers
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", authoringKey);
var uri = "train";
HttpResponseMessage response;
// Request body
byte[] byteData = Encoding.UTF8.GetBytes("{body}");
using (var content = new ByteArrayContent(byteData))
{
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
response = await client.PostAsync(uri, content);
}
falg = true;
}
catch (Exception ex)
{
}
return falg;
}
}
LUIS API 使用C#调用的方法
最新推荐文章于 2022-11-19 16:19:12 发布