本文共 2296 字,大约阅读时间需要 7 分钟。
一个调用腾讯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 sleepimport 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)
看起来还挺智能的,不过它们的聊天没有任何主题