用Python寫了一個微信聊天機器人
在我們的生活和工作當中,很多時候我們并不能及時地回復消息,尤其是業務比較多的人,客戶給我們發消息我們不回又不好,但又沒有那么多精力時時回復,這個時候智能機器人就能幫助我們解決很多問題。
像電商類的客服,像大的QQ群/微信群管理員,以及我們打游戲的時候,掛著腳本就行,機器人自動幫你回消息,一時半會兒不會得罪女朋友,哈哈哈!
今天就來教大家一招,16行Python代碼實現1個微信聊天智能機器人(圖靈),再也不用擔心不回消息被客戶罵了!
一、效果
我拿我自己的微信(左邊)登陸之后,用我助手的微信測試了一下,機器人接管了我的微信之后的聊天效果看起來還是不錯的:
二、項目思路
整體的思路如下圖所示:
三、代碼分析
1.安裝和導入模塊
這里要用到的兩個,itchat模塊和requests模塊,這是必不可少的一步,項目基于這兩個模塊運行的。安裝方法很簡單,直接窗口鍵+R調出命令窗口,然后輸入指令安裝,比如說安裝itchat模塊就直接輸入 pip install itchat。微信搜索公眾號:Linux技術迷,回復:linux 領取資料 。
提示一下,兩個模塊分開安裝,裝完1個再裝另一個。
安裝完成之后,我們就可以直接在代碼中導入模塊:
import itchat
import requests
2.申請圖靈機器人
這個項目的機器人是現成的圖靈機器人,我們需要去圖靈官網注冊一下,然后進入后臺創建機器人,每個機器人都有1個api,這是我們要用到的。
圖靈機器人之前是有免費版和體驗版的,現在的話需要實名認證一下才有,雖然每天只有100次的消息回復,但對于測試者來玩玩是可以的。
圖靈還可以進行關鍵詞的個性回復,在后臺的“私有語料庫”設置一下就可以。
3.實現機器人功能
這里除了要有訪問網站的url之外,還要確定調用的是哪個機器人,因為可能你的后臺有多個機器人,這時候就用到了每個機器人特有的api,以及獲取要發送的消息,然后用于post方式發送請求,發送網站的url、機器人的api和要發送的消息,最后提取字典里面的text,最終進行返回數據。
def get_response(msg):
apiUrl= "http://www.tuling123.com/openapi/api" #要訪問的網站
#key:機器人的key,info:要發送的消息
data={'key':KEY,'info':msg,'userid':"WeChat-robot"}
#發送請求:
r = requests.post(apiUrl,data=data)
return r["text"]
4.實現微信功能
如果有人給我們發消息,我們就調用上面返回的數據,那么如何知道是否有人給你發消息?這個時候的我們就用到了裝飾器,itchat提供的 @itchat.msg_register() 就能實現這個功能;接著調用上面已經寫好的機器人功能,最終返回機器人的信息或者發送者的信息。
為什么要加發送者的信息復制一遍發送?這是防止網絡等其他問題導致機器人沒有響應,這個時候誰給我們發什么消息,我們就自動給他回復同樣的消息,避免聊天時無反應。
msg_register(itchat.content.TEXT).
def tuling_reply(user_data):
print(user_data)#用戶的信息包含給你發的消息
user=user_data["Text"]#用戶發你的信息
return_user = get_response(user_data["Text"])
print(return_user)
return return_user or user
5.彈出二維碼及循環程序
在程序運行時我們需要彈出1個二維碼,讓我們掃碼后登陸,同時要保證程序一直處于運行狀態,不然程序只跑一遍就完了,這兩個功能在itchat都提供了,直接用就行。
itchat.auto_login()#掃碼登錄
itchat.run()#循環執行
以上就是這個微信智能聊天機器人的代碼分析,這個假人還是不錯的,付費版本我不知道,充錢肯定會更強,整個下來不超過20行代碼。