Skip to content

Repository files navigation

ClearFlow 清流

ClearFlow 是一个 Chrome Manifest V3 扩展。它使用用户自己的阿里云百炼 / DashScope API Key,分析 X 帖子详情页中已加载的文字回复,并将高置信度的疑似垃圾回复收进一个可统一展开的折叠分组。

当前 MVP

  • 支持 x.comtwitter.com 的帖子详情页;
  • API Key 和配置只保存在当前 Chrome 的本地扩展存储中;
  • 插件直接请求 DashScope,不经过 ClearFlow 服务器;
  • 每批最多分析 5 条回复,同时并发处理两批,并优先分析当前视口附近的回复;
  • Spam Score 不低于 85、Confidence 不低于 0.65 且同时命中明确 Spam 意图标签时才折叠;75–84 分还必须命中“与原帖无关”;
  • AI 输入包含回复正文、公开昵称和 @handle;昵称、handle 和商业账号属性只作为辅助信号,不会单独触发折叠;
  • 仅命中营销或账号推广标签时,正文还必须包含外链、第三方账号、联系方式、主页引导或交易引导等直接证据;相关且没有外部引流的产品建议会保守保留;
  • 当前登录账号以及原帖作者自己发布的回复不会进入垃圾分类;如果 X 的账号区域稍晚加载,插件识别后会立即恢复当前账号的回复;
  • 高风险昵称配纯表情、乱码、单字符或明显擦边诱饵时使用本地强规则直接折叠;昵称明确写有“点击主页”等引导且回复仅含表情或无意义字符时也会直接折叠,普通昵称只回复表情仍交给 AI 保守判断;
  • 命中的回复统一进入独立抽屉,可“一起展开 / 一起收起”,不会回到原位置与正常回复混排;
  • 抽屉使用只读卡片显示作者、时间、正文和图片,原始 X 回复节点始终留在原位置并保持隐藏;
  • 抽屉卡片使用黑色实心垃圾桶表示“已折叠”;点击后恢复原回复,并在 X 底部操作栏的书签左侧显示黑色空垃圾桶表示“未折叠”;
  • AI 保留显示的回复也会在书签左侧显示空垃圾桶,用户可主动将漏判内容加入折叠分组;页面垃圾桶使用不参与布局的覆盖式操作位,不改变回复卡片高度;
  • 空/满垃圾桶可双向切换,并带轻量回弹动效;
  • 恢复后提供“定位”提示,可滚动到原回复位置;
  • 展开/收起只切换现有页面状态,不重新请求 AI 或移动原始回复 DOM;
  • 折叠状态按 Tweet ID 保存,不依赖回复节点当前是否在 DOM 中;X 滚动时临时卸载、复用或重建节点,不会让折叠数字和抽屉内容来回跳动;
  • 打开回复图片或视频大图时会暂停页面扫描并保留当前折叠状态;关闭媒体弹层后按 Tweet ID 恢复绑定,不重新请求 AI,原线程 DOM 延迟恢复时会自动重试;
  • 抽屉卡片使用首次识别时的只读快照和固定顺序,节点重新挂载后只做状态重绑定,不重新分类或重排;
  • 用户选择保存在本地并优先于模型缓存;
  • 手动加入垃圾桶的内容会在本地生成相似模式;同类模式至少积累 3 条正样本、来自至少 2 个不同作者且没有负反馈后,可跳过模型自动折叠;
  • 点击弹窗中的“本地模式”数字可打开独立详情页,查看最近手动处理、每类模式的样本进度、不同作者数量、生效状态和贡献阻塞原因;
  • 从 v0.2.5 开始,新的手动处理会在本地保存最近 200 条可读记录;升级前的模式只保留脱敏统计,无法还原原回复;
  • 装饰昵称、随机化 @handle 与纯表情/低信息回复的组合可通过 3 条、2 个作者的门槛在本地学习;该类规则暂不允许贡献到社区,且不读取头像性别;
  • 本地模式达到门槛后可生成脱敏 GitHub Issue,贡献内容不包含原文、Tweet ID、链接、昵称、头像或 @handle
  • 弹窗支持从 GitHub Release 一键下载、校验和回退社区 JSON 样本包;远程包只包含固定声明式信号,不包含可执行代码;
  • 请求失败时保持原回复显示。

这不是纯本地 AI。原帖、回复文字、公开昵称和 @handle 会发送到用户配置的 DashScope 服务;命中本地强规则的回复不会再次上传给模型。

本地学习与社区样本

ClearFlow 将用户的手动垃圾标记保存在当前 Chrome 本地。模式按结构信号和归一化模板聚合:单条几乎完全相同的模板可以直接复用;更宽泛的模式需要至少 3 条正样本、2 个不同作者且没有负反馈。一条明确的 not_spam 反馈会暂停该本地模式的自动折叠。

弹窗的“本地模式”数字是详情页入口。详情页中的可读历史仅用于帮助用户检查自己的操作,最多保留最近 200 条并按 Tweet ID 去重;它不会自动参与 GitHub 贡献。旧版已经生成的模式没有保存原文、昵称或头像,因此详情页只能显示其脱敏计数。

“贡献已学习模式”不会静默上传数据。插件只生成分类、组合信号和样本计数,并打开预填 GitHub Issue 让用户再次确认。社区规则经过审核后,以 clearflow-community-patterns.json Release 附件发布。更新时插件限制文件大小、校验固定 schema 和 SHA-256,并保留上一版用于回退。

社区 JSON 是数据而不是代码:不接受 JavaScript、WASM、正则表达式或任意远程命令。规则匹配逻辑始终随扩展本体发布。

本地安装

  1. 打开 Chrome 的 chrome://extensions
  2. 开启“开发者模式”;
  3. 点击“加载已解压的扩展程序”;
  4. 选择本目录;
  5. 打开扩展弹窗,填写自己的 DashScope API Key 和模型 ID;
  6. 点击“保存并测试连接”;
  7. 打开一个 X 帖子详情页进行测试。

安全说明

  • 不要将真实 API Key 写入源码、提交到版本控制或发布到扩展安装包;
  • 已在聊天、日志或截图中暴露的 Key 应立即在服务商控制台作废;
  • 当前版本不使用 Chrome Sync,不支持自定义 API 地址;
  • 清除 API Key 后,扩展会立即关闭并删除本地分类缓存;“清除缓存与反馈”会同时删除本地学习模式,但保留已下载的社区包。

文件结构

manifest.json     Chrome 扩展清单
background.js     配置、DashScope 请求、缓存和反馈
content.js        X 页面提取、扫描与折叠交互
content.css       页面内折叠分组与误判恢复样式
popup.html        扩展弹窗结构
popup.css         扩展弹窗样式
popup.js          配置、连接测试与页面状态交互
learning.html     本地学习独立详情页
learning.css      本地学习详情页样式
learning.js       本地学习记录与模式状态展示
icons/            ClearFlow 主图标及 Chrome 标准尺寸图标

About

ClearFlow 清流:使用 AI、本地相似学习和社区规则自动折叠 X 疑似垃圾回复

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages