为什么我要开发另一款网页划词插件 Selectly - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
samanhappy
V2EX    分享创造

为什么我要开发另一款网页划词插件 Selectly

  •  
  •   samanhappy 14 天前 3029 次点击

    缘起

    网页划词的需求由来已久,市面上相关插件也不少。那为什么我还要“重复造轮子”,再开发一款新的呢?

    最初的动机其实很简单:我只想要一个好用的划词翻译插件。市面上的选择虽然丰富,但要么依赖传统翻译接口(如谷歌翻译),效果不够理想;要么接入大语言模型,却存在灵活性不足或成本过高的问题。

    而我的需求很朴素:当我浏览英文网站时,遇到不懂的单词或句子,只想通过划词快速获得一个简洁、准确、不嗦的解释。其实这只需要一次 LLM 调用 + 一个合适的提示词就能解决。既然找不到现成的方案,那就自己“vibe coding”造一个吧。

    Selectly 翻译功能

    过程

    翻译功能很快实现了。但在做的过程中,我发现基于“划词 + LLM”其实能做更多事:解释、润色、纠错……既然已经有了一个功能,为什么不顺手多做几个?甚至进一步,让用户能自定义?这便是 Selectly 诞生的契机。

    Selectly

    Selectly 的定位,是一款基于“网页划词 + 人工智能”的可扩展工具集。我认为,尽管大语言模型已经逐渐走入个人生活,但网页端的划词需求依然远未被满足。

    那么,Selectly 到底能做什么呢?

    Selectly 功能列表

    在 LLM 调用类功能中,除了翻译,还内置了润色、解释、纠错等。这些功能本质上只是在提示词和呈现方式上有所不同。更重要的是,Selectly 允许用户添加自定义功能模块:只需选择模型、输入提示词,就能构建出完全个性化的功能。

    Selectly 自定义功能

    当然,划词除了 AI 相关,还长期存在一些基础需求:搜索、收藏、分享等。过去,这些要么依赖多个插件组合,要么体验欠佳。既然 Selectly 定位为“全家桶式”工具集,就必须把这些功能也打磨到位。

    比如 收藏,我们提供了一个内容中心页,能根据网页自动分组,方便回顾。

    Selectly 收藏功能

    比如 分享,选中文本后点击分享,可以生成一张带有网页标题和地址的分享图片,支持复制或下载。

    Selectly 分享功能

    工具一多,如果每次划词都全部弹出,体验显然不够优雅。为此,Selectly 提供了功能的开关、排序与收起选项,用户可以根据偏好自由定制。

    Selectly 功能定制

    至于价格,Selectly 的 基础功能完全免费:翻译、解释、润色、复制、搜索、跳转、分享、收藏等。 需要会员的部分是 对话功能自定义功能

    需要说明的是,Selectly 本身不提供语言模型。用户需要配置相应供应商的 API Key 。目前支持 OpenAI 、Anthropic 、OpenRouter 、SiliconFlow 、Azure OpenAI 、Ollama ,以及任何兼容 OpenAI 接口标准的服务商。

    Selectly 支持的模型供应商

    为什么不内置模型服务?因为现有的模型供应商已经很成熟,Selectly 不想成为赚差价的“二道贩子”。以 OpenRouter 为例,它提供了数百种模型,用户可以自由选择、按量付费。比如翻译、润色这类轻量需求,用 gpt-4o-mini 这样的基础模型就足够:便宜、快速、效果也好。

    展望

    未来,Selectly 会做什么?原则上,只要与“网页划词”相关、用户又确实有需求的功能,都可能被加入。

    值得一提的是,Selectly 的大部分代码由 Claude Sonnet 4GPT-5 协作完成,期间大概使用了 150 次 Copilot Premium request

    最后,欢迎大家体验和反馈 https://selectly.app

    第 1 条附言    13 天前
    虽然 AI 可以帮助完成大部分代码,但由于个人精力有限,Selectly 肯定还存在不少问题,欢迎大家随时反馈和建议,一经确认或采纳将赠送月度会员一份
    45 条回复    2025-10-08 16:13:05 +08:00
    SayHelloHi
        1
    SayHelloHi  
       14 天前
    评分 1.0 有点尴尬了

    chrome web store 中开发者对评论的回复 评论者不会收到任何邮件提示
    lswlray
        2
    lswlray  
       14 天前
    [要么接入大语言模型,却存在灵活性不足或成本过高的问题]

    你作为一名用户,关系提供方的成本高不高???
    成本高所以不完美?这个逻辑太奇怪了
    samanhappy
        3
    samanhappy  
    OP
       14 天前
    @SayHelloHi 初期版本保存配置有问题,体验很差,被用户喷了
    samanhappy
        4
    samanhappy  
    OP
       14 天前
    @lswlray 只是个人的使用感受,我使用自己的 apikey + gpt4o-mini 模型,用于划词后的常规场景,成本极低,效果也不错
    yb2313
        5
    yb2313  
       14 天前
    我过划词翻译的开源插件,结果开发到一半就发现沉浸翻译新功能的划词比我做得好多了,瞬间项目 g 了,除非未来这个功能开始收费我才会重新开发,在最初我也是因为各种划词不好用开发的
    samanhappy
        6
    samanhappy  
    OP
       14 天前
    @yb2313 沉浸式翻译很强大,很难超越了
    shampoo
        7
    shampoo  
       14 天前
    豆包插件,把你上述功能都实现了,还免费。。。
    samanhappy
        8
    samanhappy  
    OP
       14 天前   1
    @shampoo 豆包做的挺好的,selectly 的差异主要在于可以选择自己喜欢的模型,定制不同的提示词,并且可以添加自定义功能
    Lanzhijiang
        9
    Lanzhijiang  
       14 天前 via Android   1
    UI 很好看,mark 了,好的交互体验是长期使用的根基
    samanhappy
        10
    samanhappy  
    OP
       14 天前   1
    @Lanzhijiang 感谢认可,交互会持续优化,欢迎随时反馈意见和建议
    wasd6267016
      &nbs; 11
    wasd6267016  
       14 天前
    没有试用吗 还得自己配置 API?
    samanhappy
        12
    samanhappy  
    OP
       14 天前
    @wasd6267016 目前还没有集成服务端模型,可以去硅基流动注册一个,上面还有免费的模型可以调用
    root71370
        13
    root71370  
       14 天前 via Android
    没市场
    molezznet
        14
    molezznet  
       14 天前
    试了下 ollama , 提示 connection error 。
    好像不支持云模型?
    https://ollama.com/v1

    qwen3-coder:480b-cloud
    samanhappy
        15
    samanhappy  
    OP
       14 天前
    @molezznet 刚看到 ollama 支持云端模型了,不过和 openapi 的接口不兼容,后面优化一下
    EngAPI
        16
    EngAPI  
       14 天前
    deepseek 测试没问题。
    我一直想要一个功能就是查词了之后把上下文(就是所在句子)也同时保存,并能导出 [生词(间隔符)句子]
    为此我自己做了个简单的插件,希望你能增加这个功能。
    samanhappy
        17
    samanhappy  
    OP
       14 天前
    @EngAPI 好建议,我考虑一下怎么实现
    zyxk
        18
    zyxk  
       13 天前
    LLM 里 提供商 为啥启用不了,要付费?
    samanhappy
        19
    samanhappy  
    OP
       13 天前
    @zyxk 不用付费,用的哪个提供商,可以检查一下浏览器请求,看看接口请求是不是报错了
    JunJian
        20
    JunJian  
       13 天前
    这种插件很多大厂免费的更好,我在 deepseek 一出来就写过一个,支持自定义 prompt ,支持各种总结,划词提问啥功能都有,实际上,对于个人开发者来说,没必要做,除非你发现一个特别的赛道别人无法替代
    molezznet
        21
    molezznet  
       13 天前
    还有个使用问题, 没有导出导入或者 chrom 设置同步? 多个电脑使用下 要重新设置一遍
    samanhappy
        22
    samanhappy  
    OP
       13 天前 via Android
    @molezznet 使用 chrome 插件数据同步接口了的,我明天重新测试一下
    samanhappy
        23
    samanhappy  
    OP
       13 天前 via Android
    @JunJian 这块留给个人开发者发挥的空间确实很小,除非做的更细分和垂直,大厂看不上的那种,反正我一开始只是想开发一个自己用,顺便发出来看看
    starqoq
        24
    starqoq  
       13 天前 via iPhone
    我选择 学英语
    molezznet
        25
    molezznet  
       13 天前
    @samanhappy 嗯谢谢, 还是希望有其他方式。 因为用的是 chrome 内核的浏览器 -_- 。edge 和 brave 这类非 gmail 账号登陆浏览器
    samanhappy
        26
    samanhappy  
    OP
       13 天前
    @molezznet 目前使用 chrome.storage.sync 来保存配置的,非 google 账号确实同步不了,因为涉及密钥类敏感数据,所有没有使用云端存储,如果实现的话,可能也要加个同步开关让用户选择是否开启比较好
    glpyhster
        27
    glpyhster  
       13 天前
    我还是默默的用 bob 吧。
    tangxiangpi325
        28
    tangxiangpi325  
       13 天前
    个人不建议做大而全,划词翻译这块,如何和 沙拉翻译 竞争呢
    samanhappy
        29
    samanhappy  
    OP
       13 天前
    @tangxiangpi325 只考虑翻译的话,是没法和沙拉翻译或者沉浸式翻译竞争的,我其实是想专注于划词 + LLM 的工作流,只是大家目前更关心翻译
    samanhappy
        30
    samanhappy  
    OP
       13 天前
    @glpyhster bob 挺好的,我也用过
    tangxiangpi325
        31
    tangxiangpi325  
       13 天前
    @samanhappy 问题是现在这几个功能是大厂的标配了还免费,卷不过他们
    samanhappy
        32
    samanhappy  
    OP
       13 天前
    @tangxiangpi325 是的,还是要考虑差异性,不然没有出路,你在使用 selectly 过程中遇到什么问题了吗
    molezznet
        33
    molezznet  
       13 天前
    @samanhappy 嗯 估计就是担心的 key 。 期待个 local 导出吧, 好歹不用重新配置一遍了 ……
    molezznet
        34
    molezznet  
       11 天前
    MD 好像没有渲染出来, 是 brave 浏览器问题?

    https://i.urusai.cc/jXHAS.png
    samanhappy
        35
    samanhappy  
    OP
       10 天前
    @molezznet MD 还没支持,后面优化,感谢持续反馈,这边可以赠送一份会员码,如何需要可以留个邮箱
    molezznet
        36
    molezznet  
       10 天前
    @samanhappy 哦哦, 谢谢。 [email protected]
    molezznet
        37
    molezznet  
       10 天前
    @samanhappy 下班回来, 突然发现 brave 浏览器里设置也支持自动同步了。
    samanhappy
        38
    samanhappy  
    OP
       10 天前
    @molezznet 已发送,brave 浏览器也会同步谷歌账号数据吗,没用过不太懂
    molezznet
        39
    molezznet  
       10 天前
    @samanhappy 收到, 谢谢。 机制不了解,brave 用的 Sync Chain Code 同步不同终端间的书签,插件等等
    samanhappy
        40
    samanhappy  
    OP
       9 天前
    @EngAPI 实现了一版词典功能,不知道是不是你想要的,可以更新到 1.0.5 试试看
    EngAPI
        41
    EngAPI  
       9 天前
    @samanhappy 刚重新安装了下,我好像没提词典功能吧?
    我要的功能是生词+上下文(所在句子),然后可以导出。
    samanhappy
        42
    samanhappy  
    OP
       9 天前
    @EngAPI 叫法不同而已,翻译完成后,下面有一个添加到词典按钮,option 页面的词典菜单可以查看到添加的生词和上下文
    weilan
        43
    weilan  
       4 天前 via iPhone
    不错,我已经用了一段时间,ui 好看,选中就能自动弹出。翻译也挺方便,不过我使用“搜索”的次数更多,好像搜索是默认 Google ?是否可以选择设置别的搜索引擎参数呢?希望可以在设置中增加自定义搜索引擎参数的功能
    samanhappy
        44
    samanhappy  
    OP
       4 天前
    @weilan 感谢认可,搜索引擎配置马上开发
    molezznet
        45
    molezznet  
       3 天前
    @samanhappy ps , 搜索里是白名单, 感觉是不是黑名单更多些? 比如 - msdn 来减少不需要的网址。 当然如果支持配置引擎了, 可以直接使用其他已配置的引擎不用黑名单了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4934 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 40ms UTC 09:44 PVG 17:44 LAX 02:44 JFK 05:44
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86