20行代碼搭建微信聊天機器人
共 1468字,需瀏覽 3分鐘
·
2022-02-09 17:28
介紹了如何用20行Python搭建一個微信聊天機器人,并討論了其可能的拓展方向。
引子
在之前一邊文章中介紹客服機器人:AI實戰(zhàn):搭建客服機器人,本文將在此基礎上制作一個聊天機器人,前一篇文章的重點在于問答,而本文的重點在于如何接入微信。
環(huán)境配置
實現(xiàn)一個微信機器人,最重要的有兩件事:
- 接入微信
- 智能回復
第一個功能,可以借助wxpy;而對于第二個功能,則使用之前已經(jīng)實踐過的ChatterBot。在開源社區(qū)有不少接入微信的庫,而開源的聊天機器人也有很多,之所以選擇二者是因為他們的文檔都非常齊全,因此本文也不會對如何使用這兩個庫做過多講解。
注意!Python版本要求3.5,wxpy和ChatterBot都可以通過pip安裝,不贅述。
編寫代碼
實際的代碼不超過20行(果然人生苦短、我用Python),這里添加一些注釋便于理解
#!/usr/bin/env python3.5
from wxpy import *
from chatterbot import ChatBot
from chatterbot.trainers import ChatterBotCorpusTrainer
chatbot = ChatBot("deepThought")# 用于回復消息的機器人
chatbot.set_trainer(ChatterBotCorpusTrainer)
chatbot.train("chatterbot.corpus.chinese")# 使用該庫的中文語料庫
bot = Bot(cache_path=True)# 用于接入微信的機器人
group_2 = bot.groups("友誼是")[0]# 進行測試的群
group_2.send("大家好,我是人工智障")
@bot.register(group_2)
def reply_my_friend(msg):
print(msg)
return chatbot.get_response(msg.text).text# 使用機器人進行自動回復
# 堵塞線程,并進入 Python 命令行
embed()效果演示
掃碼登陸(為防止知乎識別二維碼已打碼):
進入人工智障模式:
后臺效果:
一點思考
這是一個非常簡單的例子,因為沒有對機器人的知識庫進行定制,所以機器人的回復十分簡單,十幾句對話就會被識破。但基于這兩個庫所能做的事情絕不僅限于此,本文只是拋磚引玉,可以在此基礎上做出更多有意思的東西,比如:
- 監(jiān)測微信群對話,以此為語料庫訓練機器人。其實我之前有一個想法就是利用海賊王里面的對話(又或者金庸的小說)作為訓練的語料,可以得到一個滿滿海賊王畫風(又或者武俠風格)的聊天機器人。
- 完成一些自動化的任務,比如每天定時跟女票道早安(這個的難點在于首先得有一個女票)。最近在鵝廠實習,每天早晨都需要微信簽到,可以考慮自動化(因為程序員的信條就是不做重復性的工作)。
- Demo中機器人對每句話都做了回復,可以增強其表現(xiàn),比如只回復@了自己的以及語料庫匹配度比較高的消息(對應實際情景中聊天者比較熟悉的話題),這樣就更能以見亂真了。
以上,是我比較期望的三點,如有時間、精力可以試試。此外,除了使用庫,了解背后的原理也十分有必要。比如,要實現(xiàn)一個wxpy可能就需要對微信抓包,分析他的通信協(xié)議;要實現(xiàn)一個ChatterBot功能類似的庫可能就需要實現(xiàn)一種NLU算法,選擇合適的機器學習模型和數(shù)據(jù)庫等。風格良好的文檔可以幫助我們快速上手,但要游刃有余還需深入源碼!
以上,一點思考。
