Skip to content

问答 ​

这篇帮你做什么:维护一套“群里常问的问题 → 固定回答”的词库。群成员的消息命中问题时,机器人自动把答案发到该群。入口:侧边栏 → 群设置 → 问答词库。

适用与不适用 ​

你想做的事是否适合本页原因
成员问固定问题时回复固定答案适合模糊、精确或正则匹配后回复
给回答加入触发者昵称、群名、原问题等变量适合回答支持固定 6 个变量
消息命中关键词后警告、禁言或踢人不适合用监控方案/群聊监控
修改“帮助”等指令的回复不适合用提示设置
定时主动发消息不适合用定时任务
给任意问题接 AI 自由回答不适合问答只返回你维护的固定答案

作用范围与工作方式 ​

  • 词库按群独立:顶部选好群后,新增、编辑、导入都属于该群。页面没有控制台登录账号或角色概念,选群即代表要改该群词库。
  • 匹配时先看当前群已发布的问答,再看全局问答层。当前群问答按“排序号从大到小、同排序号后创建的优先”检查;当前群的问答全部检查完后,才检查全局层。
  • 一条消息最多得到一条问答回复:在问答内部,第一条命中的问答即停止;在整条消息路由中,问答规则是低优先级(优先级固定为 0),如果消息先被指令或默认优先级更高的监控规则受理,问答不会再回复。反过来,问答先受理时,同一条消息的转发等后续规则通常也不会再执行(同一转发规则的多个目标属于一次扇出)。
  • 只有状态为 启用(列表显示为 published)的问答参与匹配;禁用或删除即停止。
  • 正则写错时该条问答在匹配阶段被静默跳过,不会报错,也不会让整条词库失效。

全局问答层怎么维护 ​

系统数据中存在 group_id = 0 的全局问答,会对所有群生效;用 测试匹配 时,结果里的“作用域”会标明命中来自“当前群”还是“全局 FAQ”。

当前控制台没有独立的全局问答维护入口:页面列表、新增、编辑和导入都只写当前群。你不能在页面里选择“全局”作为归属,导入文件里的 GroupID 列也会被忽略。本手册未提供已核实的全局层写入步骤,不要据此猜 API 或直接改在线数据库。需要全局维护时应先确认当前部署支持的操作及全部受影响群;不要把一条本群问答当成全局,也不要为了“让所有群都能用”把多个群逐个复制后误以为已经统一。

新增一条问答 ​

  1. 点右上角 新增问答。
  2. 填写:
    • 问题(必填,1–200 字):选“正则匹配”时这里填正则表达式。
    • 匹配模式(三选一,默认模糊匹配):
      • 模糊匹配:群消息 包含 问题原文即命中(不区分大小写)。
      • 精确匹配:整条消息与问题完全相同才命中(不区分大小写)。
      • 正则匹配:按正则表达式匹配消息;写错的正则会被跳过、不报错,该条等于不生效。
    • 排序:数字越大越靠前。它只在当前群词库内部比较;同排序号时后创建的优先。全局问答总在当前群问答之后检查,不能靠排序号排到当前群问答前面。
    • 回答(必填):命中后发出的内容,支持变量替换(见下方“可用变量”),点 测试渲染 可预览替换效果,不会真发。
    • 分类(可选):便于筛选管理,可直接输入新分类名创建。
    • 状态:默认启用;关闭后该条不参与匹配。
  3. 点 确定 保存。
  4. 怎样确认成功:列表出现该条,状态为启用;刷新后内容、匹配模式和排序保持不变。

设置项参考 ​

字段含义与取值默认作用与限制
问题问题文本或正则表达式无1–200 字;正则模式填表达式
匹配模式模糊 / 精确 / 正则模糊正则非法时该条被静默跳过
排序整数,越大越优先0只在当前群内部排序
回答命中后发送的文本无支持 6 个模板变量
分类分类名称未分类便于筛选;可按名称自动创建
状态启用(published)/ 禁用(draft)启用只有启用项参与匹配

回答可用变量 ​

