Nonebot2 plugin to learn what your group members say.
Project description
📖 介绍
一个能够让Bot根据群友的习惯发言,自动选择历史语录或者表情包进行回复的学习插件。
安装完本插件后并不会马上有效果,需要给Bot一段时间积累群聊记录。
学到一定程度后,插件就会变成话唠王,把群友们的奇怪发言和表情包通通抢过来。
本插件还配备了一个Web UI
后台管理供Bot主人修改配置,支持分群配置。
本插件仅适用于OneBot V11
适配器。
💿 安装
使用 nb-cli 安装
在 nonebot2 项目的根目录下打开命令行, 输入以下指令即可安装nb plugin install nonebot-plugin-learning-chat
使用包管理器安装
在 nonebot2 项目的插件目录下, 打开命令行, 根据你使用的包管理器, 输入相应的安装命令pip
pip install nonebot-plugin-learning-chat
pdm
pdm add nonebot-plugin-learning-chat
poetry
poetry add nonebot-plugin-learning-chat
conda
conda install nonebot-plugin-learning-chat
打开 nonebot2 项目的 bot.py
文件, 在其中写入
nonebot.load_plugin('nonebot_plugin_learning-chat')
✏️ 工作原理
该插件会将群友们的发言都记录在数据库中。
每当群友有一条新发言时,插件会将本条发言记录为上一条发言的可选回复之一,然后在数据库中查找符合条件的本发言的历史回复,从中选择一条进行回复。
以下为一个简单的例子:
群友1:诶嘿
群友2:诶嘿是什么意思啊
群友1:诶嘿
群友2:诶嘿是什么意思啊
群友1:诶嘿
群友2:诶嘿是什么意思啊
群友1:诶嘿
群友2:诶嘿是什么意思啊
这样诶嘿是什么意思啊
会被学习为诶嘿
的回复4次,而诶嘿
会被学习为诶嘿是什么意思啊
的回复3次。
在默认配置中,某个回复需要学习次数达到4次后才会将其列为可选答案之一。
因此以后当有群友说诶嘿
时,插件就会从数据中查找所以学习次数大于4的回复,发现目前有诶嘿是什么意思啊
一种,就会有概率回复诶嘿是什么意思啊
。
简而言之,本插件就是一个高级一点的复读姬和QA问答人。
✨ 其他功能
插件还具备复读和主动发言的功能。
复读
顾名思义,就是复读。当群友复读达到一定次数时(默认为3),插件就会跟着复读。
以下情况即使达到次数也不会跟随复读:
- 复读的信息是被ban了的或者过短的
- 复读的人是被ban了的或者全都为同一个人在复读
- 达到次数所花费的时间太长(超过一个小时)
主动发言
每隔一段时间,插件就会对群聊热度进行一次排行,从中选取一个群,随机发送一条或多条该群的历史发言。
🔧 配置项
本插件使用yml
文件作为配置文件,因为需要做动态修改和分群配置,因此没有采用Nonebot的.env
形式的配置。
yml
配置文件位于Bot目录/data/learing_chat/learning_chat.yml
中,不过个人更推荐你使用Web UI
后台管理来修改配置。
每个配置项的作用都在后台管理页面中有较为详细的介绍,这里只列举几个:
配置项 | 默认值 | 说明 |
---|---|---|
群聊学习开关 | true | 顾名思义 |
屏蔽词 | [] | 含有这些词的聊天记录不会进行学习 |
屏蔽用户 | [] | 与这些用户相关的聊天记录不会进行学习 |
跨群回复阈值 | 3 | N个群均有相同的回复时,则作为全局回复 |
最高学习次数 | 6 | 学习的回复最高能累计到的次数 |
自定义词典 | [] | 添加自定义词语,让分词能够识别未收录的词汇 |
回复阈值 | 4 | 需要学多少次才会作为可选回复之一 |
复读阈值 | 3 | 群友复读多少次后才跟着复读 |
主动发言阈值 | 5 | 主动发言的概率 |
部分配置为全局配置,部分可设置分群配置,具体请在后台管理中查看。
🔑 后台管理
本插件提供了一个简易的Web UI
后台管理供Bot主人修改配置项以及查看数据库。
Web UI
默认启用,访问http://127.0.0.1:nb端口/learning_chat/login
进行登录。
- 默认用户名: chat
- 默认密码: admin
请在登入之后,修改默认的用户名、密码以及加密所用的token密钥。
💝 鸣谢
- Pallas-Bot: 本项目的核心算法源自于牛牛的复读功能,
基本上就是抄它的。 - Nonebot: 本项目的基础。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for nonebot_plugin_learning_chat-0.1.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a5ff1e718b11fe61c367d6423c93a3ada9f51ae4b9ba9648d5ad81fab3ff0cb |
|
MD5 | a8aaaa49bcf7f5b898e1b88fdfa64178 |
|
BLAKE2b-256 | 1f638edd1a066455a42f385e100d703da69678f173ab342c0fb33768c49d8fc2 |
Hashes for nonebot_plugin_learning_chat-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 968a1ddf3a6214d0ecda1e51099abe753ec3a0bdebe64dc9a108ebb90fa236cc |
|
MD5 | 7a7f665357df9821ac31cd90489457e9 |
|
BLAKE2b-256 | 4c0b2fe74bd67a6c22bf4622a86d81fd5804304586d22e0e79a8bb87a15bfa2a |