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

Posted ygzhaof_100

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python “图灵机器人”对话交互相关的知识,希望对你有一定的参考价值。

 

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 “图灵机器人”对话交互的主要内容,如果未能解决你的问题,请参考以下文章

人工智能 1. 语音合成,语音识别,相似度,图灵机器人,智能对话

基于百度语音和图灵的交互机器人

Python调用图灵机器人API

编程实践利用 Python 调用图灵机器人 API 实现实时语音聊天及自动回复

图灵机器人,web录音实现自动化交互问答

写二十来行python代码,让图灵机器人陪你玩耍,(附源码)