此篇博客参考了 小锋学长 在腾讯云社区的文章 本身动手实现4大免费聊天机器人:小冰、图灵、腾讯、青云客 ,在此表示衷心感谢!html
在这里 腾讯AI平台 注册一个平台帐号(可用QQ帐号注册登陆)并实名认证,而后进入控制台,具体过程略去,再也不赘述。python
注释得很详尽,不懂的地方能够留言,Python环境和IDE配置以及pip包安装这里再也不赘述。git
# 导入相关库 import requests import time import string import random import urllib import hashlib def Tencent_AI_Chat_Robot(msg): APPID = "" # 这里填刚刚记录的APPID APPKEY = "" # 这里填刚刚记录的APPKEY url = "https://api.ai.qq.com/fcgi-bin/nlp/nlp_textchat" # API地址 # 构造请求参数 params = { "app_id": APPID, # 时间戳(从1970.01.01 08:00到如今经历了多少秒) "time_stamp": str(int(time.time())), # 随机字符串,这里从26个英文字母+10个数字中随机抽16个(可重复,小写)组成 "nonce_str": "".join(random.choice(string.ascii_letters + string.digits) for x in range(16)), # 会话标识(默认“10000”,应用内惟一) "session": "10000".encode("utf-8"), # 我方发言 "question": msg.encode("utf-8") } # 签名信息,生成规则见文档接口鉴权部分 sign_before = "" # 生成签名 # 将<key, value>请求参数对按key进行字典升序排序,获得有序的参数对列表N for key in sorted(params): # 将列表N中的参数对按URL键值对的格式拼接成字符串,获得字符串T(如:key1=value1&key2=value2) # 键值拼接过程value部分须要URL编码,URL编码算法用大写字母,例如%E8。quote默认大写 sign_before += "{}={}&".format(key, urllib.parse.quote(params[key], safe="")) # 将应用密钥以app_key为键名,拼接到字符串sign_before末尾 sign_before += "app_key={}".format(APPKEY) # 对字符串sign_before进行MD5运算,并转换成16进制大写格式,获得接口请求签名 sign = hashlib.md5(sign_before.encode("UTF-8")).hexdigest().upper() # 将签名追加到请求参数 params["sign"] = sign # print(params) # 调用API(url是API地址,data是请求参数),并返回数据(JSON格式) html = requests.post(url, data=params).json() # 提取API返回信息中的回答语句 return html["data"]["answer"] def main(): print("\n提示:在 请发言: 以后输入你的话语(输入 q 退出),而后按enter(回车键)。\n") index = 0 while True: my_msg = input("Round_{0}\n请发言:".format(str(index))) if my_msg == "q": break print("AI回复:{0}\n".format(Tencent_AI_Chat_Robot(my_msg))) index += 1 if __name__ == '__main__': main()
PS:若是只是想体验一下或者不想撸代码,能够在这里 AI_Chat_v3.exe 下载体验(pyinstaller直接导出的,64位版,可能报毒,本身斟酌是否下载运行)。web