LUIS API 使用C#调用的方法

4 篇文章 0 订阅
1 篇文章 0 订阅
 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;

        }




    }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值