Python做一個聊天機器人

受到疫情的影響宋欺,今年的這個假期顯得格外的長,可能是我國建國以來最長的一次的吧欠痴。很多同學們大呼“我第一次這么想去上學”迄靠,“去年在家撿蘑菇,今年在家長蘑菇”喇辽,“這個寒假有暑假的味道了”掌挚,想來大家在家中憋得也是很是辛苦。每天早上起來看看疫情數(shù)據(jù)菩咨,看看最動態(tài)吠式,早飯后各種線上娛樂一頓操作陡厘,下午和晚上也是差不多了。第一次感覺豬生活得也很不容易啊特占。

雖然每天都盼著早些去上學糙置,早些回公司上班,但這個假卻是越放越長是目。本來部分地區(qū)最初是打算在二月的中下旬開始開學的谤饭,這些天突然又推遲到的三月份,而且具體時間還要等后面的通知懊纳。一些公司也是打算先部分人在家中辦公揉抵,然后9號之后返回公司開始上班,部分人可能行李都準備好了嗤疯,可是又接到延遲返回公司的通知冤今。用一句話來形容大家就是,“閑的發(fā)慌呀”茂缚!

而現(xiàn)實是戏罢,即使在全國人民都最有時間聊天的時候都沒有人找你聊天的話,說明真的沒有人喜歡你脚囊。聽到這句話時龟糕,不知道有多少單身狗受到了一萬點傷害,不過放心凑术,我與你們同在(笑哭.jpg)翩蘸。都說自己動手,豐衣足食淮逊,沒有人找自己聊天催首,就要創(chuàng)造機會讓自己去聊天,哪怕對面是個機器人呢泄鹏。與其等女神/男神來撩自己郎任,有一句沒一句的聊著,半天都不回消息备籽,不如自己動手打造一個屬于自己一個人的舶治,會唱會跳會rap,脾氣超好车猬,消息秒回的女神/男神呢霉猛?

話不多說,開工珠闰!

準備工作

一臺電腦惜浅,一個手機,一個熱水袋伏嗜,兩個微信號

什么,我沒有兩個微信號怎么辦?怎么辦定嗓,活人能讓尿憋死不成,注冊一個唄挣轨。

那熱水袋又是什么鬼?哦轩猩,天氣冷卷扮,暖暖手。

運行環(huán)境準備

