16行Python代碼實(shí)現(xiàn)微信聊天機(jī)器人并自動(dòng)智能回復(fù)功能
在我們的生活和工作當(dāng)中,很多時(shí)候我們并不能及時(shí)地回復(fù)消息,尤其是業(yè)務(wù)比較多的人,客戶給我們發(fā)消息我們不回又不好,但又沒有那么多精力時(shí)時(shí)回復(fù),這個(gè)時(shí)候智能機(jī)器人就能幫助我們解決很多問題。
像電商類的客服,像大的QQ群/微信群管理員,以及我們打游戲的時(shí)候,掛著腳本就行,機(jī)器人自動(dòng)幫你回消息,一時(shí)半會(huì)兒不會(huì)得罪女朋友,哈哈哈!
今天就來教大家一招,16行Python代碼實(shí)現(xiàn)1個(gè)微信聊天智能機(jī)器人(圖靈),再也不用擔(dān)心不回消息被客戶罵了!
一、效果
我拿我自己的微信(左邊)登陸之后,用我助手的微信測(cè)試了一下,機(jī)器人接管了我的微信之后的聊天效果看起來還是不錯(cuò)的:
二、項(xiàng)目思路
整體的思路如下圖所示:
三、代碼分析
1.安裝和導(dǎo)入模塊
這里要用到的兩個(gè),itchat模塊和requests模塊,這是必不可少的一步,項(xiàng)目基于這兩個(gè)模塊運(yùn)行的。安裝方法很簡單,直接窗口鍵+R調(diào)出命令窗口,然后輸入指令安裝,比如說安裝itchat模塊就直接輸入 pip install itchat。
提示一下,兩個(gè)模塊分開安裝,裝完1個(gè)再裝另一個(gè)。
安裝完成之后,我們就可以直接在代碼中導(dǎo)入模塊:
import itchat import requests
2.申請(qǐng)圖靈機(jī)器人
這個(gè)項(xiàng)目的機(jī)器人是現(xiàn)成的圖靈機(jī)器人,我們需要去圖靈官網(wǎng)注冊(cè)一下,然后進(jìn)入后臺(tái)創(chuàng)建機(jī)器人,每個(gè)機(jī)器人都有1個(gè)api,這是我們要用到的。
圖靈機(jī)器人之前是有免費(fèi)版和體驗(yàn)版的,現(xiàn)在的話需要實(shí)名認(rèn)證一下才有,雖然每天只有100次的消息回復(fù),但對(duì)于測(cè)試者來玩玩是可以的。
圖靈還可以進(jìn)行關(guān)鍵詞的個(gè)性回復(fù),在后臺(tái)的“私有語料庫”設(shè)置一下就可以。
3.實(shí)現(xiàn)機(jī)器人功能
這里除了要有訪問網(wǎng)站的url之外,還要確定調(diào)用的是哪個(gè)機(jī)器人,因?yàn)榭赡苣愕暮笈_(tái)有多個(gè)機(jī)器人,這時(shí)候就用到了每個(gè)機(jī)器人特有的api,以及獲取要發(fā)送的消息,然后用于post方式發(fā)送請(qǐng)求,發(fā)送網(wǎng)站的url、機(jī)器人的api和要發(fā)送的消息,最后提取字典里面的text,最終進(jìn)行返回?cái)?shù)據(jù)。
def get_response(msg): apiUrl= "http://www.tuling123.com/openapi/api" #要訪問的網(wǎng)站 #key:機(jī)器人的key,info:要發(fā)送的消息 data={'key':KEY,'info':msg,'userid':"WeChat-robot"} #發(fā)送請(qǐng)求: r = requests.post(apiUrl,data=data) return r["text"]
4.實(shí)現(xiàn)微信功能
如果有人給我們發(fā)消息,我們就調(diào)用上面返回的數(shù)據(jù),那么如何知道是否有人給你發(fā)消息?這個(gè)時(shí)候的我們就用到了裝飾器,itchat提供的 @itchat.msg_register() 就能實(shí)現(xiàn)這個(gè)功能;接著調(diào)用上面已經(jīng)寫好的機(jī)器人功能,最終返回機(jī)器人的信息或者發(fā)送者的信息。
為什么要加發(fā)送者的信息復(fù)制一遍發(fā)送?這是防止網(wǎng)絡(luò)等其他問題導(dǎo)致機(jī)器人沒有響應(yīng),這個(gè)時(shí)候誰給我們發(fā)什么消息,我們就自動(dòng)給他回復(fù)同樣的消息,避免聊天時(shí)無反應(yīng)。
@itchat.msg_register(itchat.content.TEXT) def tuling_reply(user_data): print(user_data)#用戶的信息包含給你發(fā)的消息 user=user_data["Text"]#用戶發(fā)你的信息 return_user = get_response(user_data["Text"]) print(return_user) return return_user or user
5.彈出二維碼及循環(huán)程序
在程序運(yùn)行時(shí)我們需要彈出1個(gè)二維碼,讓我們掃碼后登陸,同時(shí)要保證程序一直處于運(yùn)行狀態(tài),不然程序只跑一遍就完了,這兩個(gè)功能在itchat都提供了,直接用就行。
itchat.auto_login()#掃碼登錄 itchat.run()#循環(huán)執(zhí)行
以上就是這個(gè)微信智能聊天機(jī)器人的代碼分析,這個(gè)假人還是不錯(cuò)的,付費(fèi)版本我不知道,充錢肯定會(huì)更強(qiáng),整個(gè)下來不超過20行代碼。
到此這篇關(guān)于16行Python代碼實(shí)現(xiàn)微信聊天機(jī)器人并自動(dòng)智能回復(fù)功能的文章就介紹到這了,更多相關(guān)python微信聊天機(jī)器人內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python使用?TCP協(xié)議實(shí)現(xiàn)智能聊天機(jī)器人功能
- python實(shí)現(xiàn)AI聊天機(jī)器人詳解流程
- python機(jī)器學(xué)習(xí)創(chuàng)建基于規(guī)則聊天機(jī)器人過程示例詳解
- python人工智能算法之線性回歸實(shí)例
- python人工智能算法之決策樹流程示例詳解
- python人工智能算法之人工神經(jīng)網(wǎng)絡(luò)
- python人工智能使用RepVgg實(shí)現(xiàn)圖像分類示例詳解
- python人工智能自定義求導(dǎo)tf_diffs詳解
- Python人工智能構(gòu)建簡單聊天機(jī)器人示例詳解
相關(guān)文章
Python庫學(xué)習(xí)Tkinter制作GUI個(gè)性簽名設(shè)計(jì)軟件
Tkinter 是 Python 中的標(biāo)準(zhǔn) GUI 庫,使用 Tkinter 可以快速地創(chuàng)建 GUI 應(yīng)用程序。今天我們打算再用一個(gè)小案例,帶大家加深對(duì)Tkinter的理解2021-09-09python pandas移動(dòng)窗口函數(shù)rolling的用法
今天小編就為大家分享一篇python pandas移動(dòng)窗口函數(shù)rolling的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-02-02Python中WatchDog的使用經(jīng)驗(yàn)總結(jié)
在?python?中文件監(jiān)視主要有兩個(gè)庫,一個(gè)是?pyinotify,一個(gè)是?watchdog,本文主要為大家詳細(xì)介紹一下Python中WatchDog的使用相關(guān)經(jīng)驗(yàn),感興趣的小伙伴可以了解下2023-12-12Python UnicodeEncodeError: ''gbk'' codec can''t encode chara
這篇文章主要介紹了Python UnicodeEncodeError: 'gbk' codec can't encode character 解決方法,需要的朋友可以參考下2015-04-04pycharm激活碼2020最新分享適用pycharm2020最新版親測(cè)可用
這篇文章主要介紹了pycharm激活碼2020最新分享適用pycharm2020最新版親測(cè)可用,同時(shí)也支持Intellij IDEA激活碼,PHPStorm激活碼大家可以放心使用需要的朋友可以參考下2020-11-11pandas中的Timestamp只保留日期不顯示時(shí)間
這篇文章主要介紹了pandas中的Timestamp只保留日期不顯示時(shí)間,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07