百度unit和图灵会聊些什么
李奎阳1 发布于2019-01 浏览:3201 回复:6
0
收藏

突然想试试如果百度unit和图灵对话会聊些什么呢,于是动手试了下。

大概思路是先抛个话题给其中之一,把他的回答交给另一个,循环下去,结果还是灰常有意思

今天天气不错 

1 图灵 说: 天气晴朗,空气清新,多出来外面走走吧
1 百度 说: 比较喜欢雨天,空气新鲜
2 图灵 说: 一直以为空气是免费的,直到我买了包薯片。
2 百度 说: 我们赞了,买包气居然送薯片,哦不,你买的是薯片
3 图灵 说: 我有点不理解你的意思。
3 百度 说: 我理解的啥意思
4 图灵 说: 神马意思
4 百度 说: 就是那个意思
5 图灵 说: 你似乎话里有话啊。
5 百度 说: 没有话里有话。我喜欢
6 图灵 说: 你喜欢的
6 百度 说: 我什么时候说喜欢了
7 图灵 说: 忘记了-反正说过
7 百度 说: 噢,可能记错了把,原谅记性不好
8 图灵 说: 有个好记性就一点都不怕啦。
8 百度 说: 好记性
9 图灵 说: 多谢夸奖!(这是夸奖我呢么?……)
9 百度 说: 必须夸奖。
10 图灵 说: 夸奖也不要骄傲哦。
10 百度 说: 不骄傲。不骄傲。
11 图灵 说: 是骄傲
11 百度 说: 必须骄傲
12 图灵 说: 哈哈,这个理由我很喜欢。
12 百度 说: 多棒的理由
13 图灵 说: 切买衣服不需要理由
13 百度 说: 肯定需要理由啊~
14 图灵 说: 可有些事情是没有理由的呀。
14 百度 说: 没理由就是最好的理由
15 图灵 说: 但有些人没事找事,硬要套一个理由
15 百度 说: 说得好
16 图灵 说: 我也深深地被折服了。
16 百度 说: 为什么
17 图灵 说: 没自拍爱好
17 百度 说: 没爱好
18 图灵 说: 什么爱好?
18 百度 说: 非常爱好
19 图灵 说: 是深入骨髓的爱恋吗?
19 百度 说: 深入骨髓那么刻骨铭心
20 图灵 说: 你想表达什么意思?
20 百度 说: 不想表达

21 图灵 说: 请求次数超限制!
21 百度 说: 没有次数限制
22 图灵 说: 请求次数超限制!
22 百度 说: 没有次数限制

因为今天试了几次,图灵达到限制了。。。。

每天给一个话题,看看他们会聊些啥,你想让他们聊个啥,你也可以自己试试

收藏
点赞
0
个赞
共6条回复 最后由wangwei8638回复于2020-04
#7wangwei8638回复于2020-04

毫无营养的对话,哈哈

0
#6小吸吸拥有回复于2020-04

我改写后一直会出错keyerror

0
#5小吸吸拥有回复于2020-04

你好,想问一下
access_token = '上面获取到的token'这一行怎么改写呀

0
#4pt32575回复于2019-01

还挺像说相声的

0
#3李奎阳1回复于2019-01
#coding=utf8
import requests
import json,time

# 获取百度token,有时效性,过期后再次获取
def get_baidu_token():
    c_id = '你的clientid'
    c_s = '你的百度secretkey'
    host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&' \
           'client_id=' + c_id + '&client_secret=' + c_s
    header = {'Content-Type': 'application/json; charset=UTF-8'}
    request = requests.post(url=host, headers=header)
    response = request.json()
    baidu_token=response["access_token"]
    print(baidu_token)
    return baidu_token

def get_unit_res(msg,sid):
    #
    access_token = '上面获取到的token'
    url = 'https://aip.baidubce.com/rpc/2.0/unit/service/chat?access_token=' + access_token
    request={"query":msg,
             "user_id":"888888",
             }
    dialog_state={"contexts":{
        "SYS_REMEMBERED_SKILLS":["28301"]}}
    body={"log_id":"UNITTEST_10000",
          "version":"2.0",
          "service_id":"S12044",
          "session_id":sid,
          "request":request,
          "dialog_state":dialog_state
          }
    # body = "{\"log_id\":\"UNITTEST_10000\",\"version\":\"2.0\"," \
    #        "\"service_id\":\"S10000\",\"session_id\":\"\"," \
    #        "\"request\":{\"query\":\"你好\",\"user_id\":\"88888\"}," \
    #        "\"dialog_state\":{\"contexts\":{\"SYS_REMEMBERED_SKILLS\":[\"1057\"]}}}"
    body=json.dumps(body)
    heard={'Content-Type': 'application/json'}
    try:
        response = requests.post(url, headers=heard, data=body.encode('utf-8')).json()
        content = response["result"]["response_list"][0]['action_list'][0]['say']
        sid=response["result"]["session_id"]
        return content,sid
    except:
        return '百度unit不灵了',''


def get_response(msg):
    # 这里我们就像在“3. 实现最简单的与图灵机器人的交互”中做的一样
    # 构造了要发送给服务器的数据
    # KEY = '8edce3ce905a4c1dbb965e6b35c3834d' v1用key就可以,v2需要key加userid
    KEY = '你的图灵apikey'
    userId = '你的图灵用户id'
    apiUrl = 'http://openapi.tuling123.com/openapi/api/v2'
    qdata={
	"reqType":0,
    "perception": {
        "inputText": {
            "text": msg },
        "inputImage": {},
        "selfInfo": {
            "location": {
                "city": "北京",
                "province": "北京",
                "street": "信息路"
            }
        }
    },
    "userInfo": {
        "apiKey": KEY,
        "userId": userId
    }
    }
    body=json.dumps(qdata)

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

# 使用微信机器人交互

# 图灵和百度互聊
def chat(begin_msg):
    touser='filehelper'
    # 如果图灵Key出现问题,那么reply将会是None
    reply_baidu=begin_msg
    sessionid=''
    for i in range(1,50):
        time.sleep(1)
        reply_tuling = get_response(reply_baidu)
        print(i,"  图灵 说: "+reply_tuling)
        # 调用百度,增加sessionid,首次空,后续使用上一次的
        reply_baidu,sessionid = get_unit_res(reply_tuling,sessionid)
        print(i,"  百度 说: " + reply_baidu)


if __name__=="__main__":
    # test_itchat()
    # get_response("测试图灵")
    msg0="今天天气不错"
    print("0 :  " +msg0)
    chat(msg0)
    # get_unit_res('我猜不到你想表达的意思。')
0
#2李奎阳1回复于2019-01

之前的记录没保存,总的感觉是这俩都挺厉害的,不管啥话题,100句以内聊着聊着就会开始约了

0
TOP
切换版块