最近看到公司代码平台上有小伙伴用Python实现了聊天机器人功能,一直很想学Python却没有开始,自己实现一下,集成聊天机器人+接入微信接口实现自动回复。
1. 在图灵机器人官网注册一个账号http://www.turingapi.com/#/platfrom
2. 注册登录后点击创建机器人,填写基本信息
3. 创建成功,在机器人设置界面找到APP Key,代码中会用。(免费版每天只能回复5000条消息)
1. 编写python文件,集成图灵机器人聊天功能。
import json
import urllib.request
api_url = "http://openapi.tuling123.com/openapi/api/v2"
text_input = input('想问我什么?')
req = {
"reqType":0,#输入类型,0代表文本
"perception":#输入信息
{
"inputText":#文本信息,必须
{
"text": text_input
},
"selfInfo":#客户端属性
{
"location":#地理位置信息
{
"city": "北京",
"province": "北京",
"street": "海淀区"
}
}
},
"userInfo": #用户参数
{
"apiKey": "97b1e612d69a459fa7893f7712ec4a4a",
"userId": "OnlyUseAlphabet"
}
}
# 将字典格式的req编码为utf8
req = json.dumps(req).encode('utf8')
http_post = urllib.request.Request(api_url, data=req, headers={'content-type': 'application/json'})
response = urllib.request.urlopen(http_post)
response_str = response.read().decode('utf8')
response_dic = json.loads(response_str)
intent_code = response_dic['intent']['code']
results_text = response_dic['results'][0]['values']['text']
print('小图说:')
#print('code:' + str(intent_code))
print(results_text)
各个参数的意义参考官方API文档https://www.kancloud.cn/turing/web_api/522992
2. 在cmd里运行python文件:python 文件地址
3. 成功:
1. 首先下载微信个人号的包itchat
pip install itchat
2. 修改代码:#isGroupChat为false表示忽略群聊
import json
import urllib.request
import itchat
api_url = "http://openapi.tuling123.com/openapi/api/v2"
def get_response(_info):
req = {
"reqType":0,#输入类型,0代表文本
"perception":#输入信息
{
"inputText":#文本信息,必须
{
"text": _info#为函数传入的参数,即好友发送过来的消息
},
"selfInfo":#客户端属性
{
"location":#地理位置信息
{
"city": "北京",
"province": "北京",
"street": "海淀区"
}
}
},
"userInfo": #用户参数
{
"apiKey": "97b1e612d69a459fa7893f7712ec4a4a",
"userId": "OnlyUseAlphabet"
}
}
# 将字典格式的req编码为utf8
req = json.dumps(req).encode('utf8')
http_post = urllib.request.Request(api_url, data=req, headers={'content-type': 'application/json'})
response = urllib.request.urlopen(http_post)
response_str = response.read().decode('utf8')
response_dic = json.loads(response_str)
return response_dic['results'][0]['values']['text']
@itchat.msg_register(itchat.content.TEXT, isGroupChat=False)#isGroupChat为false表示忽略群聊
def text_reply(msg):
return get_response(msg["Text"])
if __name__ == '__main__':
itchat.auto_login(hotReload=True) # hotReload = True, 保持在线,下次运行代码可自动登录
itchat.run()
3. 运行python文件,会弹出二维码,扫码登录微信,经测试可用!
效果如图。
注:
1. 由于公司入域限制,公司电脑是不可以调用图灵机器人api的,会报连接错误,未入域的电脑可以。
2. 一天图灵机器人最多回复5000条消息,无回复的话可能是达到上限。
刚刚搜索了一下机器学习实现闲聊机器人模型的资料,立一个flag,争取以后自己做一个闲聊机器人!