Python初探之实现机器人聊天+微信自动回复

最近看到公司代码平台上有小伙伴用Python实现了聊天机器人功能,一直很想学Python却没有开始,自己实现一下,集成聊天机器人+接入微信接口实现自动回复。

一、图灵机器人

1. 在图灵机器人官网注册一个账号http://www.turingapi.com/#/platfrom

2. 注册登录后点击创建机器人,填写基本信息


3. 创建成功,在机器人设置界面找到APP Key,代码中会用。(免费版每天只能回复5000条消息)


二、Python实现机器人聊天功能

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条消息,无回复的话可能是达到上限。

猜你喜欢

转载自blog.csdn.net/NNnora/article/details/81004800