summaryrefslogtreecommitdiff
path: root/ATRI/plugins/chatbot/__init__.py
diff options
context:
space:
mode:
authorKyomotoi <[email protected]>2021-12-11 23:10:00 +0800
committerGitHub <[email protected]>2021-12-11 23:10:00 +0800
commit42d6bb6e4d492aac530042a9b9d1a7e477c0f51b (patch)
treee514db6e8099af691fc496a50ccf3fd7598634b3 /ATRI/plugins/chatbot/__init__.py
parentb19cf7768a70cf639853d9d33a6ab2a3d56e7045 (diff)
parent37ad77a6f7966d0394a43134ab1339533dc16ecf (diff)
downloadATRI-42d6bb6e4d492aac530042a9b9d1a7e477c0f51b.tar.gz
ATRI-42d6bb6e4d492aac530042a9b9d1a7e477c0f51b.tar.bz2
ATRI-42d6bb6e4d492aac530042a9b9d1a7e477c0f51b.zip
✨ 合并PR #38 from zzj1804/main
新增chatbot插件,从群聊天学习,并随机回话 修改chat插件,无法回话时尝试chatterbot
Diffstat (limited to 'ATRI/plugins/chatbot/__init__.py')
-rw-r--r--ATRI/plugins/chatbot/__init__.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/ATRI/plugins/chatbot/__init__.py b/ATRI/plugins/chatbot/__init__.py
new file mode 100644
index 0000000..53b3772
--- /dev/null
+++ b/ATRI/plugins/chatbot/__init__.py
@@ -0,0 +1,31 @@
+import random
+from ATRI.config import ChatterBot
+from ATRI.plugins.atri_chat_bot import ATRIChatBot
+from nonebot import on_message
+from nonebot import on_command
+from nonebot.adapters.cqhttp import (
+ Bot,
+ GroupMessageEvent,
+ MessageEvent,
+)
+from nonebot.permission import SUPERUSER
+
+chatbot = on_message(priority=114514)
+
+async def _learn_from_group(bot: Bot, event: MessageEvent):
+ text = event.get_plaintext().strip()
+ if not text:
+ return
+ if isinstance(event, GroupMessageEvent): # 从群友那学习说话
+ ATRIChatBot.learn(event.get_session_id(), text)
+ if random.random() <= ChatterBot.group_random_response_rate: # 随机回话
+ await chatbot.finish(await ATRIChatBot.get_response(text))
+
+
+chatbot_learn = on_command("/learn_corpus", permission=SUPERUSER)
+
+@chatbot_learn.handle()
+async def _learn_from_corpus(bot: Bot, event: MessageEvent):
+ ATRIChatBot.learn_from_corpus()
+ await chatbot.finish("咱从corpus那学习完了!") \ No newline at end of file