一. 基本信息
- 作者: 地窖上的松
- 联系方式:QQ: 602380092
- 文件版本:v1.3.0
- 更新日期:2025/2/28
- 关键词:
bert
deepseek
二. 介绍
相关帖:【抛砖引玉】如何给骰娘完整的一生
接入 BERT 模型判断是否回复,接入 deepseekapi 生成回复。
插件分不同模块,可以随需求修改reply/reply.lua
以实现模块的增删。
部分模块配置使用有一定门槛,建议有修改 lua 与 python 代码的能力。
不懂的也可以直接问我 有空的话会回的
插件代码仓库在此
效果展示:

三.模块介绍与使用方法
只要把reply/reply.lua
中对应模块的触发配置直接删去就能够关掉对应模块了

早晚安模块
对应触发配置
msg_reply.aibot_good_mn = {
keyword = {
Match = {
"早安",
"早",
"早上好",
"晚安",
"晚安安",
"晚上好",
"下午好",
"中午好",
"上午好",
"午安"
}
},
type = "order",
limit = {
cd = 180,
},
echo = {
lua = "aibot_good_mn"
}
}
此模块监听设置的道安消息,记录此时时间,直接调用 deepseekapi 生成回复。

其实就是 deepseekapi 版的分时段回复,心血来潮加上的
需要配置:
deepseek api key
符合骰娘人设的 prompt
开关模块
对应触发配置
msg_reply.aibot_switch = {
keyword = {
Prefix = {
".aibot"
}
},
type = "order",
echo = {
lua = "aibot_switch"
}
}
此模块控制除早晚安模块之外模块的开关,同时可以发送帮助信息

aibot 主模块
对应触发配置
msg_reply.aibot0 = {
keyword = {
Regex = {
"^[^%.。r](.*)" -- 匹配所有不以指令前缀开头的消息
}
},
type = "order",
limit = {},
echo = {
lua = "aibot"
}
}
主模块监听所有不以指令开头或字母r
的消息,所以会使所有type = reply
的回复词失效,解决方法见第 7 节
主模块监听消息,以经过检测的消息调用 BERT 模型判断是否回复,若是则调用 deepseekapi 生成回复。
将排除以下类型的消息:
插件关闭状态群聊的消息
全词匹配设定的回复词的
以设定的前缀为开头的消息
开启了日志记录的群聊消息
包含违禁词与屏蔽词的消息
启用此模块比较麻烦,需要配置:
aibot reply 模块
对应触发配置
msg_reply.aibot_reply = {
keyword = {
Prefix = {
"[CQ:reply,id=" -- 匹配所有回复消息
}
},
type = "order",
limit = {},
echo = {
lua = "aibot_reply"
}
}
此模块可以实现用户回复 aibot 生成的发言时,可以保持记忆继续聊天。
模块监听所有回复消息
暂时想不到什么好的记忆上下文方法,所以姑且先写了这个模块
比起主模块需要多配置一个骰子框架 http 端口。
四. 训练自己的 BERT 模型
训练过程见此博客
数据集可以参考 github 中的。
五. 获取 deepseek api key
推荐 coreshub,现在注册送 50 元额度
大模型服务 - API 密钥管理 - 创建 API 密钥 即可

随后将插件中的 deepseek_api_token
配置项修改为自己的 token

如果用其他平台的 api,还需要修改deepseek_api
和model
六. 写一份适合自己骰娘的 prompt
可以让 deepseek 帮忙写

然后根据自己需求改改就好。
prompt 建议分段加入prompt_list
中,代码中的prompt_list
即为例子
七. 如何与回复词共存
aibot主模块会自动读取data/reply_list.json
文件作为回复词列表,如果全词匹配到回复此列表中的内容,会返回并自动构造一条消息reply_[回复词]
.

同时,aibot插件不会监听以字母r
开头的发言,所以如果将DiceQQ/conf/CustomMsgReply.json
中的回复词存入data/reply_list.json
文件作为回复词列表,同时在所有的回复触发词前加上reply_
即可实现共存。
示例reply_list.json
:
{
"reply_list": [
"七海千秋",
"苗木诚",
"希望",
"18年夏天",
]
}
全词匹配之外的回复词建议设为type=order
,也可实现共存。
插件代码仓库中的tools
文件夹内有一个python文件可以帮助实现。
get_reply_list.py
可以自动读取同目录下的CustomMsgReply.json
文件,获取其中的全词匹配回复词存入reply_list.json
中,同时为所有的全词匹配回复词加上reply_
的前缀,将新的CustomMsgReply.json
覆盖掉旧的,重启即可生效。
八. 测试建议
建议先将bert_debug
设为 true,如此,骰娘会先监听包含关键词的消息调用 BERT 模型,但只有白名单中的群聊或用户私聊才会生成回复,可以以此来测试 BERT 模型效果。
