作者: 乔克斯
查看: 10632|回复: 20
打印 上一主题 下一主题

[源码] 【AI聊天机器人】C#对接小黄鸡,实现与机器聊天

[复制链接]
跳转到指定楼层
楼主
乔克斯 发表于 2014-12-29 10:48:43 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
查看: 10632|回复: 20
【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");
        }
    }
}


案例源码下载:
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏7 转播转播
回复 论坛版权

使用道具 举报

沙发
老段 发表于 2014-12-29 10:51:13 | 只看该作者
1楼  哈哈~~~
板凳
 楼主| 乔克斯 发表于 2014-12-29 10:55:15 | 只看该作者

恭喜~恭喜,稳坐沙发。
地板
cjkall 发表于 2014-12-29 11:31:49 | 只看该作者
  哈哈~~~
5#
evilatom 发表于 2014-12-29 16:04:27 | 只看该作者
好扯的软件
6#
CastleDrv 发表于 2014-12-29 16:10:59 | 只看该作者
能实现图片的解析吗?就像微信里的表情
7#
 楼主| 乔克斯 发表于 2014-12-29 16:11:04 | 只看该作者

噗哈哈,小贱鸡回复就是那么扯。
8#
pain 发表于 2014-12-29 19:28:00 | 只看该作者
有意思!
回复

使用道具 举报

9#
tjf0303 发表于 2015-2-9 12:23:02 | 只看该作者
哈哈,很好玩的样子,学习学习
10#
ho513527969 发表于 2015-5-14 17:00:35 | 只看该作者
看帖,回帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入CSkin博客

本版积分规则

QQ|申请友链|小黑屋|手机版|Archiver|CSkin ( 粤ICP备13070794号

Powered by Discuz! X3.2  © 2001-2013 Comsenz Inc.  Designed by ARTERY.cn
GMT+8, 2024-5-2 03:58, Processed in 0.650793 second(s), 41 queries , Gzip On.

快速回复 返回顶部 返回列表