RegexFilter 插件
一个使用正则表达式处理LLM消息的AstrBot插件,可以对LLM回复进行替换、删除、增添等操作。
下载过旧版本插件的,需要把data/config/astrbot_plugin_regex_filter_config.json删除,webui上的配置才能正常显示。
功能介绍
RegexFilter插件能够拦截并处理bot的响应消息,通过预设的正则表达式规则对消息内容进行修改,包括:
- 替换:将匹配的文本替换为指定内容
- 删除:删除匹配的文本
安装方法
将整个
astrbot_plugin_regex_filter文件夹复制到AstrBot的插件目录下:AstrBot/data/plugins/重启AstrBot或在WebUI中重新加载插件。
使用方法
通过命令行
插件提供了多个命令用于管理规则:
基本指令
/regex_list- 显示当前所有规则/regex_toggle- 切换插件启用/禁用状态/regex_listen_all- 切换是否监听所有机器人回复(不只是LLM回复)
规则管理
/regex_add [pattern] [replacement]- 添加新规则replacement: 替换内容(可选,不提供则为删除规则)
例如:
/regex_add 不可以 可以 /regex_add 问题/regex_remove [index]- 删除指定索引的规则index: 规则的索引(从1开始)
规则测试
/regex_test [text]- 测试规则对指定文本的效果text: 要测试的文本内容
例如:
/regex_test "这个问题不可以解决"
默认规则
插件预设了几个示例规则:
- 将"不可以"替换为"可以"
- 将"糟糕"、"坏"或"不好"替换为"好"
- 删除所有"问题"字样
配置文件说明
插件使用_conf_schema.json文件定义配置结构,主要配置项包括:
enabled: 是否启用插件listen_all_responses: 是否监听所有机器人回复(包括非LLM回复)replace_rules: 替换规则列表delete_rules: 删除规则列表
使用场景
- 内容过滤:过滤掉不希望显示的内容
- 文本风格调整:将特定表达方式替换为更符合需求的表达
- 添加固定签名:在消息末尾添加特定标记或签名
- 格式修正:修正LLM可能输出的不规范格式
注意事项
- 正则表达式规则按添加顺序依次执行
- 添加复杂的正则表达式前建议先使用
/regex_test命令测试效果 - 如果插件无法正常加载,可以尝试删除配置文件,让插件重新生成默认配置
故障排除
如果遇到以下问题:
- 插件加载失败:检查配置文件是否正确,尝试删除配置文件让系统重新生成
- 规则不生效:使用
/regex_test命令测试规则,确认正则表达式是否正确 - 插件未处理消息:检查插件是否已启用,使用
/regex_toggle命令确认启用状态 - 监听所有回复不工作:使用
/regex_listen_all命令确认监听全部回复功能是否开启