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

0 致谢

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

1 注册腾讯AI账号

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

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包安装这里不再赘述。

# 导入相关库
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位版,可能报毒,自己斟酌是否下载运行)。

©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页