码迷,mamicode.com
首页 > 编程语言 > 详细

Python “图灵机器人”对话交互

时间:2018-09-27 15:34:26      阅读:330      评论:0      收藏:0      [点我收藏+]

标签:imp   NPU   max   style   return   rom   join()   else   reg   

 

1、创建图灵机器人账户

注册图灵机器人账号并创建一个机器人服务:

http://www.tuling123.com/

技术分享图片

2、添加微信授权公众号,微信扫描生成的二维码:

技术分享图片

3、微信关注图灵机器人公众号; 根据提供的API接入的apikey,就可以通过Python来关联微信与图灵机器人, 进行人机交互了;

技术分享图片

4、完成下面程序,并执行再扫码登录微信,此时你的微信就可以自动回复所有消息;

demo1:图灵机器人,自动回复所有微信好友和群消息

注:wxpy一个根据网页版微信的接口封装的库,如果没有库,可直接pip安装

# 实例1:微信回复所有好友包括群消息
#注册图灵机器人,然后微信关注公众号,授权,然后运行这个代码会自动回复微信信息;
from wxpy import *
#扫码登陆
bot = Bot()
# 初始化图灵机器人
tuling = Tuling(api_key=‘你申请的key)
# 自动回复所有文字消息
@bot.register(msg_types=TEXT)
def auto_reply_all(msg):
    tuling.do_reply(msg)
# 开始运行
bot.join()

demo2:查找好友列表,回复指定好友消息

# 实例2:微信回复指定好友信息
#注册图灵机器人,然后微信关注公众号,授权,然后运行这个代码会自动回复微信信息;
from wxpy import *
#扫码登陆
bot = Bot()
# 初始化图灵机器人
tuling = Tuling(api_key=你申请的key)
# 获取好友
dear = bot.friends().search(石头)[0]#模糊查询石头好友

# 使用图灵机器人自动与指定好友聊天
@bot.register(dear)
def reply_my_friend(msg):
    print(msg)
    tuling.do_reply(msg)

embed()
# 开始运行
bot.join():

 demo3:控制台与图灵机器人直接对话

了解图灵机器人的API接口,注意这里是免费注册后测试用的,api官网没直接提供,如果是花钱注册的商用的,则系统会提供API,这里仅供参考

技术分享图片

 

 注意:请求数据和响应数据分别要编码和解码

#! /usr/bin/python3.4
#实例3:图灵机器人直接交互(控制台输入)
# _*_ encode:utf-8_*_

import json
from urllib.request import urlopen,Request
from urllib.error import URLError
from urllib.parse import urlencode

class TuringChatMode(object):
    #初始化API请求地址
    def __init__(self):
        # API接口地址
        self.turing_url = http://www.tuling123.com/openapi/api?

     #定义人机交互方法
    def botInteraction (self,text):
      
        url_data = dict(
            key = ‘你的key,
            info = text,
            userid = zyg,
        )
      
        self.request = Request(self.turing_url + urlencode(url_data))#设置并实例化Request

        try:
            w_data = urlopen(self.request)#发送请求
        except URLError:
            raise Exception("No internet connection available to transfer txt data")
            #断言了请求URL异常
        except:
            raise KeyError("Server wouldn‘t respond (invalid key or quota has been maxed out)")
            # 其他情况断言提示服务相应次数已经达到上限

        response_text = w_data.read().decode(utf-8)
        #print(response_text)

        json_result = json.loads(response_text)#将json格式进行解析

        return json_result[text]

if __name__ == __main__:
    
    turing = TuringChatMode()
    while True:
        msg = input("\n我要说话:")
        if msg == quit:
            exit("您已经退出了对话!")         # 设定输入quit,退出聊天。
        else:
            botMsg = turing.botInteraction(msg)
            print("图灵BOT回复我:",botMsg)

 

技术分享图片

demo4:可以根据tkinter进行GUI布局,结合上面demo3实现聊天界面数据交互,此处略;

 

Python “图灵机器人”对话交互

标签:imp   NPU   max   style   return   rom   join()   else   reg   

原文地址:https://www.cnblogs.com/ygzhaof/p/9712948.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!