聊天机器人¶
将以下代码保存到eim_monitor.py
文件里(在Adapter 插件目录中)
# 将聊天服务从图灵机器人切换到腾讯闲聊
import requests
import json
import time
import random
import string
import hashlib
import urllib
def monitor(msg, logger):
'''
handle the message from the eim client(eg: scratch)
'''
appId = "2155753409"
apiKey = "MyLQpyMr7K6S3kNI"
apiUrl = "https://api.ai.qq.com/fcgi-bin/nlp/nlp_textchat"
content = {
'app_id': appId,
'time_stamp': str(int(time.time())),
'nonce_str': ''.join(random.choice(string.ascii_letters + string.digits) for x in range(16)),
'session': '10000'.encode('utf-8'),
'question': msg.encode('utf-8')
}
sign_before = ''
for key in sorted(content):
# 键值拼接过程value部分需要URL编码,URL编码算法用大写字母,例如%E8。quote默认大写。
sign_before += '{}={}&'.format(key, urllib.parse.quote(content[key], safe=''))
# 将应用密钥以app_key为键名,拼接到字符串sign_before末尾
sign_before += 'app_key={}'.format(apiKey)
# 对字符串sign_before进行MD5运算,得到接口请求签名
sign = hashlib.md5(sign_before.encode('UTF-8')).hexdigest().upper()
content['sign'] = sign
stime=time.time()
r = requests.post(apiUrl, data=content).json()
qtime=time.time()
dt=qtime-stime
print(dt)
return r['data']['answer']
之后可以在Scratch中使用它: