跳到主要内容

机器人“店员”使用文档

该页面主要由cx维护,嘻嘻

一、介绍

  • Q群沃玛频道主群
  • 店员B站账号: @店店店店员(支持评论区总结/回复/私信聊天)
  • 开发者橙息
  • 设定:来自b站up主@warma的作品中出现的角色“店员”
  • 功能:基于deepseek等AI模型的聊天机器人,可以同时与多人进行连续的文字聊天,语音聊天,识别图像等

使用到的AI模型

以下内容中以 频道 指代聊群或私信频道

基本功能特性

  1. 白名单:需要橙息手动为频道添加白名单才能使用店员的所有功能
  2. 闭嘴:当店员处于闭嘴状态的时候,无法在频道中通过 @店员 除外的方式触发AI回复
  3. 防刷屏:主要是为了防止店员与其他机器人(贝拉)触发循环对话
    • 判定方式:在触发店员AI对话的时候,判断最近5条消息是否包含2条店员消息,并且5条消息的时间间隔小于8秒,如果是则不触发AI回复
  4. 自动宵禁:当自动宵禁功能开启,工作日00:00-06:30自动开启全员禁言
  5. 生日提醒:根据聊群用户在qq设置的生日,在每日的8点整自动为用户献上生日祝福
  6. 语音输出:在触发店员AI聊天时,在发送的文本最后加上 "-a" 可以让店员使用语言+文本回答用户的问题

二、店员AI聊天功能

触发AI对话的方式

  • 在聊群中发送带有“店员”二字的消息
  • 在聊群中 @店员
  • 引用店员的消息
  • 在私信中发送任意消息
  • 在聊群中有 1% 的概率触发店员的AI回复
  • 若消息中包含**(双星号)则任何情况下都不会触发AI回复
  • 有新用户加入聊群,自动触发AI回复欢迎新用户
  • 戳一戳有 20% 的概率触发

短期记忆

  • 在每个频道都会有15条对话上下文(又称短期记忆)
  • 记忆包括用户的对话(没有触发AI回复的消息)
  • 还包括店员自己发送的消息调用外部函数的结果
  • 超过15条后会自动删除最早的一条对话。
  • 店员可以结合这15条消息来回答用户的问题。

长期记忆

