精华内容
下载资源
问答
  • 图灵机器人

    2018-12-20 17:47:22
    使用python 编写的一个使用图灵机器人陪同聊天的脚本 。
  • 根据提供的API接入的apikey,就可以通过Python来关联微信与图灵机器人, 进行人机交互了;4、完成下面程序,并执行再扫码登录微信,此时你的微信就可以自动回复所有消息;demo1:图灵机器人,自动回复所...

    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)defauto_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)defreply_my_friend(msg):print(msg)

    tuling.do_reply(msg)

    embed()#开始运行

    bot.join():

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

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

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

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

    importjsonfrom urllib.request importurlopen,Requestfrom urllib.error importURLErrorfrom urllib.parse importurlencodeclassTuringChatMode(object):#初始化API请求地址

    def __init__(self):#API接口地址

    self.turing_url = 'http://www.tuling123.com/openapi/api?'

    #定义人机交互方法

    defbotInteraction (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)#发送请求

    exceptURLError: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()whileTrue:

    msg= input("\n我要说话:")if msg == 'quit':

    exit("您已经退出了对话!") #设定输入quit,退出聊天。

    else:

    botMsg=turing.botInteraction(msg)print("图灵BOT回复我:",botMsg)

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

    展开全文
  • 图灵机器人图灵机器人API V2版使用采坑指南

    万次阅读 热门讨论 2018-09-01 16:34:07
    图灵机器人是以语义技术为核心驱动力的人工智能公司(一大堆内容可百度。),简单来说就是一个优秀的智能机器人接口,可以实现的功能有:中文聊天,情感引擎等。 PS:部分功能是需要收费的,笑。 图灵机器人本身...

    做一个小东西的时候需要用python和这个接口,使用的时候遇到了一些坑,于是记录一下。本文只记录接入API时候的一些简单坑,更多使用技巧没有说到。


    介绍

    图灵机器人是以语义技术为核心驱动力的人工智能公司(一大堆内容可百度。),简单来说就是一个优秀的智能机器人接口,可以实现的功能有:中文聊天,情感引擎等。

    PS:部分功能是需要收费的,笑。

    图灵机器人本身已经有了较为成熟的接入市场的方式,比如微信公众号,甚至个人微信号,QQ都有较为简单的使用方式,同时,他也提供功能强大的API,本文是利用API接入的方式,用Ppython+requests+post搞定。

    工具推荐

    • postman  用于发送http请求测试回复等,非常高效好用

    流程

    第一步:注册and新建机器人然后获取APIKEY(官方文档)

    TuringRobot 官方给出了详细的Web API-帮助中心 ,使用流程中包含注册账号,获取APIKEY,请求方式等详细信息,最初开发者在使用的时候不妨详细阅读此卡发文档。

    文档内有详细说明。

    第二步:你需要的工具

    • python基础包

    • requests的包

    pip install requests
    • json包

    第三步:

    代码:

    import requests
    import json
    
    def get_response(msg):
        api = 'http://openapi.tuling123.com/openapi/api/v2'
        #为什么要以下格式,可以参看api文档
        dat = {
            "perception": {
                "inputText": {
                    "text": msg
                },
                "inputImage": {
                    "url": "imageUrl"
                },
                "selfInfo": {
                    "location": {
                        "city": "北京",
                        "province": "北京",
                        "street": "信息路"
                    }
                }
            },
            #userinfo部分的内容可以在图灵机器人自己的机器人网页查看apikey,我在此处做了隐藏
            #userid官方说明是用户唯一标示,但目前所见是随便填写即可,我填写了我的机器人的名字
            "userInfo": {
                "apiKey": KEY,
                "userId": "fool"
            }
        }
        dat = json.dumps(dat)
        r = requests.post(api, data=dat).json()
     
        #以下为r的内容
        #{'emotion': {'userEmotion': {'emotionId': 10300, 'd': 0, 'p': 0, 'a': 0},
        #              'robotEmotion': {'emotionId': 0, 'd': 0, 'p': 0, 'a': 0}},
        #  'intent': {'code': 10004, 'actionName': '', 'intentName': ''},
        # 'results': [{'resultType': 'text', 'values': {'text': '别兴奋别兴奋,很高兴认识你!'}, 'groupType': 1}]}
    
        mesage = r['results'][0]['values']['text']
        print(r['results'][0]['values']['text'])
        return mesage

    V1版的教程比较多,V2版比较少,这导致我第一次写的时候data写的第一版的格式而失败多次。

    V2版格式原版参考:

    https://www.kancloud.cn/turing/www-tuling123-com/718227

    文档原版,下面来自文档复制内容。

    编码方式

    UTF-8(调用图灵API的各个环节的编码方式均为UTF-8)

    接口地址

    http://openapi.tuling123.com/openapi/api/v2

    请求方式

    HTTP POST

    请求参数

    请求参数格式为 json

    此条表示需要转化为json来使用。

    使用:

    json.dumps()

    语句实现将表单转化为json格式。

    例如表单:

     dat = {
            "perception": {
                "inputText": {
                    "text": msg
                },
                "inputImage": {
                    "url": "imageUrl"
                },
                "selfInfo": {
                    "location": {
                        "city": "北京",
                        "province": "北京",
                        "street": "信息路"
                    }
                }
            },
            "userInfo": {
                "apiKey": KEY,
                "userId": "fool"
            }
        }

    转化方式:

    dat = json.dumps(dat)


    请求示例:

    {
    	"reqType":0,
        "perception": {
            "inputText": {
                "text": "附近的酒店"
            },
            "inputImage": {
                "url": "imageUrl"
            },
            "selfInfo": {
                "location": {
                    "city": "北京",
                    "province": "北京",
                    "street": "信息路"
                }
            }
        },
        "userInfo": {
            "apiKey": "",
            "userId": ""
        }
    }
    

    参数说明

    参数 类型 是否必须 取值范围 说明
    reqType int N - 输入类型:0-文本(默认)、1-图片、2-音频
    perception - Y - 输入信息
    userInfo - Y - 用户参数

    perception

    参数 类型 是否必须 取值范围 说明
    inputText - N - 文本信息
    inputImage - N - 图片信息
    inputMedia - N - 音频信息
    selfInfo - N - 客户端属性

    注意:输入参数必须包含inputText或inputImage或inputMedia!

    inputText

    参数 类型 是否必须 取值范围 说明
    text String Y 1-128字符 直接输入文本

    inputImage

    参数 类型 是否必须 取值范围 说明
    url String Y   图片地址

    inputMedia

    参数 类型 是否必须 取值范围 说明
    url String Y   音频地址

    selfInfo

    参数 类型 是否必须 取值范围 说明
    location - N - 地理位置信息

    location

    参数 类型 是否必须 取值范围 说明
    city String Y - 所在城市
    province String N - 省份
    street String N - 街道

    userInfo

    参数 类型 是否必须 取值范围 说明
    apiKey String Y 32位 机器人标识
    userId String Y 长度小于等于32位 用户唯一标识
    groupId String N 长度小于等于64位 群聊唯一标识
    userIdName String N 长度小于等于64位 群内用户昵称

    输出参数

    输出示例:

      {
        "intent": {
            "code": 10005,
            "intentName": "",
            "actionName": "",
            "parameters": {
                "nearby_place": "酒店"
            }
        },
        "results": [
            {
             	"groupType": 1,
                "resultType": "url",
                "values": {
                    "url": "http://m.elong.com/hotel/0101/nlist/#indate=2016-12-10&outdate=2016-12-11&keywords=%E4%BF%A1%E6%81%AF%E8%B7%AF"
                }
            },
            {
             	"groupType": 1,
                "resultType": "text",
                "values": {
                    "text": "亲,已帮你找到相关酒店信息"
                }
            }
        ]
    }
    

    参数说明

    参数 类型 是否必须 取值范围 说明
    intent - Y - 请求意图
    results - N - 输出结果集

    intent

    参数 类型 是否包含 取值范围 说明
    code int Y - 输出功能code
    intentName String N - 意图名称
    actionName String N - 意图动作名称
    parameters Map N - 功能相关参数

    results

    参数 类型 是否包含 取值范围 说明
    resultType String Y 文本(text);连接(url);音频(voice);视频(video);图片(image);图文(news) 输出类型
    values - Y - 输出值
    groupType int Y - ‘组’编号:0为独立输出,大于0时可能包含同组相关内容 (如:音频与文本为一组时说明内容一致)

    异常返回码

    异常返回格式

    {
    	'intent':
    		{
            	'code':5000
        	}
    }
    

    异常返回说明

    异常码 说明
    5000 无解析结果
    6000 暂不支持该功能
    4000 请求参数格式错误
    4001 加密方式错误
    4002 无功能权限
    4003 该apikey没有可用请求次数
    4005 无功能权限
    4007 apikey不合法
    4100 userid获取失败
    4200 上传格式错误
    4300 批量操作超过限制
    4400 没有上传合法userid
    4500 userid申请个数超过限制
    4600 输入内容为空
    4602 输入文本内容超长(上限150)
    7002 上传信息失败
    8008 服务器错误
    0 上传成功
    展开全文
  • 图灵机器人很多人都听说过,这个开放平台有很多功能,今天来介绍如何用apikey接入图灵机器人。以下是python代码http://www.turingapi.comimport requestsimport jsonuserid = str('Eliza')apikey = str('ec3')# 创建...

    图灵机器人很多人都听说过,这个开放平台有很多功能,今天来介绍如何用apikey接入图灵机器人。以下是python代码

    http://www.turingapi.com

    import requests

    import json

    userid = str('Eliza')

    apikey = str('ec3')

    # 创建post函数

    def robot(content):

    # 图灵api

    api = r'http://openapi.tuling123.com/openapi/api/v2'

    # 创建post提交的数据

    data = {

    "perception": {

    "inputText": {

    "text": content

    }

    },

    "userInfo": {

    "apiKey": apikey,

    "userId": userid,

    }

    }

    # 转化为json格式

    jsondata = json.dumps(data)

    # 发起post请求

    response = requests.post(api, data = jsondata)

    # 将返回的json数据解码

    robot_res = json.loads(response.content)

    # 提取对话数据

    print(robot_res["results"][0]['values']['text'])

    for x in range(100):

    content = input("talk:")

    # 输入对话内容

    robot(content)

    if x == 100:

    break

    while True:

    content = input("talk:")

    # 输入对话内容

    robot(content)

    if content == 'bye':

    # 设置stopwords

    break

    # # 创建对话死循环

    # while True:

    # # 输入对话内容

    # content = input("talk:")

    # robot(content)

    展开全文
  • 我们调用的是图灵机器人,这个apiUrl就是图灵机器人提供给我们的api接口。 接下来给大家演示一下怎么来调用自己的机器人。

    这是一个把接收的消息传给图灵机器人,再把图灵机器人回复的消息传回来的函数.

    def get_response(msg):
    	apiUrl = 'http://www.tuling123.com/openapi/api'
    	
    	data={
    		'key'   : 'bd0a1aafaafd418bbdb6aa0a40f73859',
    		'info'  : msg,
    		'userid': '小爱',
    	}
    	
    	try:
    		r = requests.post(apiUrl, data=data).json()
    		return r.get("text")
    	except:
    		return
    

    我们调用的是图灵机器人,这个apiUrl就是图灵机器人提供给我们的api接口。
    接下来给大家演示一下怎么来调用自己的机器人。

    首先我们来注册一个属于我们自己的自己人

    图灵机器人官网
    在这里插入图片描述
    登陆进来后我们创建一个机器人,定制你想要的类型。
    在这里插入图片描述
    创建完选择服务版的免费版就好了,每天限量1000次。
    然后我们就能看到api了,这个就是我们需要的调用机器人用的。

    人物设置:可以设置机器人身份是男生或是女生等设置,这样机器人语气啥的就有会相应变化哦,看你喜欢大叔还是小萝莉了,哈哈。
    在这里插入图片描述
    具体的机器人具有什么功能,帮助文档里都有看的
    比如:如何查天气、如何玩成语接龙。

    我们最关注的是我要怎么调用,看看它给出的接入方法,json格式,都可以通过什么参数来调用什么高级功能。
    在这里插入图片描述

    接下来看看我们是怎么用代码调用的

    什么是json格式,大括号里面的内容的格式就是呢,现在显示的这个是最简单的呢

    data={
    	'key'   : 'bd0a1aafaafd418bbdb6aa0a40f73859',
    	'info'  : msg,
    	'userid': '小爱',
    }
    

    然后通过requests把data传给指定指定的apiUrl。apiUrl就是我们设置的
    http://www.tuling123.com/openapi/api
    这个还是老版本的呢,新版本v2的是文档里给出的
    http://openapi.tuling123.com/openapi/api/v2
    最后r.get(“text”)就获取到了那边传回来的内容了,get(“text”)是只获得文本内容呢

    r = requests.post(apiUrl, data=data).json()
    r.get("text")
    

    如果想获得图片,链接,音乐之类的呢,我们就可以升级一下,当然,你的整体都要改呢。我的下一个博客就是来演示关于图灵机器人的斗图功能是怎么来实现的。

    喜欢的点个赞❤哦!

    在这里插入图片描述

    展开全文
  • 本例中列出了微信公众平台开发的所有流程的代码,包括接收xml数据、解析xml数据、调用图灵机器人api接口获取智能回复内容、封装结果xml数据等,简单明了,不明之处可查看个人博客中的讲解。
  • 微信图灵机器人

    2019-08-07 23:47:42
    微信-图灵机器人
  • /usr/bin/env python#-*- coding:utf-8 -*- @Author : wujf @Time:2018/9/4 15:21from wxpy import *# 扫码登陆bot = Bot(cache_path=False)# 初始化图灵机器人 (API key 申请: http://tuling...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,175
精华内容 870
关键字:

图灵机器人