简单的调用图灵机器人

Posted youlicc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单的调用图灵机器人相关的知识,希望对你有一定的参考价值。

1、去http://www.tuling123.com网址创建账号,创建机器人

重点技术图片

2、上代码

 

技术图片

winform界面如上

HttpRequestHelper.PostAsync方法具体如下

    /// <summary>
    /// 使用post方法异步请求
    /// </summary>
    /// <param name="url">目标链接</param>
    /// <param name="data">发送的参数字符串</param>
    /// <returns>返回的字符串</returns>
    public static async Task<string> PostAsync(string url, string data, Dictionary<string, string> header = null, bool Gzip = false)
    
        using (HttpClient client = new HttpClient(new HttpClientHandler()  UseCookies = false ))
        
            HttpContent content = new StringContent(data,System.Text.Encoding.UTF8);
            if (header != null)
            
                client.DefaultRequestHeaders.Clear();
                foreach (var item in header)
                
                    client.DefaultRequestHeaders.Add(item.Key, item.Value);
                
            
            HttpResponseMessage response = await client.PostAsync(url, content);
            response.EnsureSuccessStatusCode();
            string responseBody;
            if (Gzip)
            
                GZipInputStream inputStream = new GZipInputStream(await response.Content.ReadAsStreamAsync());
                responseBody = new StreamReader(inputStream).ReadToEnd();
            
            else
            
                responseBody = await response.Content.ReadAsStringAsync();
            
            return responseBody;
        
    

 

winform后台代码如下

        public TuLingTest()
        
            InitializeComponent();
        

        private Action<string> ShowMsg;

        private void TuLingTest_Load(object sender, EventArgs e)
        
            ShowMsg = new Action<string>((string msg) =>
            
                if (Txt_Msg.TextLength > 30000) Txt_Msg.Clear();
                Txt_Msg.AppendText("\\r\\n-------当前时间" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "---------------------------------"
                    + "\\r\\n图灵机器人回复:" + msg + "\\r\\n");
                Txt_Msg.ScrollToCaret();
            );
        

        private async void Btn_start_Click(object sender, EventArgs e)
        
            RequestInfo request = new RequestInfo();
            UserInfo userInfo = new UserInfo();
            userInfo.apiKey = "你的apikey";

            Perception perception = new Perception();
            InputText inputText = new InputText();
            inputText.text = Txt_Reust.Text.Trim();
            perception.inputText = inputText;

            request.perception = perception;
            request.userInfo = userInfo;

            var result = await HttpRequestHelper.PostAsync("http://openapi.tuling123.com/openapi/api/v2", JsonConvert.SerializeObject(request));
            ResponseInfo response = JsonConvert.DeserializeObject<ResponseInfo>(result);
            Txt_Msg.BeginInvoke(ShowMsg, response.results[0].values.text);
        





        #region 请求消息
        public class RequestInfo
        
            public int reqType  get; set; 
            public Perception perception  get; set; 
            public UserInfo userInfo  get; set; 
        
        public class UserInfo
        
            public string apiKey  get; set; 
            public string userId  get; set; 
        
        public class Perception
        
            public InputText inputText  get; set; 
            public InputImage inputImage  get; set; 
            public List<Location> selfInfo  get; set; 
        
        public class Location
        
            public string city  get; set; 
            public string province  get; set; 
            public string street  get; set; 
        
        public class InputText
        
            public string text  get; set; 
        
        public class InputImage
        
            public string url  get; set; 
        
        #endregion

        #region 返回消息
        public class ResponseInfo
        
            public Intent intent  get; set; 
            public List<Results> results  get; set; 
        
        public class Intent
        
            public string code  get; set; 
        

        public class Results
        
            public int groupType  get; set; 
            public string resultType  get; set; 
            public Values values  get; set; 
        

        public class Values
        
            public string text  get; set; 
        

        #endregion

到此一个简单调用图灵机器人完成。

以上是关于简单的调用图灵机器人的主要内容,如果未能解决你的问题,请参考以下文章

图灵机器人api返回数据格式怎么处理php

编程实践利用 Python 调用图灵机器人 API 实现实时语音聊天及自动回复

Python调用图灵机器人API

如何在微信公众号调用图灵机器人(智能聊天)

Java利用图灵机器人接口实现简单的聊天程序

itchat个人练习 语音与文本图灵测试例程