这是一个聊天机器人,很方便,直接调用图灵机器人api即可,对话方式一问一答!

图灵机器人官网上目前只给出了php和java的示例,于是自己写了个Windows的。

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Net;

using System.IO;

using Newtonsoft.Json;//程序需引用Newtonsoft.Json 下载地址http://json.codeplex.com/

namespace TuLing

{

public partial class MainForm : Form

{

HttpWebResponse Response = null;

public MainForm()

{

InitializeComponent();

}

//

///

/// 对话图灵机器人

///

///

///

public string ConnectTuLing(string p_strMessage)

{

string result = null;

try

{

//注册码自己到网上注册去

String APIKEY = "c32ccaa805b6441be76bc18074f12e51";

String _strMessage = p_strMessage;

String INFO = Encoding.UTF8.GetString(Encoding.UTF8.GetBytes(_strMessage));

String getURL = "http://www.tuling123.com/openapi/api?key=" + APIKEY + "&info=" + INFO;

HttpWebRequest MyRequest = (HttpWebRequest)HttpWebRequest.Create(getURL);

HttpWebResponse MyResponse = (HttpWebResponse)MyRequest.GetResponse();

Response = MyResponse;

using (Stream MyStream = MyResponse.GetResponseStream())

{

long ProgMaximum = MyResponse.ContentLength;

long totalDownloadedByte = 0;

byte[] by = new byte[1024];

int osize = MyStream.Read(by, 0, by.Length);

Encoding encoding = Encoding.UTF8;

while (osize > 0)

{

totalDownloadedByte = osize + totalDownloadedByte;

result += encoding.GetString(by, 0, osize);

long ProgValue = totalDownloadedByte;

osize = MyStream.Read(by, 0, by.Length);

}

}

//解析json

JsonReader reader = new JsonTextReader(new StringReader(result));

while (reader.Read())

{

//text中的内容才是你需要的

if (reader.Path=="text")

{

//结果赋值

result = reader.Value.ToString();

}

Console.WriteLine(reader.TokenType + "\t\t" + reader.ValueType + "\t\t" + reader.Value);

}

}

catch (Exception)

{

throw;

}

return result;

}

private void btn_send_Click(object sender, EventArgs e)

{

string returnMess = ConnectTuLing(rtb_send.Text);

rtb_mess.Text = returnMess;

}

private void btn_close_Click(object sender, EventArgs e)

{

this.this.FindForm().Close();

}

///

/// 回车快捷键

///

///

///

private void rtb_send_KeyDown(object sender, KeyEventArgs e)

{

if (e.KeyCode == Keys.Enter)

{

rtb_mess.Text= ConnectTuLing(rtb_send.Text);

}

}

}

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