Skip to content

自动水群

站点可能有水群赚积分的机制或水群保活的要求, 此时您可以使用自动水群模块.

警告

自动水群模块使用一个或多个语料文件, 虽然我们已经对预置的语料文件进行了清洗, 但语料文件内容仍可能引起群内其他人怀疑, 可能导致您的禁言乃至封号. 因此, 请谨慎使用自动水群功能.

支持站点

请参考 README.

会员等级

该功能需要高级用户 (PRIME).

开启条件

该功能开启的条件为:

  1. 您是高级用户.

  2. 命令行没有禁用自动水群:

    bash
    # 启用全部功能
    embykeeper -i
    
    # 启用自动水群
    embykeeper -i -s
    
    # 禁用自动水群, 启用其他功能
    embykeeper -i -c -e -m
  3. 配置文件有至少一个 Telegram 账户配置, 且设置了 send = true:

    toml
    [[telegram.account]]
    phone = "+8616401875896"
    messager = true
  4. 您需要加入水群目标的群组或频道.

  5. 若您所需的站点为默认禁用, 您需要在 配置文件中启用该站点:

    toml
    [site]
    messager = ["nakonako", "pornfans"]

配置选项

  1. 监控的站点: 通过配置文件 site 项调节, 例如:

    toml
    [site]
    messager = ["pornfans"]

    其中的站点可以通过: 支持的站点 中的英文名 (而非机器人名) 填入.

自定义水群

如果您需要水群的站点尚未被支持, 但是符合以下通用模板格式, 即可通过模板创建:

自定义水群, 每一定时间, 从指定的语料列表中取一条消息发送 (templ_a)

您需要先增加一个站点:

toml
[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 同目录)

您也可以直接在配置中定义语料:

toml
[messager.'templ_a<moumou_chat>']
name = "某某站点"
messages = [
  "大家好",
  "签到",
]

可使用的设置项包括:

设置项值类型简介默认值
namestr水群器显示名称
chat_namestr/int发送消息的群聊名称或 ID
messageslist(str)使用的语料字符串的列表, 与 message_lists 二选一
message_listsstr / list(str)使用的语料列表和每日发送数量, 例如 ["some-wl@v1.yaml * 1000"][]
min_intervalint发送最小间隔(秒)60
max_intervalint发送最大间隔(秒)
atlist发送时间区间, 例如 ["5:00AM", "9:00PM"]["0:00", "23:59"]
possibilityfloat发送概率, 例如 1.00
onlystr仅在周末/周中发送, 可选值:"weekday""weekend"
max_count_recent_5int最近 5 条消息中最大存在的水群消息数1
max_count_recent_10int最近 10 条消息中最大存在的水群消息数1
自定义水群, 每一定时间, 仿照语料库的风格, 使用 AI 根据聊天上下文推断一条信息发送 (templ_a)

您需要先增加一个站点:

toml
[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 条.

您也可以直接在配置中定义语料:

toml
[messager.'templ_b<example_site>']
name = "某某站点"
chat_name = "moumou_chat"
style_messages = [
  "大家好",
  "签到",
]

可使用的设置项包括:

设置项值类型简介默认值
namestr水群器显示名称
chat_namestr/int发送消息的群聊名称或 ID
style_messageslist(str)使用的风格语料, 与 style_message_list 二选一
style_message_liststr使用的风格语料列表, 例如"some-wl@v1.yaml"
min_intervalint发送最小间隔(秒)60
max_intervalint发送最大间隔(秒)
atlist发送时间区间, 例如 ["5:00AM", "9:00PM"]["0:00", "23:59"]
msg_per_dayint每天发送消息数量10
min_msg_gapint最小消息间隔(分钟)5
force_daybool强制每条时间线在每个自然日运行false
promptstr使用的完整提示词(默认提示词)
extra_promptstr追加的提示词
max_lengthint发送消息的最大长度50
filter_recent_similarityfloat若近 100 条中存在消息相似度高于该值则不进行发送
max_count_recent_5int最近 5 条消息中最大存在的水群消息数1
max_count_recent_10int最近 10 条消息中最大存在的水群消息数1

站点配置

如果您需要调整水群的频次, 您需要在配置文件末尾追加:

toml
[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 时, 将自动下载最新版本.

话术列表文件的格式为:

yaml
# 话术列表, 每行一条
messages:
  - 消息 1
  - 消息 2
  - ...

# 发送概率
possibility: 1.0

# 发送时间区间限制
at: ['7:00', '9:00']

# 发送星期几限制, 可选 weekdays / weekends
only: weekdays

其中, possibility, at, only 都是可选的.

对于智能水群器, 您也可以自定义提示词, 例如在默认提示词外增加提示词:

toml
[messager.smart_pornfans]
extra_prompt = "请勿输出数字"

您也可以完全重写提示词:

toml
[messager.smart_pornfans]
prompt = "xxxx"

Released under the GPLv3 License.