一个调用腾讯API,一个调用图灵API,一个调用青云API。
原来写过了调用腾讯聊天API的,今天就不解释了,直接复制。
腾讯API获取参数的文件
import hashlib
import time
import random
import string
from urllib.parse import quote
def curlmd5(src):
m = hashlib.md5(src.encode('UTF-8'))
# 将得到的MD5值所有字符转换成大写
return m.hexdigest().upper()
def get_params(plus_item):
# 请求时间戳(秒级),用于防止请求重放(保证签名5分钟有效)
t = time.time()
time_stamp=str(int(t))
# 请求随机字符串,用于保证签名不可预测
nonce_str = ''.join(random.sample(string.ascii_letters + string.digits, 10))
# 应用标志,这里修改成自己的id和key
app_id = '11066xxxx'
app_key = 'Wz0bsFWuNGxxxx'
params = {'app_id':app_id,
'question':plus_item,
'time_stamp':time_stamp,
'nonce_str':nonce_str,
'session':'10000'
}
sign_before = ''
# 要对key排序再拼接
for key in sorted(params):
# 键值拼接过程value部分需要URL编码,URL编码算法用大写字母,例如%E8。quote默认大写。
sign_before += '{}={}&'.format(key,quote(params[key], safe=''))
# 将应用密钥以app_key为键名,拼接到字符串sign_before末尾
sign_before += 'app_key={}'.format(app_key)
# 对字符串sign_before进行MD5运算,得到接口请求签名
sign = curlmd5(sign_before)
params['sign'] = sign
return params
然后就是三人尬聊的文件,看了很久,或许他们在聊一些重复的内容,而且这也不是三个机器人在一起聊,聊天内容是单点传送,不知道有什么共享方式。
from time import sleep
import requests
import md5sign
def get_content(plus_item):
# 聊天的API地址
url = "https://api.ai.qq.com/fcgi-bin/nlp/nlp_textchat"
# 获取请求参数
plus_item = plus_item.encode('utf-8')
payload = md5sign.get_params(plus_item)
# r = requests.get(url,params=payload)
r = requests.post(url,data=payload).json()
return r["data"]["answer"]
def get_text(s):
resp = requests.post("http://www.tuling123.com/openapi/api",
data={"key": "4fede3c4384846b9a7d0456a5e1e2943", "info": s, })
resp = resp.json()
return resp['text']
def get_qy(s):
resp = requests.get("http://api.qingyunke.com/api.php", {'key': 'free', 'appid': 0, 'msg': s})
resp.encoding = 'utf8'
resp = resp.json()
return resp['content']
if __name__ == '__main__':
a = input('我:')
while True:
a = get_text(a)
print('图灵:',a)
sleep(1)
a = get_content(a)
print('美女:',a)
sleep(1)
a = get_qy(a)
print("青云:",a)
sleep(1)
看起来还挺智能的,不过它们的聊天没有任何主题