(1)Python3.5及以上版本(Python2.7已經(jīng)停止更新均践,雖然還能用

(2)使用Pip安裝最新的的itchat, requests庫

? ? ? ? ? pip install --upgrade pip? #使用前先更新一下pip

? ? ? ? ? pip install itchat requests #安裝itchat, requests庫

可以通過在python交互界面中導入庫看是否安裝成功画饥,如果像下圖中沒有報錯,說明安裝成功浊猾。

庫使用介紹

(1)itchat

itchat是一位牛人根據(jù)網(wǎng)頁版微信接口做出來的庫,能夠實現(xiàn)微信消息的各種功能热鞍。例如加好友自動通過葫慎,群消息回復,消息中提到我回復薇宠,接受公眾號消息偷办,文字、圖片澄港、音頻以及視頻消息等多種消息的接受和回復椒涯。這個庫使用起來十分的輕便,再次登入時可以不用再掃碼回梧,而且能夠保持長時間登入废岂。在回復的消息中,也可以是文字狱意,圖片湖苞、音頻或者視頻,配合起來使用详囤,十分的有趣财骨。下面是一個簡單的登入,監(jiān)聽消息以及回復的簡單例子藏姐。

importitchatfromitchat.contentimportTEXT@itchat.msg_register(TEXT)defsimple_reply(msg):print(msg['Text'])returnmsg['Text']itchat.auto_login(hotReload=True)itchat.run()

簡單分析一下隆箩。代碼的最開始兩行,導入itchat庫和一個TEXT的消息類型羔杨。中間的是消息注冊器捌臊,監(jiān)聽是否接收到文字消息,如果有的話问畅,消息打印出來娃属,同時將原消息發(fā)送回去六荒。最后兩行是登入與一直運行。值得注意的是矾端,hotReload=True?這個參數(shù)加上之后掏击,第一次掃碼登入時會產(chǎn)生一個pkl文件,那么在下一次登入時秩铆,就可以不用再次掃碼了砚亭。

關于itchat的更多使用,大家可以參考這篇博客和官方網(wǎng)站(加載好慢)介紹殴玛。

Python微信庫:itchat?www.cnblogs.com

itchat api中文?itchat.readthedocs.io

(2)requests庫

相信了解過爬蟲的朋友們對這個庫一定不會陌生了捅膘,即使沒有真正地學過爬蟲,也一定有所耳聞的滚粟。requests庫是一個常用于網(wǎng)絡通信的的庫寻仗,當然通信協(xié)議是http/https一類的。以我們用瀏覽器打開一個網(wǎng)頁為例凡壤。首先是我們向地址框輸入一個地址署尤,瀏覽器開始發(fā)起請求(request)。然后瀏覽器等待服務器的響應(resoponse)亚侠,如果沒有出現(xiàn)錯誤的話曹体,那么就會返回一個響應。最后瀏覽器會將響應解析硝烂,然后呈現(xiàn)在瀏覽器頁面上箕别。

那么,requests庫做了什么呢滞谢。一般來說串稀,requests庫完成了瀏覽器訪問一個網(wǎng)頁的前兩個步驟,即發(fā)送請求和得到響應狮杨。至于解析部分厨诸,根據(jù)個人目的和喜好,可以使用不同的方式進行解析禾酱。比如爬蟲中就常以BeautifulSoup對響應的content(文本)進行解析微酬,按規(guī)則查找自己想要的內容。

注冊一個機器人

目前有些平臺推出了各種各樣的人工智能聊天服務颤陶,比如騰訊颗管,百度和阿里,網(wǎng)絡上也有很多其他類似的服務滓走。通常來說垦江,這些服務都是面向接口開發(fā)的,我們在做自己東西的時候也只需要按照其服務介紹進行編程即可搅方。在該文中比吭,使用的是騰訊的智能閑聊绽族,畢竟大廠做出來的東西總是要好一些的嘛。而且個人每天還有7000次的接口調用次數(shù)衩藤,爽得不得了吧慢,比起一些動不動就付費的平臺來講,大氣多了赏表。

使用的時候呢检诗,我們只需要注冊一個機器人,得到它的key就可以了瓢剿。至于如何接收數(shù)據(jù)逢慌,官方文檔中寫得再清楚不過了。為了節(jié)省大家時間间狂,還是直接給地址吧(有些搜索引擎不想讓我好好學習)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??文檔中心-騰訊AI開放平臺?ai.qq.com

當然攻泼,厲害一些的,家里有礦的大佬鉴象,也可用語料庫通過深度學習自己訓練一個好的網(wǎng)絡坠韩,然后再整合一些其他功能,做一個100%原生態(tài)的機器人炼列。對于大部分人來說,有免費且好用的機器人音比,咱就不挑剔了俭尖。

代碼編寫

到了這里,大家基本上已經(jīng)搞懂了如何去編寫了洞翩。以上面自動回復為例吧稽犁,只需將接受來的消息送入API接口充當參數(shù),然后將得到的響應作為新的消息發(fā)送出去骚亿,那么這樣就完成了一次你與機器人之間的對話了已亥。當然,此外我們也是需要加一些控制的来屠。比如回復的速度不要太快了虑椎,稍作一些延遲,避免被封俱笛。還有就是要做回復人的控制捆姜,不能每一個人都自動回復了,萬一別人真有些事要找你呢迎膜?可以考慮加一些好友白名單泥技,關鍵詞之類的,再加一個機器人啟動和停止關鍵詞磕仅。那么這樣的話珊豹,基本上簸呈,一個完整的機器人就算是完成了。

至于如何把TA調教好的話店茶,哈哈蜕便,那就根據(jù)個人口味愛好在機器人中去做自己的設置嘍。

放心忽妒,這里沒有代碼玩裙,留個大家一些思考和成長的時間。俗話說段直,授人以魚吃溅,不如授人以漁。多遇見幾個Bug或者Error就成長了鸯檬。

是不是心動了呢决侈?快樂其實很簡單,自動動動腦子喧务,動動手就可以創(chuàng)造出來赖歌。看起來很復雜功茴,做起來其實很簡單庐冯。用很少的代碼,獲取很多的快樂坎穿,這個假期展父,讓自己不再孤單。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末玲昧,一起剝皮案震驚了整個濱河市栖茉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌孵延,老刑警劉巖吕漂,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異尘应,居然都是意外死亡惶凝,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門犬钢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來梨睁,“玉大人,你說我怎么就攤上這事娜饵∑潞兀” “怎么了?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長遍坟。 經(jīng)常有香客問我拳亿,道長,這世上最難降的妖魔是什么愿伴? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任肺魁,我火速辦了婚禮,結果婚禮上隔节,老公的妹妹穿的比我還像新娘鹅经。我一直安慰自己,他們只是感情好怎诫,可當我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布瘾晃。 她就那樣靜靜地躺著,像睡著了一般幻妓。 火紅的嫁衣襯著肌膚如雪蹦误。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天肉津,我揣著相機與錄音强胰,去河邊找鬼。 笑死妹沙,一個胖子當著我的面吹牛偶洋,可吹牛的內容都是我干的。 我是一名探鬼主播距糖,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼玄窝,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了肾筐?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤缸剪,失蹤者是張志新(化名)和其女友劉穎吗铐,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體杏节,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡唬渗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了奋渔。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片镊逝。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖嫉鲸,靈堂內的尸體忽然破棺而出撑蒜,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布座菠,位于F島的核電站狸眼,受9級特大地震影響,放射性物質發(fā)生泄漏浴滴。R本人自食惡果不足惜拓萌,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望升略。 院中可真熱鬧微王,春花似錦、人聲如沸品嚣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽腰根。三九已至激才,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間额嘿,已是汗流浹背瘸恼。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留册养,地道東北人东帅。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像球拦,于是被迫代替她去往敵國和親靠闭。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內容