变量含义
{{.user_id}}触发问答的成员 ID
{{.nickname}}触发问答的成员昵称
{{.group_id}}群号
{{.group_name}}群名
{{.time}}回复时刻
{{.question}}触发命中的那条消息原文

模板语法写错(如括号未闭合)时,该次回复不发送,“渲染失败”计数加一;变量名不存在时通常渲染为空字符串。完整差异见变量使用指南。

先测试,再上线 ​

  • 点顶部 测试匹配,输入一条模拟的群消息,页面会显示 会命中哪一条 已启用的问答(含作用域、匹配方式、将回复的答案),不实际发送。
  • 测试匹配按与运行时相同的当前群 → 全局层顺序,以及相同的排序/创建时间顺序进行,是排查“为什么总命中那条”的最快方法。
  • 但它只验证问答层:不能证明整条消息一定会进入问答,也不能验证群级开关、机器人状态和发送结果。

正例:先写“怎么进群”的模糊问答,用测试匹配输入“请问怎么进群呀”,确认命中当前群条目和回答,再在测试群实际问一次。反例:只把排序号调到很大,就认为能压过管理指令或监控规则——问答的固定优先级低于这些阶段。

统计列怎么看 ​

列表中的 命中 / 受理 / 发送确认 / 渲染失败 是这条问答的累计计数:

  • 命中:被匹配到的次数。
  • 受理:命中且回答渲染成功后进入回复处理的次数,不代表已经发送。
  • 发送确认:发送环节获得成功确认的次数,不代表每位成员已经看到或阅读。
  • 渲染失败:因为回答里的变量写法有误导致这次没有回复的次数。渲染失败大于 0 说明回答模板有问题,改正变量语法即可。

命中数高但受理数低,通常说明大量命中没有进入回复;受理数高但发送确认低,要继续查机器人和群发送链路。计数是累计值,不按时间筛选。

导入与导出 ​

  • 顶部 导入 / 导出 接受 CSV 文件;导入对话框提供模板下载。列固定为:

    text
    Question,Answer,MatchMode,CategoryName,Status,Sort,UsageCount,GroupID

    CSV 使用 UTF-8 带 BOM,Excel 打开中文不乱码。UsageCount 和 GroupID 只用于导出展示,导入时忽略:统计由系统维护,归属取当前选中的群。

  • 分类按名称解析,不存在时自动创建;匹配模式默认模糊、状态默认 published、排序默认 0。

  • 导入按 整批校验、整批写入 处理:只要有一行有问题(如缺问题或回答、回答模板写法非法),整批都不会导入,错误按 Row N 报告,修正后重试。

  • 页面可能仍提示“导入成功”但导入条数为 0(例如只有表头的空文件)。请刷新核对列表实际条数,修正文件中的问题行后再导入,不要只凭成功提示判断。

  • 导入不会覆盖当前群原有问答,而是追加新条目;迁移或批量修改前先导出留底,并确认目标群选对。

没成功先检查什么 ​

  • 该回复没回复:问答是否启用 → 匹配模式选对没有(模糊匹配要求消息里 包含 问题原文)→ 用 测试匹配 验证这条消息到底命中了谁——很可能被 排序更靠前的另一条 或全局问答抢先命中了。
  • 命中了但在群里仍未回复:消息是否已被指令或监控规则先受理;看 渲染失败 计数是否在涨;机器人是否在线且在该群。
  • 正则写错了没反应:正则匹配下非法正则会被静默跳过;先用 测试匹配 只验证问答层,再结合结果判断与排障检查整条消息链。
  • 以为改了全局:确认当前选中的群;控制台没有全局问答入口,本页操作不会写全局层。

关闭或改回 ​

  • 单条停用:行内开关或 操作 → 禁用;不再需要就 删除。
  • 停止本群词库:把本群条目逐条禁用;没有单独的“问答总开关”。全局问答属于另一层,仅禁用本群条目不保证所有问答回复停止。
  • 删除或禁用只影响后续匹配,已经发出的回答不能撤回。

和其他页面的关系 ​