豆包的划词功能实现 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
请不要在回答技术问题时复制粘贴 AI 生成的内容
Absofknglutely

豆包的划词功能实现

  •  
  •   Absofknglutely Aug 27, 2025 3430 views
    This topic created in 245 days ago, the information mentioned may be changed or developed.

    mac 豆包的划词功能实现很牛 x, 估计是用 accessibility api? electron 做的程序它也能很精准获取到, 甚至是微信(我看微信用 appium 出来也就一坨), 那豆包是怎么做到的, 找 cluade/chatgpt...写了好多个版本都不能获取得到(用的是 vscode 的 debug 模式启动一个 electron 程序)

    我去参考 https://github.com/openai-translator/openai-translator 发现它这一个模块的实现是依赖了作者自己写的 https://github.com/yetone/get-selected-text, 问题在于, 它可能会调用剪贴板, 而且性能很差, 一次执行要几百毫秒(执行过程中系统会卡住)

    有这方面经验的大佬解惑一下吗?

    16 replies    2025-08-27 14:43:39 +08:00
    zzlove
        1
    zzlove  
       Aug 27, 2025
    我记得豆包的划词后,也是会先复制到剪贴板的
    cryptovae
        2
    cryptovae  
       Aug 27, 2025
    https://github.com/pot-app/Selection
    看下这个
    原理基本都是一样的
    musi
        3
    musi  
       Aug 27, 2025
    其实 accessibility 有些 app 是获取不到的,electron 因为是 chromium 系有现成的方案,那些获取不到的一般都用剪切板做兜底。

    另外,你让 AI 写就别让他写 electron 程序,你告诉他用 C++给你调 mac 的 api ,然后再让他把 c++打包成 node 的插件让 electron 去调用。我去年用 AI 写过 win/mac 的划词功能(并且我没有任何 c++的背景)
    Absofknglutely
        4
    Absofknglutely  
    OP
       Aug 27, 2025
    @zzlove 我看现在是没有(装了监测工具去看)
    Absofknglutely
        5
    Absofknglutely  
    OP
       Aug 27, 2025
    @cryptovae 我看看, 谢谢
    Absofknglutely
        6
    Absofknglutely  
    OP
       Aug 27, 2025
    @musi 我是好奇为什么豆包没有剪贴板兜底(至少在我的机器上没用上剪贴板兜底)的情况下, 它能做的性能和准确度都很好, 还有就是微信也能获取到, 那哥们你的程序能获取到微信的 selection 么?
    stone9527
        7
    stone9527  
       Aug 27, 2025
    我 win 用豆包划词有时会卡住不动,遇到好几次了
    lukeluke
        8
    lukeluke  
       Aug 27, 2025
    用 accessibility 的 AXUIElement 去获取其他应用的文本得把 sandbox 关了,但关了之后就没法上架了。我自己软件的划词功能也是依赖剪切板实现的。把剪切板原有的文字先保存下来,然后模拟键盘的拷贝按键,读取剪切板内容,再把原有的文字放回去。这一整套流程其实用时不多,基本上是同步的,可能剪切板监控软件感知不到?
    Absofknglutely
        9
    Absofknglutely  
    OP
       Aug 27, 2025
    @lukeluke 也有可能是获取不到, 剪贴板工具是我自己写的, 原理是每隔一段时间获取,
    Danfi
        10
    Danfi  
       Aug 27, 2025
    貌似是会有剪切板兜底的,像图书里有版权的书籍,选中翻译的话会有版权信息一起出来的
    SakuraYuki
        11
    SakuraYuki  
       Aug 27, 2025
    不使用剪贴板的软件里,bob 的比较好用,绝大多数情况下都能获取内容,不过要额外装一个 helper
    Absofknglutely
        12
    Absofknglutely  
    OP
       Aug 27, 2025
    @SakuraYuki 刚刚试了一下, 它的获取不准, 失败率有点高
    SakuraYuki
        13
    SakuraYuki  
       Aug 27, 2025
    @jackple #12 请问是什么样的情形,我用 bob 基本没遇到过获取不到的情况
    skiy
        14
    skiy  
       Aug 27, 2025 via iPhone
    豆包 chrome 扩展下架了。
    感觉它太主动了,我一选择,它就跳框出来,有时我只想复制而已。不太好用。
    Absofknglutely
        15
    Absofknglutely  
    OP
       Aug 27, 2025
    @SakuraYuki #13 我再试又好像不会了
    Absofknglutely
        16
    Absofknglutely  
    OP
       Aug 27, 2025
    @SakuraYuki #13 应我的快捷键冲突了导致
    About     Help     Advertise     Blog     API     FAQ     Solana     970 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 43ms UTC 19:50 PVG 03:50 LAX 12:50 JFK 15:50
    Do have faith in what you're doing.
    ubao msn 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