腾讯AI-智能闲聊机器人-Python3全套教程

0 致谢

此篇博客参考了 小锋学长 在腾讯云社区的文章 本身动手实现4大免费聊天机器人:小冰、图灵、腾讯、青云客 ,在此表示衷心感谢!html

1 注册腾讯AI帐号

在这里 腾讯AI平台 注册一个平台帐号(可用QQ帐号注册登陆)并实名认证,而后进入控制台,具体过程略去,再也不赘述。python

2 建立应用(如下各步骤均采用图片说明)

2.1 建立应用

01_建立应用.png

2.2 记录APP_ID和APP_KEY

02_记录APP_ID和APP_KEY.png

3 接入能力

3.1 选择能力

03_选择能力.png

3.2 接入能力

04_接入能力01
04_接入能力02
04_接入能力03

3.3 接入能力成功

05_接入能力成功

4 文档查看

06_查看文档01
06_查看文档02

5 开始撸代码

注释得很详尽,不懂的地方能够留言,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()

6 祝你们Coding之路所向披靡!

PS:若是只是想体验一下或者不想撸代码,能够在这里 AI_Chat_v3.exe 下载体验(pyinstaller直接导出的,64位版,可能报毒,本身斟酌是否下载运行)。web