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條消息,無回覆的話可能是達到上限。


四、自己訓練一個機器人

剛剛搜索了一下機器學習實現閒聊機器人模型的資料,立一個flag,爭取以後自己做一個閒聊機器人!

發佈了54 篇原創文章 · 獲贊 15 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章