← 最新论文
🤖 machine learning

Smart Paste: Automatically Fixing Copy/Paste for Google Developers

本文介绍了谷歌如何开发并规模化部署"Smart Paste"功能,该功能利用深度学习自动修复开发者粘贴代码后的格式、命名及跨语言转换等问题,自上线以来获得了 45% 的采纳率,并贡献了公司整体代码量的 1% 以上。

原作者: Vincent Nguyen, Guilherme Herzog, José Cambronero, Marcus Revaj, Aditya Kini, Alexander Frömmgen, Maxim Tabachnyk

发布于 2026-04-07
📖 1 分钟阅读☕ 轻松阅读

原作者: Vincent Nguyen, Guilherme Herzog, José Cambronero, Marcus Revaj, Aditya Kini, Alexander Frömmgen, Maxim Tabachnyk

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

这篇文章讲述的是谷歌工程师们如何解决程序员日常工作中一个非常头疼的问题:“复制粘贴后的代码总是需要手动修改”

他们开发了一个名为 Smart Paste(智能粘贴) 的功能,就像给程序员的编辑器装上了一个“智能副驾驶”。

下面我用几个生活中的比喻来为你解释这项技术是如何工作的:

1. 痛点:像“搬家”一样麻烦

想象一下,你从网上抄了一段菜谱(代码),想把它放进你自己的家庭食谱本(项目代码)里。

  • 现状:你直接粘贴进去后,发现食材单位不对(比如“杯”要改成“克”),或者步骤里的“烤箱”要改成你的“空气炸锅”。你不得不手动一个个字去改。
  • 问题:在谷歌,程序员复制粘贴代码的频率是手动打字的 4 倍!每次粘贴后都要手动修改,既枯燥又容易出错。
  • 旧工具:以前的工具要么只能帮你补全最后几个字(像自动补全),要么只能帮你格式化(像排版),要么就是让你打开聊天机器人慢慢问(太慢,打断思路)。

2. 解决方案:Smart Paste 是什么?

Smart Paste 就像一个“懂事的管家”
当你把一段代码粘贴进去时,这个管家会立刻扫描周围的“环境”(你当前的项目上下文),然后自动把这段代码“翻译”成适合你当前环境的版本。

  • 它怎么做到的?
    • 观察:它看着你粘贴的内容,再看看你文件里已经有的东西(比如你用了什么库、什么变量名)。
    • 思考:它利用一个经过大量训练的人工智能模型(基于 Google 的 Gemini 模型),瞬间计算出需要改哪里。
    • 行动:它直接在粘贴的地方显示修改建议。比如,把变量名 x 改成你项目里用的 user_id,或者把导入路径从 A 改成 B。
    • 确认:你只需要按一下 Tab 键 就接受了修改,或者按其他键忽略它。整个过程就像呼吸一样自然,不需要你离开当前的输入流。

3. 训练过程:如何教会 AI 当管家?

要训练这个 AI,不能只靠它“猜”,需要给它看真实的案例。

  • 收集数据:谷歌工程师们利用内部编辑器(Cider)记录了数百万次程序员的“粘贴 - 修改”过程。
  • 识别模式:他们开发了一套规则,能区分哪些是“真正的粘贴后修改”,哪些是“随便改改”。
    • 比喻:就像教小孩认字,不仅要看他写对了什么,还要看他写错了什么、怎么改对的。
  • 多语言训练:谷歌的代码库里有 24 种不同的编程语言(像 24 种不同的方言)。如果只教它 Python,它就不会说 Java。所以他们用混合了 24 种语言的数据来训练,让它成为一个“多面手”。
  • 学会“闭嘴”:有时候粘贴进去的代码本身就是完美的,不需要改。AI 必须学会识别这种情况,不要瞎提建议,否则会很烦人。

4. 用户体验:快、准、不烦人

为了让这个功能好用,团队在“速度”和“界面”上下了大功夫:

  • 速度要快:就像你点外卖,如果等太久就不想吃了。Smart Paste 必须在 346 毫秒 内给出建议(比眨眼还快),否则程序员就会失去耐心。为了做到这点,他们把计算任务拆分,让“思考”和“输出”并行处理。
  • 界面要友好
    • 建议不是弹出一个大窗口挡住你,而是直接以斜体、灰色的字显示在代码行里(就像幽灵文字)。
    • 如果有修改,整行会标上黄色,提醒你“这里有人帮你改了,请检查一下”。
    • 如果你没反应,它不会马上消失,给你 2 秒钟看清楚,避免误操作。

5. 效果如何?

这个功能上线后非常成功:

  • 接受率高:程序员们 45% 的时间都直接接受了它的建议(相当于每两个建议里就有一个被采纳)。
  • 节省时间:平均每次采纳建议,程序员少打了 22 个字符 的修改键。
  • 规模巨大:在谷歌这样的大公司,这些自动修改的代码量竟然占了全公司所有代码编写量的 1% 以上!这相当于每天自动帮全公司省下了成千上万小时的修改时间。

6. 未来的展望

现在的 Smart Paste 还只是“被动”的(你粘贴它才改)。未来,他们希望它变得更“主动”:

  • ** Milestone 1**:不仅改粘贴的地方,还能自动帮你修改周围相关的代码。
  • Milestone 2:不仅针对粘贴,针对其他操作(如重构)也能给建议。
  • Milestone 3:甚至能主动预测你需要什么,在你还没动手之前就准备好方案。

总结

Smart Paste 就是把程序员从枯燥的“复制 - 粘贴 - 手动修改”循环中解放出来。它像一个不知疲倦的、懂所有语言、反应极快的超级助手,让你专注于写代码的逻辑,而不是纠结于格式和变量名的微调。

这就好比以前你搬家要自己搬家具、拆包装、重新组装,现在有了 Smart Paste,你只需要把箱子扔进去,它瞬间就帮你把家具摆放整齐、组装完毕,你只需要说声“谢谢”(按 Tab 键)就行。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →