此次實現公衆的基本功能:被關注回覆、關鍵詞回覆、收到消息回覆
python
# 訂閱後的回覆
@robot.subscribe
def subscribe():
return "***歡迎關注公衆號[愉快][愉快][愉快]***\n" \
"***輸入任意內容開始與我聊天!\n" \
"***輸入'博客'關注個人博客!\n" \
"***輸入'音樂'爲小主送上舒緩的歌曲!\n"
# 關鍵字 博客 回覆
@robot.filter('博客')
def blog(message):
reply = ArticlesReply(message=message)
article = Article(
title="Python數據分析實戰",
description="個人我的博客",
img="https://werobot.readthedocs.io/zh_CN/latest/_static/qq.png",
url="https://www.jianshu.com/u/bdf11cce83a1"
)
reply.add_article(article)
return reply
# 收到消息回覆
@robot.text
def replay(msg):
# print(msg.content)
# curtime = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
# response = get_response(msg.content)
# print(
# curtime + ' 公衆號(機器人)' + ':' + response)
# return response
return "該功能有待處理,敬請期待"
複製代碼
@robot.subscribe:git
訂閱回覆:即當用戶訂閱公衆號時回覆的內容github
@robot.filter('博客')bash
關鍵字回覆:即用戶輸入關鍵詞時回覆的內容echarts
@robot.text函數
收到消息回覆:當用戶回覆文字沒有命中關鍵詞時回覆的內容ui
已知咱們最經常使用的功能就是關鍵詞回覆,可是經過filter這種關鍵詞回覆:每添加一個關鍵詞功能,就要添加一個對應的路由。
人工智能
這種方式會致使咱們的關鍵詞路由函數過多,處理起來也不方便。
url
統一處理關鍵詞回覆spa
咱們能夠經過收到消息回覆,收到用戶消息,回覆文字內容,
先檢測是否是關鍵詞,若是是關鍵詞則回覆關鍵詞內容,若是不是則回覆對應其餘內容。
# 文字智能回覆
@robot.text
def replay(msg):
# 獲取用戶輸入內容
user_text = msg.content
# 關鍵詞詞檢測並回復
answer_text = get_code(user_text)
# 非關鍵詞回覆
if answer_text is None:
answer_text = response_text(user_text).text
return answer_text
複製代碼
接收的參數msg並非用戶的直接內容,經過msg.content獲取用戶輸入內容
關鍵詞檢測和回覆:
worlds_list = [
{
"key":["20191210", "公衆號code" ],
"values":"https://github.com/silencesmile/gzh_code"
},
{
"key": ["wav音頻", "wav", "python_wav"],
"values": "https://github.com/silencesmile/python_wav"
},
{
"key": ["圖像識別", "AI", "ai", "人工智能"],
"values": "GitHub:https://github.com/silencesmile/TensorFlow-ResNet",
},
{
"key": ["pyecharts"],
"values": "https://github.com/silencesmile/pyecharts.git"
},
{
"key": ["一出好戲"],
"values": "https://github.com/silencesmile/movie_Analyst.git"
}
]
# 關鍵詞檢測並回復
def get_code(text):
for key_worlds in worlds_list:
key_list = key_worlds.get("key")
values = key_worlds.get("values")
if text in key_list:
return values
return None
複製代碼
這樣就很好管理關鍵詞的回覆了,不須要定義多個關鍵詞路由。
下期預告:
圖片的接收以及如何回覆處理後的圖片