#coding=utf8
import requests
import itchat

#key自己到图灵注册一个

KEY = '****************************************'

def get_response(msg):
   # 这里我们就像在“3. 实现最简单的与图灵机器人的交互”中做的一样
  # 构造了要发送给服务器的数据
   apiUrl = 'http://www.tuling123.com/openapi/api'  #图灵机器人接口
   data = {
         'key' : KEY,
         'info' : msg,
         'userid' : 'wechat-robot',
    }

#记住处理异常
try:
    r = requests.post(apiUrl, data=data).json()
   # 字典的get方法在字典没有'text'值的时候会返回None而不会抛出异常
   return r.get('text')
   # 为了防止服务器没有正常响应导致程序异常退出,这里用try-except捕获了异常
   # 如果服务器没能正常交互(返回非json或无法连接),那么就会进入下面的return
except:  # 将会返回一个None
   return

# 这里是我们在“1. 实现微信消息的获取”中已经用到过的同样的注册方法
@itchat.msg_register(itchat.content.TEXT)
def tuling_reply(msg):
     # 为了保证在图灵Key出现问题的时候仍旧可以回复,这里设置一个默认回复
     defaultReply = 'I received: ' + msg['Text']
     # 如果图灵Key出现问题,那么reply将会是None
     reply = get_response(msg['Text'])
     # a or b的意思是,如果a有内容,那么返回a,否则返回b
    # 有内容一般就是指非空或者非None,你可以用`if a: print('True')`来测试
return reply or defaultReply

# 为了让实验过程更加方便(修改程序不用多次扫码),我们使用热启动
itchat.auto_login(hotReload=True)
itchat.run()  #运行

ok,这样你就可以实现你的机器人愉快的玩耍了,have fun!

基于itchat定制聊天机器人的更多相关文章

  1. 基于PaddlePaddle的语义匹配模型DAM,让聊天机器人实现完美回复 |

    来源商业新知网,原标题:让聊天机器人完美回复 | 基于PaddlePaddle的语义匹配模型DAM 语义匹配 语义匹配是NLP的一项重要应用.无论是问答系统.对话系统还是智能客服,都可以认为是问题和回 ...

  2. AI中台——智能聊天机器人平台的架构与应用(分享实录)

    内容来源:宜信技术学院第3期技术沙龙-线上直播|AI中台——智能聊天机器人平台 主讲人:宜信科技中心AI中台团队负责人王东 导读:随着“中台”战略的提出,目前宜信中台建设在思想理念及架构设计上都已经取 ...

  3. 【自然语言处理篇】--Chatterbot聊天机器人

    一.前述 ChatterBot是一个基于机器学习的聊天机器人引擎,构建在python上,主要特点是可以自可以从已有的对话中进行学(jiyi)习(pipei). 二.具体 1.安装 是的,安装超级简单, ...

  4. 2.转发。基于itchat的微信消息同步机器人

    原文:https://www.jianshu.com/p/7aeadca0c9bd# 看到了该网址有基于itchat的微信消息同步机器人,转过来继续研究.以下是转过来的: 最近 全栈数据工程师养成攻略 ...

  5. ChatGirl 一个基于 TensorFlow Seq2Seq 模型的聊天机器人[中文文档]

    ChatGirl 一个基于 TensorFlow Seq2Seq 模型的聊天机器人[中文文档] 简介 简单地说就是该有的都有了,但是总体跑起来效果还不好. 还在开发中,它工作的效果还不好.但是你可以直 ...

  6. 深度学习项目——基于循环神经网络(RNN)的智能聊天机器人系统

    基于循环神经网络(RNN)的智能聊天机器人系统 本设计研究智能聊天机器人技术,基于循环神经网络构建了一套智能聊天机器人系统,系统将由以下几个部分构成:制作问答聊天数据集.RNN神经网络搭建.seq2s ...

  7. 智能聊天机器人——基于RASA搭建

    前言: 最近了解了一下Rasa,阅读了一下官方文档,初步搭建了一个聊天机器人. 官方文档:https://rasa.com/docs/ 搭建的chatbot项目地址: https://github.c ...

  8. 计算机网络课设之基于UDP协议的简易聊天机器人

    前言:2017年6月份计算机网络的课设任务,在同学的帮助和自学下基本搞懂了,基于UDP协议的基本聊天的实现方法.实现起来很简单,原理也很简单,主要是由于老师必须要求使用C语言来写,所以特别麻烦,而且C ...

  9. 定制个机器人帮你和Ta聊天

    自动聊天示例 这是基于200万聊天记录训练出来的,你可以用自己和女朋友的记录训练了试试效果 至于微信机器人怎么用,你可以 GitHub 搜搜看哈 聊天1: user: 在吗? bot: 在 user: ...

随机推荐

  1. 零基础逆向工程39_Win32_13_进程创建_句柄表_挂起方式创建进程

    1 进程的创建过程 打开系统 --> 双击要运行的程序 --> EXE开始执行 步骤一: 当系统启动后,创建一个进程:Explorer.exe(也就是桌面进程) 步骤二: 当用户双击某一个 ...

  2. HTML-JS-CSS基础

    HTML-JS-CSS基础 1.html hyper text markup language,超文本标记语言,所见即所得.web开发中用于展示功能的部分,浏览器可对其进行渲染.产生各种可视化组件,比 ...

  3. 古老的pike

    快速略读了一下源码,记了一些东西. 先看看mapping mapping其实就是C++中的multimap,但是支持更多. array values(mapping).这个方法可以返回所有mappin ...

  4. IOS 加载更多数据中

    /**点击添加*/ - (IBAction)loadBtnClick { //1.隐藏加载按钮 self.loadBtn.hidden=YES; //2.显示“正在加载” self.loadingVi ...

  5. EF写distinct

    在日常开发中常常是这么写的 var logErrorRequest = from l in _logErrorRepository.Table select new { WrongTime = l.W ...

  6. node.js 下使用 util.inherits 来实现继承

    上一篇博客说到了node.js继承events类实现事件发射和事件绑定函数,其中我们实现了一个公用基类 _base ,然后在模型中差异化的定义了各种业务需要的模型并继承 _base 公共基类.但是其中 ...

  7. 2018.9.9 Tomcat是怎样运行的

    一. Servlet容器是怎样工作的 一个Servlet容器是一个复杂的系统.然而,对于处理对Servlet的请求,Servlet容器主要做三件事情: 1. 创建请求对象,并设置所调用的Servlet ...

  8. 2018.7.18 div,section,article的区别和使用

    section ·<section> 标签定义文档中的节(section.区段).比如章节.页眉.页脚或文档中的其他部分. ·section用作一段有专题性的内容,一般在它里面会带有标题. ...

  9. Docker 入门教程与实践

    title: Docker 入门教程与实践 tags: Docker ---- 在Windows上安装Docker客户端 1.下载Docker TollBox: https://docs.docker ...

  10. 17、SpringBoot------整合dubbo

    SpringBoot整合Dubbo+Zookeaper 1.安装运行zookeeper (1)下载zookeeper 官网:http://zookeeper.apache.org/ (2)解压缩 (3 ...