
























/user/self,不是就结束本轮flowchart TD Start([开始轮询]) --> ChkPage{当前页面类型} ChkPage -->|创作者后台| Notify[查找通知按钮] Notify --> HasNotify{通知按钮存在?} HasNotify -->|否| SkipNotify[跳过评论区] HasNotify -->|是| HoverNotify[hover 悬停通知按钮] HoverNotify --> Sleep1[等待 1s] Sleep1 --> Filter1[点击筛选下拉] Filter1 --> SelectAll[点击全部消息] SelectAll --> Sleep2[等待 1s] Sleep2 --> Filter2[再次点击筛选下拉] Filter2 --> SelectComment[点击评论] SelectComment --> Sleep3[等待 1s] Sleep3 --> GetComment[提取最新评论的昵称和内容] GetComment --> HasComment{昵称和内容都存在?} HasComment -->|否| SkipNotify HasComment -->|是| CheckDup{和上一条消息相同?} CheckDup -->|相同| SkipNotify CheckDup -->|不同| ProcessComment[处理评论回复] ProcessComment --> ShowPopup[浮动弹窗提示] ShowPopup --> HookMsg[hook 转发到外部系统] HookMsg --> ClickContent[点击评论内容区域] ClickContent --> WaitReply["等待回复按钮出现<br>最多等待 6s"] WaitReply --> ReplyVisible{回复按钮出现?} ReplyVisible -->|超时未出现| SkipNotify ReplyVisible -->|出现| ClickReply[点击回复按钮] ClickReply --> SleepReply[等待 2s] SleepReply --> DecisComment[决策回复内容] DecisComment --> Keyword{关键词匹配命中?} Keyword -->|是| DirectReply[直接回复] Keyword -->|否| Default{默认回复已配置?} Default -->|是| DirectReply Default -->|否| Random{随机回复池有内容?} Random -->|是| DirectReply Random -->|否| AICall[调用 AI 接口] AICall --> ChooseAI{AI 后端选择} ChooseAI -->|Coze Bot| CozeFlow["Coze V3<br>创建会话 → 发送 → 轮询 → 获取回复"] ChooseAI -->|FastGPT| FastFlow["FastGPT<br>兼容 chat/completions 和 responses"] CozeFlow --> AIResult{AI 返回结果?} FastFlow --> AIResult AIResult -->|为空| SkipNotify AIResult -->|有内容| DirectReply DirectReply --> IsEmoji{收藏表情格式?} IsEmoji -->|是| EmojiFlow["点击表情面板<br>切换收藏表情Tab<br>选择第N个"] IsEmoji -->|否| TextInput[输入文本到 contenteditable] EmojiFlow --> ClickSend[点击发送按钮] TextInput --> ClickSend ClickSend --> SleepSend[等待 1s] SleepSend --> CloseComment["关闭评论面板<br>按 ESC 键"] CloseComment --> SkipNotify SkipNotify --> ChkSelf{URL 是 user/self?} ChkSelf -->|否| EndLoop([本轮结束]) ChkSelf -->|是| FindMsgBtn[查找私信按钮] FindMsgBtn --> PanelOpen{私信面板已打开?} PanelOpen -->|否| HoverMsg["hover 私信按钮<br>等待 1s"] PanelOpen -->|是| ClearSession HoverMsg --> ClearSession ClearSession["清场<br>关闭会话 → 退出会话 → 返回列表"] --> Stranger{存在陌生人消息?} Stranger -->|是| StrangerFlow["处理陌生人<br>点击陌生人消息<br>点击会话<br>点击回关<br>点击关注"] Stranger -->|否| RedDot StrangerFlow --> RedDot RedDot{私信列表有未读红点?} RedDot -->|否| EndClose["关闭会话 → 返回列表"] RedDot -->|是| ClickRedDot[点击红点会话] ClickRedDot --> SleepMsg[等待 1s] SleepMsg --> GetNick["提取昵称<br>选择器A 或 选择器B"] GetNick --> GetContent["提取消息内容<br>选择器A或B → C或D"] GetContent --> HasMsg{昵称和内容都存在?} HasMsg -->|否| EndClose HasMsg -->|是| ProcessMsg[处理私信回复] ProcessMsg --> ShowPopup2[浮动弹窗提示] ShowPopup2 --> HookMsg2[hook 转发到外部系统] HookMsg2 --> DecisMsg[决策回复内容] DecisMsg --> Keyword2{关键词匹配命中?} Keyword2 -->|是| DirectReply2[直接回复] Keyword2 -->|否| Default2{默认回复已配置?} Default2 -->|是| DirectReply2 Default2 -->|否| Random2{随机回复池有内容?} Random2 -->|否| AICall2[调用 AI 接口] Random2 -->|是| DirectReply2 AICall2 --> AIResult2{AI 返回?} AIResult2 -->|为空| EndClose AIResult2 -->|有内容| DirectReply2 DirectReply2 --> TextInput2["输入文本到 contenteditable<br>选择器A 或 选择器B"] TextInput2 --> SleepInput2[等待 1s] SleepInput2 --> FindSendBtn["查找发送按钮<br>选择器A 或 选择器B"] FindSendBtn --> ClickSend2[点击发送] ClickSend2 --> SleepSend2[等待 1s] SleepSend2 --> EndClose EndClose --> EndLoop
| 符号 | 含义 |
|---|---|
[ ] 矩形 |
操作步骤 |
{ } 菱形 |
条件判断 |
([ ]) 圆角矩形 |
开始/结束 |
<br> |
节点内换行 |
→ |
顺序流转 |
sleep 确保 DOM 渲染完成一款基于Golang+Vue开发的在线客服系统,软件著作权编号:2021SR1462600。一套可私有化部署的网站在线客服系统,编译后的二进制文件可直接使用无需搭开发环境,下载zip解压即可,仅依赖MySQL数据库,是一个开箱即用的全渠道在线客服系统,致力于帮助广大开发者/公司快速部署整合私有化客服功能。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。