自动水群
站点可能有水群赚积分的机制或水群保活的要求, 此时您可以使用自动水群模块.
警告
自动水群模块使用一个或多个语料文件, 虽然我们已经对预置的语料文件进行了清洗, 但语料文件内容仍可能引起群内其他人怀疑, 可能导致您的禁言乃至封号. 因此, 请谨慎使用自动水群功能.
支持站点
请参考 README.
会员等级
该功能需要高级用户 (PRIME).
开启条件
该功能开启的条件为:
您是高级用户.
命令行没有禁用自动水群:
bash# 启用全部功能 embykeeper -i # 启用自动水群 embykeeper -i -s # 禁用自动水群, 启用其他功能 embykeeper -i -c -e -m
配置文件有至少一个 Telegram 账户配置, 且设置了
send = true
:toml[[telegram.account]] phone = "+8616401875896" messager = true
您需要加入水群目标的群组或频道.
若您所需的站点为默认禁用, 您需要在 配置文件中启用该站点:
toml[site] messager = ["nakonako", "pornfans"]
配置选项
自定义水群
如果您需要水群的站点尚未被支持, 但是符合以下通用模板格式, 即可通过模板创建:
自定义水群, 每一定时间, 从指定的语料列表中取一条消息发送 (templ_a
)
您需要先增加一个站点:
[site]
messager = ["templ_a<example_site>"]
[messager.'templ_a<example_site>']
name = "某某站点"
chat_name = "moumou_chat"
message_lists = "pornemby-common-wl@v1.yaml * 100"
这将在某某站点 (用户名为 @moumou_chat
) 中每天发送 100 条消息.
语料列表请放置在工作目录 (程序启动时显示, 非 Docker 运行通常为 $HOME/.local/share/embykeeper
, Docker 运行通常为 config.toml
同目录)
您也可以直接在配置中定义语料:
[messager.'templ_a<moumou_chat>']
name = "某某站点"
messages = [
"大家好",
"签到",
]
可使用的设置项包括:
设置项 | 值类型 | 简介 | 默认值 |
---|---|---|---|
name | str | 水群器显示名称 | |
chat_name | str /int | 发送消息的群聊名称或 ID | |
messages | list(str) | 使用的语料字符串的列表, 与 message_lists 二选一 | |
message_lists | str / list(str) | 使用的语料列表和每日发送数量, 例如 ["some-wl@v1.yaml * 1000"] | [] |
min_interval | int | 发送最小间隔(秒) | 60 |
max_interval | int | 发送最大间隔(秒) | |
at | list | 发送时间区间, 例如 ["5:00AM", "9:00PM"] | ["0:00", "23:59"] |
possibility | float | 发送概率, 例如 1.00 | |
only | str | 仅在周末/周中发送, 可选值:"weekday" 或"weekend" | |
max_count_recent_5 | int | 最近 5 条消息中最大存在的水群消息数 | 1 |
max_count_recent_10 | int | 最近 10 条消息中最大存在的水群消息数 | 1 |
自定义水群, 每一定时间, 仿照语料库的风格, 使用 AI 根据聊天上下文推断一条信息发送 (templ_a
)
您需要先增加一个站点:
[site]
messager = ["templ_b<example_site>"]
[messager.'templ_b<example_site>']
name = "某某站点智能水群"
chat_name = "moumou_chat"
msg_per_day = 100
min_msg_gap = 10
style_message_list = "pornemby-common-wl@v1.yaml"
extra_prompt = "只能输出 8 字以上的回复:"
这将在某某站点 (用户名为 @moumou_chat
) 中每天发送 100 条消息.
语料列表请放置在工作目录 (程序启动时显示, 非 Docker 运行通常为 $HOME/.local/share/embykeeper
, Docker 运行通常为 config.toml
同目录)
语料列表至多读取前 100 条.
您也可以直接在配置中定义语料:
[messager.'templ_b<example_site>']
name = "某某站点"
chat_name = "moumou_chat"
style_messages = [
"大家好",
"签到",
]
可使用的设置项包括:
设置项 | 值类型 | 简介 | 默认值 |
---|---|---|---|
name | str | 水群器显示名称 | |
chat_name | str /int | 发送消息的群聊名称或 ID | |
style_messages | list(str) | 使用的风格语料, 与 style_message_list 二选一 | |
style_message_list | str | 使用的风格语料列表, 例如"some-wl@v1.yaml" | |
min_interval | int | 发送最小间隔(秒) | 60 |
max_interval | int | 发送最大间隔(秒) | |
at | list | 发送时间区间, 例如 ["5:00AM", "9:00PM"] | ["0:00", "23:59"] |
msg_per_day | int | 每天发送消息数量 | 10 |
min_msg_gap | int | 最小消息间隔(分钟) | 5 |
force_day | bool | 强制每条时间线在每个自然日运行 | false |
prompt | str | 使用的完整提示词 | (默认提示词) |
extra_prompt | str | 追加的提示词 | |
max_length | int | 发送消息的最大长度 | 50 |
filter_recent_similarity | float | 若近 100 条中存在消息相似度高于该值则不进行发送 | |
max_count_recent_5 | int | 最近 5 条消息中最大存在的水群消息数 | 1 |
max_count_recent_10 | int | 最近 10 条消息中最大存在的水群消息数 | 1 |
站点配置
如果您需要调整水群的频次, 您需要在配置文件末尾追加:
[messager.pornfans]
messages = ["pornemby-common-wl@latest.yaml * 100"]
min_interval = 60 # 两次水群之间最小间隔 (s)
max_interval = 300 # 两次水群之间最大间隔 (s)
这表示在群组中一个周期 (一般为一天) 发送 100 条消息. 发送时间将随机分布, 且两次之间最小间隔 为 60 秒, 最大间隔为 300 秒.
在这里, pornemby-common-wl@latest.yaml
表示一个本地或在线话术列表.
首先匹配本地文件:
对于 Docker 运行而言, 将对应容器内
/app
目录下的文件, 即config.toml
所在目录下的文件.对于命令行运行而言, 将对应当前路径下的文件, 也可以使用绝对路径.
当本地文件不存在时, 从预置资源库下载:
- 用
名称@版本.后缀
标识资源, 当版本为latest
时, 将自动下载最新版本.
- 用
话术列表文件的格式为:
# 话术列表, 每行一条
messages:
- 消息 1
- 消息 2
- ...
# 发送概率
possibility: 1.0
# 发送时间区间限制
at: ['7:00', '9:00']
# 发送星期几限制, 可选 weekdays / weekends
only: weekdays
其中, possibility
, at
, only
都是可选的.
对于智能水群器, 您也可以自定义提示词, 例如在默认提示词外增加提示词:
[messager.smart_pornfans]
extra_prompt = "请勿输出数字"
您也可以完全重写提示词:
[messager.smart_pornfans]
prompt = "xxxx"