网易首页 > 网易号 > 正文 申请入驻

38条群聊消息,被压成2行摘要

0
分享至

早上醒来,群里多了38条消息。你一条条往上翻,跳过"哈哈""""好的",翻了半天,只为找到有人问你的那一句。Sloth Recap 想解决的,就是这个很懒的时刻。


用法很直接:把聊天记录导出丢进去(WhatsApp 的"导出聊天"生成的 .txt 或 .zip,也可以直接粘贴文本),输入一次自己的名字,按下" Catch me up",你会拿到三样东西:

  • ☕ 一段2行的摘要,讲你上次发言之后发生了什么;
  • Needs you:只列出提到你、或者向你提问的消息;
  • Topics:其余消息按所属话题归到对应的那一行下面,想看细节再展开。

作者给自己定了一条设计规则:Sloth Recap 只引用真实消息,只做挑选,从不生成新文本,所以它编不出一个没人提过的计划。摘要里写"Technician comes Wednesday between 9 and 12",就意味着真的有人这么说过。

在内置的"Flat 3B"合租群样本里,38条新消息变成了2行摘要,外加3条真正需要本人回复的消息:给技术员开门、带提拉米苏、确认周三。按每分钟200词的阅读速度算,读完38条大约要1分27秒,还没算上滑动屏幕的时间;读摘要加"Needs you"列表大约18秒。

整个应用是纯 HTML、CSS 和 JavaScript,没有构建步骤,没有后端,免费托管在 GitHub Pages 上。处理流程是一条流水线:解析聊天导出 → 取出"我最后一条消息之后"的内容 → 丢掉"ok/lol/"这类填充词 → 用 EmbeddingGemma 生成向量(跑在 Web Worker 里)→ 挑出关键消息 → 把其余消息分组 → 输出2行摘要、"Needs you"和话题。

模型用的是开放权重的 EmbeddingGemma,通过 transformers.js 加载 onnx-community/embeddinggemma-300m-ONNX。浏览器支持 WebGPU 就跑在 WebGPU 上,否则退回 CPU(WASM)。每条新消息都会变成一个向量,用的是 EmbeddingGemma 的句子相似度任务提示。

作者在调优里提到几个具体做法。第一是中心化向量:小嵌入模型眼里所有聊天消息都"差不多像",在测试聊天里,不相关消息对的余弦相似度平均约0.58,同话题消息对约0.63,差距几乎为零;减去整个聊天的平均向量后,两组分别变成约-0.07和+0.06,差距扩大了一倍多,话题更容易区分。第二是借用邻居上下文:"Work for me"或"Ma dai "单独看没有意义,所以每条消息会带上前后消息向量的一部分。第三是挑关键消息:一条消息如果被很多其他消息谈论、包含具体事实(时间、日期、价格)、且比较新,得分就高;挑选时逐条进行,并对与已选消息过于相似的消息做惩罚(经典的 MMR 技巧),保证2行摘要讲的是两件不同的事。剩下的消息归到离它最近的关键消息下面,有人向本人提问的话题排在最前。

"Needs you"列表刻意不用 AI,而是简单规则:把名字作为完整单词或 @名字 匹配,加上英语和意大利语的疑问句式。作者的理由是,"有没有人问我什么"这件事需要100%可预测。

如果模型加载失败,或者用户手动关掉,同一条流水线会跑在 TF-IDF 关键词向量上。作者在无头 Chrome 里屏蔽 Hugging Face 做了测试:应用显示"Local AI: failed to load",仍然用简单模式产出了摘要。

在普通笔记本 CPU 上跑快,是作者自认收获最大的部分。在只有 CPU 的测试机(无头 Chrome,38条消息)上:4位"no_gather"模型单线程约26秒;8位模型单线程约8秒;8位模型4线程约3秒。4位导出版本下载体积更小,但在 WASM 上比8位文件慢约3倍。作者说不清具体是哪个算子慢,但测量结果很明确,所以应用在 CPU 上用8位,只在 WebGPU 上用4位。多线程需要"跨源隔离"的页面,GitHub Pages 设不了这些响应头,于是作者加了一个约20行的 service worker(sw.js),给站点自己的文件补上这些头。首次加载之后,模型就能用上多个 CPU 线程(测试机上是4个)。

测试方面:npm test 用 node:test 跑了11个单元测试,覆盖 WhatsApp 安卓/iPhone 格式、美式/欧式日期、多行消息、填充词、"needs you"、降级摘要、读取 .zip。一个 Puppeteer 脚本在无头 Chrome 里打开线上 GitHub Pages 站点,下载模型、用 AI 跑两个样本、检查"needs you"数量和复制按钮、加载一个 .zip 导出、再跑无 AI 模式。文章里的截图和 GIF 都来自线上站点。eval/eval-model.mjs 在 Node 里对5个小聊天跑真实模型,其中2个是演示聊天,3个是留出的,有一个是中英混合。

作者也坦白了局限:这是自己写的小数据集,只能算 sanity check,不是基准测试。两种模式在这些聊天上都能挑出不错的句子;模型的优势体现在分组上,尤其是短回复和切换语言的消息("The heating in my room is not working" / "Anche da me il termosifone è freddo")。

为什么开放权重对这个项目是核心?作者给了几条理由。群聊是私密的,里面全是别人的消息、地址、计划和玩笑,未经同意把朋友的消息贴进云端 API 对他们不公平;EmbeddingGemma 跑在浏览器标签页里,聊天记录不离开设备,没有服务器能收到它。运行成本为零:没有 API key、没有按条计费、没有账号,模型跑在自己的 CPU/GPU 上,站点是 GitHub Pages 上的静态页。没有可依赖的 AI 服务:首次访问后模型来自浏览器缓存,作者验证过,把 Hugging Face 完全屏蔽,第二次访问仍然能跑 AI,没人能限流、改价或关停它。权重、ONNX 导出和运行时都是开放的,作者才能在自己的机器上对比4位和8位文件、测出其中一个慢3倍然后换掉。模型名只是 src/model-worker.js 里的一行,下个月出了更好的小型开放嵌入模型,一个下午就能试,而 TF-IDF 降级意味着应用从不依赖任何单一模型。

作者在文末做了 AI 披露:他是来自意大利的初学者,这个项目在 AI 编程助手的大量帮助下完成,包括代码、测试、调试和测量;想法、"绝不生成新文本"的规则、哪些用 AI 哪些用规则的取舍、以及测试,都是他自己的,并且确认自己理解每一个文件。

演示站上有两个样本聊天( 英国合租、⚽ 意大利足球群),点进去再按 Catch me up 即可。首次 AI 运行会下载一次模型(WebGPU 约175 MB,CPU 约310 MB),之后浏览器会缓存。不想下载就取消勾选"Use local AI",立刻得到简单的关键词模式。模型是多语言的,意大利语和混合语言聊天也能用。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
欧冠刺激夜:西甲3队不胜,英超意甲法甲全胜,德甲2队不败

欧冠刺激夜:西甲3队不胜,英超意甲法甲全胜,德甲2队不败

侧身凌空斩
2026-10-21 05:21:15
今夜,大利好来了!直线爆拉!

今夜,大利好来了!直线爆拉!

中国基金报
2026-10-21 00:37:07
黄然非被带走,其供职的世界500强魏桥集团会受到牵连吗?

黄然非被带走,其供职的世界500强魏桥集团会受到牵连吗?

微评社
2026-10-20 14:56:28
巴拉克:天生亚军与漫长极夜

巴拉克:天生亚军与漫长极夜

张佳玮写字的地方
2026-10-20 12:22:38
菲佐:若欧盟向基辅拨款5271亿元,斯洛伐克和匈牙利将不会加入欧盟这一揽子计划

菲佐:若欧盟向基辅拨款5271亿元,斯洛伐克和匈牙利将不会加入欧盟这一揽子计划

阿尔卑斯瞭望
2026-10-18 17:25:03
回购注销百强榜,000333,第一名!长线大牛股隐藏其中(附名单)

回购注销百强榜,000333,第一名!长线大牛股隐藏其中(附名单)

数据宝
2026-10-20 20:41:30
上海演员吴越凌晨发文怒斥:这位“花姐”骗了多少人的钱?请如数奉还!

上海演员吴越凌晨发文怒斥:这位“花姐”骗了多少人的钱?请如数奉还!

上观新闻
2026-10-18 09:53:50
“滚回你自己国家去!”白人女大学生一句话闯下大祸,校友怒撤捐款

“滚回你自己国家去!”白人女大学生一句话闯下大祸,校友怒撤捐款

华人生活网
2026-10-20 04:14:45
文学史上最神的比喻,网友:我穷极一生也写不出来这种句子!

文学史上最神的比喻,网友:我穷极一生也写不出来这种句子!

夜深爱杂谈
2026-10-19 10:54:11
蔡康永半夜发长文!亲自喊话网友别再去围攻蒋万安,却意外扯出电话邀约罗生门

蔡康永半夜发长文!亲自喊话网友别再去围攻蒋万安,却意外扯出电话邀约罗生门

手工制作阿歼
2026-10-20 08:04:48
黄潜主帅:能在安菲尔德打进3球并且一度掌控比赛是最积极的

黄潜主帅:能在安菲尔德打进3球并且一度掌控比赛是最积极的

懂球帝
2026-10-21 06:23:19
宁德时代发布“电电增程”换电新方案 首批签约13000台

宁德时代发布“电电增程”换电新方案 首批签约13000台

证券时报
2026-10-20 17:54:05
爆料中国男篮要大调整,张镇麟被称亚洲第一小前锋,帮郭士强晋级

爆料中国男篮要大调整,张镇麟被称亚洲第一小前锋,帮郭士强晋级

宗介说体育
2026-10-20 14:50:33
豆包回应“国内超一半算力在造爽剧”:字节只有约10%算力用于视频生成模型的训练和推理

豆包回应“国内超一半算力在造爽剧”:字节只有约10%算力用于视频生成模型的训练和推理

澎湃新闻
2026-10-19 13:08:27
马斯克向特朗普账户捐80亿美元,特朗普:感谢!令人惊叹的慷慨

马斯克向特朗普账户捐80亿美元,特朗普:感谢!令人惊叹的慷慨

极目新闻
2026-10-20 11:08:07
你和谁发生了关系,是前世的姻缘,早已注定,躲都躲不掉

你和谁发生了关系,是前世的姻缘,早已注定,躲都躲不掉

匹夫来搞笑
2026-10-20 17:36:02
8799元跌到4989元,iPhone Air京东自营破五千

8799元跌到4989元,iPhone Air京东自营破五千

像素与芯片
2026-10-20 21:57:15
大破防!华裔二代怒撕父母:你们当初移民美国,我们错过中国发展

大破防!华裔二代怒撕父母:你们当初移民美国,我们错过中国发展

北纬的咖啡豆
2026-10-19 14:39:50
车间实拍流出!特斯拉Roadster高压氮气罐引争议,网友:这要炸了,不死也得死啊

车间实拍流出!特斯拉Roadster高压氮气罐引争议,网友:这要炸了,不死也得死啊

火山詩话
2026-10-20 17:01:23
内鬼出现!蒋万安大势已去,国民党反复打一张牌,沈伯洋有望胜出

内鬼出现!蒋万安大势已去,国民党反复打一张牌,沈伯洋有望胜出

观锐器
2026-10-20 15:23:20
2026-10-21 06:40:49
我是一个养虾人
我是一个养虾人
有态度网友ytd
214文章数 92关注度
往期回顾 全部

科技要闻

新版MiniMax,能和DeepSeek掰手腕吗?

头条要闻

距中国台湾110公里 日美出动6万人大举军演为历史之最

头条要闻

距中国台湾110公里 日美出动6万人大举军演为历史之最

体育要闻

巴拉克:天生亚军与漫长极夜

娱乐要闻

刘恺威承认新恋情,打球认识

财经要闻

抄底万达之后 私募大佬又对恒大下手了

汽车要闻

黑科技一次看全 2026奇瑞全球创新大会干货汇总

态度原创

艺术
健康
数码
亲子
本地

艺术要闻

谁敢信?63岁大爷的油画竟被选进美院教材,质感强到像要溢出屏幕!

痘痘能根治吗?皮肤科医生说实话

数码要闻

Mac版Perplexity Computer新增端侧模式,要求36GB统一内存

亲子要闻

奇!41岁女子不知怀孕,腹部剧痛送医顺产7斤儿子!

本地新闻

一场垂直登高赛跑出了"山城"的真正内核

无障碍浏览 进入关怀版