可用信息

  • 用户发送的消息文本
  • 用户在聊群中的昵称
  • 当前的时间 (格式为:YYYY-mm-dd HH:MM:SS
  • 频道名称
  • 个别频道的额外信息
    • 闲聊频道:各个子频道群号列表 (已加入到长期记忆中)
    • 沃玛岛:基础的帮助文档

店员接受的格式

  • 文本内容
  • 图片:可以是引用图片,又或是图片+文字混合(自定义表情包将作为图片处理)

    图片会先传递给qwen-vl-plus模型进行识别,识别结果会作为文字代替文本消息中的图片传递给deepseek-v2模型,deepseek-v2模型会根据识别结果回复

  • qq emoji:转为对应的文字名称
  • qq表情包:转为对应的文字名称
  • 语音:语音识别,使用了Paraformer语音识别-中文-通用-16k-离线-large-pytorch来语音识别(只支持中文)
  • 引用消息:可获取引用的消息文本内容和发送者的昵称,如果引用的消息包含图片也会按照上述方式处理
  • 其他格式:无法处理文件、视频等格式

店员可输出的格式

  • 文本内容
  • 图片(使用图片的url来发送图片,前提是店员得知道一张图片的url)
  • 语音: 使用GPT-SoVITS-v2来合成语音
  • Latex公式:会自动渲染为图片,有时候会抽风
  • 代码块: 大部分时候都会将代码块渲染为图片

调用外部函数

  • 事件触发器:可以定时提醒用户做某件事情。
  • 闭嘴:店员AI静默 - 网页搜索:调用google搜索api - b站搜索:在b站搜索视频/up主/专栏等 - 获取用户主页投稿信息:投稿的视频列表 - 获取视频内容:由b站AI生成的视频总结 - 获取视频数据:标题/简介/up主/播放量/弹幕/评论/点赞/投币/收藏/转发等数据

三、店员指令功能

  • 使用 “@店员 ” <指令> <参数> 来执行指令(通常使用空格分隔)
  • 只要消息以“@店员 ”开头,就算没有@到,也会当做指令来处理而不是直接触发AI回复
  • 当“@店员 ”后没有匹配到如下列表的指令时,触发AI回复

频道/群内指令列表

权限介绍

  • 所有人:所有用户都能使用的指令
  • 管理员:指定的管理员列表中的用户才能使用的指令
  • 开发者:指定的开发者列表中的用户才能使用的指令
  • op:指定的op列表中的用户才能使用的指令
  • 群主:当前所在频道的群主
  • 群管理员:当前所在频道的管理员

用户指令

指令名别名参数权限介绍示例备注
闭嘴-?时间(单位h/m/s)所有人店员AI静默@店员 闭嘴 1h不带参数默认5分钟,一次只能使用一种单位
开嘴张嘴/说话/解除静默/解除闭嘴-所有人店员AI解除静默@店员 开嘴-
发言统计今日发言/今日发言统计/今日发言量/今日发言数/今日发言数量-所有人查询当前qq群当日发言计数@店员 发言统计
费用统计费用查询/费用/欠款/债务-所有人查询用户使用店员AI产生的费用@店员 费用统计
费用排行费用榜单/费用榜/债务榜/欠债榜/欠款榜-所有人查询用户使用店员AI产生的总费用的排行榜@店员 费用排行
拖更时长拖更时间/拖更查询/上次更新/最新视频/拖更日期?关键词所有人查询沃玛视频拖更时长,不带参数默认为上个视频之后多久没更新@店员 拖更时长 爆炸电台
更新生日生日更新-所有人更新自己的生日为当前qq设置的生日@店员 更新生日
查询生日生日查询?日期所有人查询指定日期的生日的群友@店员 查询生日 11-11
扫雷-开始/显示/结束/帮助所有人扫雷小游戏,点击查看具体用法@店员 扫雷 开始 简单具体命令请使用 "@店员 扫雷 帮助" 来查看
开始游戏游戏开始游戏名所有人在当前子频道启动一个玩家队列@店员 开始游戏 真心话大冒险点击查看具体用法
结束游戏游戏结束-所有人在当前子频道结束一个玩家队列@店员 结束游戏点击查看具体用法
加入游戏--所有人加入当前子频道的游戏玩家队列@店员 加入游戏点击查看具体用法
退出游戏--所有人退出当前子频道的游戏玩家队列@店员 退出游戏点击查看具体用法
下一个--所有人查询当前子频道游戏玩家队列中的下一个玩家@店员 下一个点击查看具体用法
词云-?[时间范围] ?[参数]所有人根据聊天记录生成词云@店员 词云 -u 1周点击查看具体用法
help帮助/帮助文档/菜单/meun/指令列表-所有人查看帮助文档@店员 help

管理员指令

指令名别名参数权限介绍示例备注
通过-问卷序号管理员通过指定序号的问卷@店员 通过 114514可以回复问卷消息来快捷操作
驳回-问卷序号/驳回内容管理员驳回指定序号的问卷@店员 驳回 114514 请按要求填写可以回复问卷消息来快捷操作
手动审核获取问卷/查看问卷/查询问卷/问卷查询/问卷查看/问卷获取问卷验证码管理员手动获取指定问卷验证码的问卷@店员 手动审核 114514用于手动审核在“已过滤通知”中的入群申请
搜索用户查找用户QQ号管理员在店员加入的所有Q群中搜索指定的QQ号,返回指定用户所在的群的列表@店员 搜索用户 1234567890
检索黑名单检查黑名单-管理员在店员加入的所有Q群中检索黑名单中的用户,返回黑名单用户所在的群的列表@店员 检索黑名单
记忆清除--群主/群管理员/管理员清除店员AI聊天在当前频道的短期记忆@店员 记忆清除
记忆搜索记忆检索/记忆查询关键词管理员查询店员AI长期记忆@店员 记忆搜索 橙息是萝莉
记忆删除-ids管理员删除店员AI长期记忆,参数为记忆搜索结果中的id,可以为多个,用空格分隔@店员 记忆删除 1 2 3
强制触发-群号管理员强制在指定聊群触发店员AI聊天@店员 强制触发 1234567890在后面加上 "-a" 表示使用语音合成,"-c" 表示使用粤语语音合成
tts语音合成文本内容管理员使用店员语音合成生成语音@店员 tts 您好,欢迎光临,买?在后面加上 "-c" 表示使用粤语语音合成
重启--管理员重启店员主进程@店员 重启
强制关闭--管理员使用mcsm强制终止店员主进程@店员 强制关闭
自动宵禁-开启/关闭管理员开启/关闭自动宵禁功能@店员 自动宵禁 开启
触发生日提醒-?日期管理员手动触发生日提醒@店员 触发生日提醒 11-11
视频评论-B站视频AV/BV号管理员在指定视频召唤店员AI总结@店员 视频评论 BV1Ex4y177xd
echo-文本内容管理员让店员重复指定的文本内容@店员 echo 您好,欢迎光临,买?
git-pull开发者从仓库拉取最新代码并重启@店员 git pull
git-push开发者将本地的json文件(白名单列表)推送到仓库@店员 git push

MC指令集合

mc指令执行器
  • 在任意频道,沃玛岛MC服务器管理员(op)可以发送"//"开头的消息来执行任意mc指令
  • 如使用//list来查看在线玩家列表。

频道/群内-店员MC指令: : 由于现在沃玛岛同时开了插件服和MOD服,在使用MC相关的命令的时候,在命令最后面加上" -m"(注意-m前面有空格)来指定使用MOD服,默认使用插件服

指令名参数权限介绍示例备注
绑定玩家名所有人绑定MC服务器皮肤站@店员 绑定 cxchency增强了鲁棒性,“绑定”与“玩家名”之间不需要空格也能执行
管理员绑定玩家名; @用户op/管理员管理员手动绑定@店员 管理员绑定 cxchency @橙息
解绑玩家名op/管理员解除绑定@店员 解绑 cxchency
绑定查询玩家名op/管理员查询玩家名对应的qq号@店员 绑定查询 cxchency
绑定反查qq号op/管理员查询qq号对应的玩家名@店员 绑定反查 123456789
在线玩家-所有人查询沃玛岛服务器在线玩家列表@店员 在线玩家
tps-所有人查看沃玛岛服务器tps@店员 tps
ping-所有人查询所有服务器地址连通性@店员 ping
排行榜-所有人查询沃玛岛服务器统计信息排行@店员 排行榜-<?页数> <统计分类> <?统计项>点击查看具体用法
分类排行榜-所有人查询沃玛岛服务器统计信息的某个分类下的所有条目的统计排行@店员 分类排行榜-<?页数> <统计分类> <?玩家名> <升序/降序>点击查看具体用法
排名-所有人查询指定玩家名在沃玛岛服务器统计信息中某个条目的排行名次@店员 排名 <玩家名> <统计分类> <?统计项>点击查看具体用法

排行榜系统

1. 排行榜
  • 查询沃玛岛服务器统计信息排行
  • 用法:
    @店员 排行榜-<?页数> <统计分类> <?统计项>
  • 统计分类有如下: 丢弃 破坏 挖掘 合成 被杀 拾取 击杀 使用 其他 进度
  • 除“其他”、“进度”类型以外,对应的 <统计项> 为对应实体/方块/物品id > “其他”类型的 <统计项> 参考 统计信息列表 > “进度”类型的 <统计项> 参考 进度列表
  • 若不使用 <统计项> 则统计整个分类的合计数 使用示例:
    “@店员 排行榜 挖掘 diamond_ore” 将返回挖掘钻石矿的排行榜
    “@店员 排行榜-2 击杀 将返回合计击杀的排行榜的第二页
2. 分类排行榜
  • 查询沃玛岛服务器统计信息的某个分类下的所有条目的统计排行
  • 用法:
    @店员 分类排行榜-<?页数> <统计分类> <?玩家名> <?升序/降序>
  • 统计分类有如下: 丢弃 破坏 挖掘 合成 被杀 拾取 击杀 使用 其他 使用示例:
    “@店员 分类排行榜 挖掘” 将返回全服挖掘各类方块的排行榜
    “@店员 分类排行榜-2 击杀 cxchency” 将返橙息的击杀各类型生物的排行榜的第二页
3. 排名
  • 查询指定玩家名在沃玛岛服务器统计信息中某个条目的排行名次
  • 用法:
    @店员 排名 <玩家名> <统计分类> <?统计项>
  • 统计分类有如下: 丢弃 破坏 挖掘 合成 被杀 拾取 击杀 使用 其他 进度
  • 除“其他”、“进度”类型以外,对应的 <统计项> 为对应实体/方块/物品id

    “其他”类型的 <统计项> 参考 统计信息列表 “进度”类型的 <统计项> 参考 进度列表

  • 若不使用 <统计项> 则统计整个分类的合计数
  • 用法:
    “@店员 cxchency 排名 挖掘 diamond_ore” 将返回橙息在全服挖掘钻石矿次数的名次
    “@店员 cxchency 排名 击杀” 将返回橙息合计击杀的名次

其他指令

骰子

  • 在任意频道,发送".r"开头的消息来使用骰子功能
  • 示例:".r2d6" 掷 26 面骰子
  • 只投一个骰子的时候,d可以省略,如".r6"等同于".r1d6"

扫雷小游戏

  1. 开始游戏:@店员 扫雷 开始 [难度] (难度可选:简单/中级/高级)
  2. 结束游戏:@店员 扫雷 结束
  3. 显示游戏:@店员 扫雷 显示
  4. 点开方块:.挖开/挖/d/D [坐标] (例如:".d a1", 或者 ".d a1-3" 来连续挖开多个方块)
  5. 标记地雷:.标记/插旗/f/F [坐标] (例如:".f a1", 或者 ".f a1-3" 来连续标记多个方块)
  6. 双键挖开:.双键/双击/m/M [坐标] (例如:".m a1")

游戏玩家队列系统

  • 在当前子频道创建一个循环的游戏玩家队列
  • 每个子频道只能创建一个队列
  • 子频道之间的队列不互通
  • 指令:
    • 开始游戏
      • 别称:游戏开始
      • 参数:游戏名
      • 示例:@店员 开始游戏 真心话大冒险
    • 结束游戏
      • 别称:游戏结束
      • 示例:@店员 游戏结束
    • 加入游戏
      • 示例:@店员 加入游戏
    • 退出游戏
      • 示例:@店员 退出游戏
    • 下一个
      • 查询队列中的下一个玩家
      • 示例:@店员 下一个

词云

  • 用法:@店员 词云 [时间范围] [选项]
  • 时间范围(默认为'1天'):

    以下提到的所有沃频子频道不包括店员与用户的私信 词云会自动排除机器人的发言(包括店员和其他已被标记的机器人)

    • 可用单位:秒/s、分钟/m、小时/h、天/d、周/w、月/M、年/y
    • 格式数字+单位,例如'1天'、'1周'、'1小时'
  • 选项
    • 当前子频道模式('-c'):获取当前子频道所有用户聊天记录生成的词云
    • 用户模式('-u'):获取当前使用指令的用户所有沃频子频道中的聊天记录生成的词云
    • 全子频道模式('-g'):获取所有沃频子频道所有用户的聊天记录生成的词云
    • 注:使用用户模式时,词云默认私信发送给用户,您可以附加'-p'参数来指定发送到当前子频道
  • 示例
    • 查看自己1天内在所有沃频子频道中的发言的词云:“@店员 词云 1天 -u”
    • 查看本子频道(本群)一周内所有用户的发言的词云:“@店员 词云 1周 -c”
    • 查看所有沃频子频道一年内所有用户的发言的词云:“@店员 词云 1年 -g”

四、微博动态推送

五、b站动态推送

六、MC服务器消息互通

七、问卷审核系统

  • 实现了之前频道的问卷审核系统
  • 当申请加入沃玛频道主群的时候,用户需要在问卷网页填写问卷并获得验证码
  • 用户需要将验证码作为入群问题的答案提交入群申请
  • 店员会尝试自动审核收到的问卷
  • 若自动审核失败,则自动发送到管理群,由管理员手动审核
  • 若用户在沃玛频道主群,自动通过其加入其他子群的入群申请

八、店员B站私信

  • B站@店店店店员会自动回复用户的私信,具有短期记忆,与q群特性相同
  • 店员知道用户的b站账号的uid、昵称、性别、签名、等级
  • 需要用户关注@店店店店员才能使用私信聊天功能

九、店员B站评论区

  • B站@店店店店员会自动回复评论或@消息
  • 如果是视频评论区,店员会自动获取视频信息,包括AV号、BV号、标题、简介、up主、视频分区、投稿时间、Tags、B站网页版自动生成的AI视频总结(如果有的话)、视频字幕(如果有的话,默认选第一个)
  • 店员可以获取整条评论树(指单条评论下的所有回复,包括主评论,以时间顺序排列)相当于记忆,目前没有设置上限
  • 只有由B站@店店店店员关注的up主的评论区才能召唤店员,见店员B站关注列表