CSkin博客

标题: 【AI聊天机器人】C#对接小黄鸡,实现与机器聊天 [打印本页]

作者: 乔克斯    时间: 2014-12-29 10:48
标题: 【AI聊天机器人】C#对接小黄鸡,实现与机器聊天
【AI聊天机器人】C#对接小黄鸡,实现与机器聊天
说明:
小黄鸡很多人都知道,他是曾经红遍网络的聊天机器人,因为回复贱而著称小贱鸡。
本案例用到的技术并没有多高深莫测,只是模拟普通的网站请求去调用小黄鸡的聊天信息回复。
为什么不用小黄鸡的API接口?
因为API接口要申请授权key,又要有所限制,所以本案例可以以很有意思的方式教会大家怎么模拟网站请求并且得到想要的数据。

效果图:


部分核心代码:
[C#] 纯文本查看 复制代码
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Windows.Forms;

namespace AiJi
{
    public partial class FrmMain : Form
    {
        public FrmMain() {
            InitializeComponent();
        }

        /// <summary>
        /// 发送消息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnGo_Click(object sender, EventArgs e) {
            try {
                if (!string.IsNullOrEmpty(txtSend.Text)) {
                    txtChat.AppendText("Me:" + txtSend.Text + "\r\n");
                    string msg = txtSend.Text;
                    System.Threading.ThreadPool.QueueUserWorkItem((s) => GoChat(msg));
                    txtSend.Clear();
                }
            } catch {
                MessageBox.Show("不好意思死鸡了⊙︿⊙重启下程序吧~");
            }
        }

        /// <summary>
        /// 请求小黄鸡回复
        /// </summary>
        /// <param name="msg"></param>
        private void GoChat(string msg) {
            //设置Post的Data值
            Dictionary<string, string> dr = new Dictionary<string, string>();
            dr.Add("para", msg);
            //请求回复-10秒超时
            HttpWebResponse hp = HttpHelper.CreatePostHttpResponse("http://www.xiaohuangji.com/ajax.php", dr, 10000, null, Encoding.UTF8, null);
            //输出文本
            StreamReader sr = new StreamReader(hp.GetResponseStream(), Encoding.UTF8);
            string s = sr.ReadToEnd();
            this.Invoke(new MethodInvoker(delegate {
                DisplayMsg(s);
            }));
        }

        //回复文本
        private void DisplayMsg(string s) {
            this.txtChat.AppendText("小贱鸡:" + s + "\r\n");
            this.txtChat.Select(txtChat.Text.Length, 0);
            this.txtChat.ScrollToCaret();
        }

        /// <summary>
        /// 窗口加载时
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void FrmMain_Load(object sender, EventArgs e) {
            DisplayMsg("唔,终于开鸡了。\n小贱鸡:你好,我是小贱鸡。o(∩_∩)o");
        }
    }
}


案例源码下载: 小黄鸡.rar (44.09 KB, 下载次数: 220, 售价: 1 金钱)

作者: 老段    时间: 2014-12-29 10:51
1楼  哈哈~~~
作者: 乔克斯    时间: 2014-12-29 10:55
老段 发表于 2014-12-29 10:51
1楼  哈哈~~~

恭喜~恭喜,稳坐沙发。
作者: cjkall    时间: 2014-12-29 11:31
  哈哈~~~
作者: evilatom    时间: 2014-12-29 16:04
好扯的软件
作者: CastleDrv    时间: 2014-12-29 16:10
能实现图片的解析吗?就像微信里的表情
作者: 乔克斯    时间: 2014-12-29 16:11
evilatom 发表于 2014-12-29 16:04
好扯的软件

噗哈哈,小贱鸡回复就是那么扯。
作者: pain    时间: 2014-12-29 19:28
有意思!
作者: tjf0303    时间: 2015-2-9 12:23
哈哈,很好玩的样子,学习学习
作者: ho513527969    时间: 2015-5-14 17:00
看帖,回帖
作者: ZBQ    时间: 2015-5-14 18:11
好像很好玩的
作者: 愤怒的萝卜    时间: 2015-10-23 10:53
很有有意思!
作者: yy2010    时间: 2016-1-6 16:41
好东西,必须顶好东西,必须顶
作者: 贰佰伍    时间: 2016-1-9 10:51
这个也不错,收藏
作者: 524313162    时间: 2016-1-9 16:23
我去,看起来不错的样子
作者: 524313162    时间: 2016-1-9 16:24
啥意思 我不能回帖吗?
作者: yjzz    时间: 2016-1-9 16:50
谢谢楼主分享
作者: yuxuan    时间: 2016-2-12 19:58
之前研究过下下  下载看看
作者: yuxuan    时间: 2016-2-12 19:59
之前研究过短时间 下载看看
作者: mmlovenn1314    时间: 2016-3-2 22:57
为什么我的不回复
作者: go_go007    时间: 2019-5-6 18:55
  哈哈~~~




欢迎光临 CSkin博客 (http://bbs.cskin.net/) Powered by Discuz! X3.2