我给查重工具做了次查重,结果它查到了自己
想做个新东西之前,我一般会先搜一圈,看有没有人做过。这事干多了嫌烦,上周干脆做成了技能:说一句想法,它去 GitHub 搜同类项目,算重合度,告诉我是直接用现成的、借借鉴,还是自己做。
做完当天下班前,我想着顺手试一下。试什么不好,我拿它查它自己。
第一轮搜「idea validation」,零结果。这个词可能太窄了。换成「prior art search」再搜,出来一个叫 patent 的仓库。描述是:给代码想法做 prior-art 检索,看看这个开发工具是不是已经有人发过。
点进去看了十分钟。
它用 Rust 写的,命令行工具,552 个星,提交 180 次,最近一次更新就在这个月。我第一版才刚跑通,它已经做得比我完整:一次查询同时查 npm、PyPI、crates、Homebrew、GitHub 和 Hacker News 六个地方,用本地模型算语义相似度,不是像我这样手动换关键词;结论分三档,绿黄红,还带一句说明——「只能证明存在,不能证明不存在」。两年没更新的项目,它会自动标出来。
看完我第一反应是:我这个是不是可以删了。
后来想了想,删倒不至于。它是命令行工具,要装 Rust,要跑本地模型;我的是对话里说一句话就能用,不需要配环境。场景不一样。但它有几个地方的思路确实比我好,我挑三个抄了过来:
- 结论必须带搜索范围。我原来只说「没找到,可以动手」,用户会以为全网都没人做。现在每次结论后面都跟一句:这次搜了哪几组词、哪几个源,值得做只是在这个范围内成立。
- 搜索词按说法轮换。同一个功能,可以按功能动词搜、按使用场景搜、按领域术语搜、按产品形态搜,四种说法命中的项目完全不同。我原来只换近义词,漏得多。
- 多源。只查 GitHub 会漏掉一堆只在包管理器上发布的东西。现在按项目类型补查 npm、crates、Hacker News。
改完是 1.1、1.2、1.3 三个版本,中间有件事挺费劲:为了把那些查询接口写进技能,我得一个个试通。npm 那个走镜像站,crates 走官方 API,Hacker News 走 Algolia 的搜索接口,每个都是先跑通、确认返回格式,再写文档。以前写技能经常凭印象编参数,这次不敢了——写错一行,用的人就卡在那。
三个坑记一下:
- GitHub 的仓库搜索接口不返回 star 数。想按热度筛,只能在查询语句里写 stars:>50,返回结果里拿不到这个字段。
- 别学人家查 19 个源。它是命令行,一次能扇出很多;我在对话里每多查一个源就多一轮工具调用,按项目类型挑一两个就够。
- 接口先实测再写。这个技能现在的每一行命令,我都自己跑过。
现在这个技能用起来还行。上周又拿它查了两个想法,一个真有人做过,一个没有。
- 点赞
- 收藏
- 关注作者
评论(0)