给几百 G 的本地截图做一个能搜内容的引擎,我踩过的坑

9 月 11 日
 MaskerPRC

最近做了个小工具:把我攒了几年、按字节算快 1T 的电脑截图(微信聊天截图、网页截图、报错截图、PPT 截图……)做成一个能直接搜内容的引擎。比如搜「上次那个 nginx 502 的报错」,直接把当时那张截图翻出来。

功能听起来不新鲜,但自己动手做一遍,坑比想象的多。这里把踩过的坑记录一下,给同样有这个需求的朋友参考。

坑一:OCR 不是「接个库」那么简单

一开始想当然:截图 → OCR → 存文本 → 搜,完事。实际:

坑二:索引体积失控

几个月的截图,全量向量化之后索引文件比截图本体还大。两件事必须做:

坑三:查询理解是最容易被忽略的一环

用户搜「那个 502 」,你拿什么去向量库里匹配?查询改写这层一定要做:

效果

现在 300+ 天的截图,一次搜索 1 秒内出结果,准确率主观评价八成以上。最大的收益是「再也不用翻聊天记录找那张图了」。

最后

这个项目的启发是:RAG 这套东西落到个人小工具上,工程量最大的不是向量检索本身,而是数据清洗和查询理解——七成时间花在了这两块。

代码还在整理,如果大家有兴趣,后续开源出来。也欢迎交流你们做本地内容检索的思路。

2485 次点击
所在节点    程序员
22 条回复
stonesirsir
9 月 11 日
先期待一下
zq11211277
9 月 11 日
支持 感觉这个很有用

以后我们可以 1 分钟电脑截屏保存一次,然后利用楼主这个引擎进行回忆
wises
9 月 11 日
期待开源...
gswgudujian
9 月 11 日
期待开源...
Orangeee
9 月 11 日
👍多谢分享
crackhopper
9 月 11 日
6 ,应该直接卖钱,订阅。
HeyWeGo
9 月 11 日
手机里的搜索图片里内容原理是不是类似
homcrazy1
9 月 11 日
不错哦,别了一些灵感
paradoxs
9 月 11 日
应该是有一些办法可以减少索引量的,百度网盘,onedrive 之类的,很早之前就可以实现对截图中的文字实现 OCR
needpp
9 月 11 日
牛,期待开源
babyedi31996
9 月 12 日
这……immich 不就是有这功能吗
MaskerPRC
9 月 12 日
云端做 OCR 的那些(网盘、相册类)思路确实类似,都是「图片 → 文字 → 建索引」。不过我最后选本地自建,主要是两个现实原因:

一是隐私和范围。云端方案只能扫「传上去的」,我这堆截图里不少是工作相关的(配置、代码片段、聊天记录截屏),不太想整包交给云。本地跑 OCR 虽然慢点,但几百 G 的历史截图一次索引完,之后查询都在自己机器上。

二是查询这一环。识别出文字只是一半,真正的难点是我记不清原话——只能描述「那个带 redis 配置的报错截图」。所以后端对查询做了不少容错(同义改写、拼音、部分匹配),这部分反而是比 OCR 更花时间的坑。

7 楼问的手机相册搜索,原理确实是一个路子,只不过人家是在端侧跑的小模型,精度和吞吐都是另一个量级的取舍了。
MaskerPRC
9 月 12 日
更新:没想到这么多朋友感兴趣,坦白说下——这就是我们在做的产品,叫快咔截图,官网 kuaika.app ,上面说的这套引擎就是它的核心。目前可以下载用了,Windows / macOS 都有。帖子里踩的坑基本都还在持续优化(尤其是查询理解和多语言混排这两块),大家用了有任何问题直接在这里回或者私信我,都欢迎。开源的事我们在认真考虑,有进展会第一时间在这个帖子里更新。
morota
9 月 13 日
@MaskerPRC
点击下载就报错

<Error>
<Code>NoSuchKey</Code>
<Message>The specified key does not exist.</Message>
<RequestId>6AA6085A98945C3636A33ADF</RequestId>
<HostId>jieshi-self-system.oss-cn-beijing.aliyuncs.com</HostId>
<Key>deploy-artifacts/kuaika/20260910-094058-5de5/pc/快咔-Setup-0.0.41.exe</Key>
<EC>0026-00000001</EC>
<RecommendDoc>https://api.aliyun.com/troubleshoot?q=0026-00000001</RecommendDoc>
</Error>
Gitss
9 月 13 日
能上到 nas 上吗,容器镜像
Gitss
9 月 13 日
一般 nas 用户存储的图片很多,现在图片用的 mt 相册方案,虽然 immich 也有 ocr 识别
MaskerPRC
9 月 13 日
@morota 现在应该好了
MaskerPRC
9 月 13 日
@zq11211277 https://www.kuaika.app/ 最新版本可以下载了
FourAndHalf
9 月 14 日
又下载不了了:

```
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<Error>
<script id="argent-x-extension" data-extension-id="dlcobpjiigpikoobohmabehhmhfoodbb"/>
<script src="chrome-extension://hoklmmgfnpapgjgcpechhaamimifchmp/frame_ant/frame_ant.js"/>
<Code>NoSuchKey</Code>
<Message>The specified key does not exist.</Message>
<RequestId>6AA72BEE76DDE63930AE77EB</RequestId>
<HostId>jieshi-self-system.oss-cn-beijing.aliyuncs.com</HostId>
<Key>deploy-artifacts/kuaika/20260910-094058-5de5/pc/快咔-Setup-0.0.41.exe</Key>
<EC>0026-00000001</EC>
<RecommendDoc>https://api.aliyun.com/troubleshoot?q=0026-00000001</RecommendDoc>
</Error>
```
MaskerPRC
9 月 14 日
@FourAndHalf 再试试

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/1241437

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX