什么是 AI 代码助手?
AI 代码助手利用人工智能,通过建议代码片段、自动化重复性任务、在 Visual Studio Code 等编码环境中实时纠错,帮助开发者更高效地编写代码。这样,开发者就能把更多时间用在复杂且具创造性的工作上,而不是日常琐事。
虽然聊天机器人也能辅助完成编码任务,但使用起来往往比较繁琐,因为需要在 IDE 与 AI 平台之间来回切换,并大量复制粘贴代码。
AI 代码助手直接集成到编码环境中。这使其能够感知我们的编码上下文,在我们提问时无需显式提供代码片段。此外,它还能直接修改代码,从而更快速地整合变更。
如何安装 Gemini Code Assist?
本教程将把 Gemini Code Assist 与 Visual Studio Code 搭配使用。Gemini Code Assist 是一个 Visual Studio 扩展,因此我们可以像安装其他扩展一样安装它:
- 点击左侧面板的扩展选项卡。
- 在搜索框中输入 "gemini code assist"。
- 点击 "Install" 按钮。

安装完成后,左侧面板会出现 Gemini 选项卡。要开始使用代码助手,点击带有 Gemini 标志的该选项卡,并登录您的 Google 帐号。

测试 Gemini Code Assist
为了测试 Gemini Code Assist,我决定用 Python 分析一个最近的 Spotify 歌曲数据集。我使用的数据集来自 Kaggle,可在此处获取。
首先,创建一个文件夹并将 songs.csv 文件解压到该文件夹。然后在 Visual Studio Code 中打开该文件夹。我们的计划是不写任何代码,全部交给 Gemini Code Assist 来生成。
开始上手
我发出的第一个提示是:创建一个将数据加载到 pandas DataFrame 的 Python 函数。

通常,代码助手会通过修改现有代码并向我们展示包含新改动的差异视图来工作。由于目前还没有代码,我们可以点击聊天窗口右上角代码框最后一个按钮,让它将建议的代码创建为新文件。

然后我们将文件重命名为 songs.py。
运行代码
我们可以在 Visual Studio Code 的集成终端中使用以下命令运行代码:
python songs.py
此时,我们遇到了一个错误:
ModuleNotFoundError: No module named 'pandas'
这是因为 songs.py 脚本尝试使用 pandas,而它尚未安装。这个场景非常适合检查 Gemini Code Assist 是否能感知 Visual Studio Code 内的终端。
我让它在终端中解释如何修复该错误。不幸的是,它给出了泛化的回答,表明它无法访问终端输出。替代方法是将错误文本复制粘贴到 AI 聊天中,这稍显繁琐。但这样做后,我们得到了正确答案:需要在终端中运行 pip install pandas。
这是个遗憾的限制,因为作为软件工程师,向 AI 询问我在终端中看到的错误,正是我最常见的使用场景之一。
安装 pandas 后,我们就可以成功运行代码了。

提出通用性问题
Gemini Code Assist 不仅能回答编程相关问题,我们也可以提出通用或数据相关的问题。让我们通过让它列出所有列名来了解 songs.csv 文件中的数据结构:

在回答中,它创建了一个用于列出列名的函数,同时也直接在回答里列出了清单:

在使用 Gemini Code Assist 时,我常感觉它在区分“只需文本回答的通用问题”和“需要写代码的问题”方面略有困难。虽然我们可以忽略代码部分,但这确实会让聊天窗口变得有些杂乱。
请求新增功能
从上一个回答中我们注意到存在 track_popularity 列。让我们请 Gemini Code Assist 实现一个新函数,获取最受欢迎的歌曲。

当 Gemini Code Assist 在回答中给出代码时,函数并不会自动集成到我们的代码中。为此,我们需要点击双箭头按钮“Diff with Open File”。在点击前请确保要变更的目标文件正打开在编辑器中,否则更改会被合并到错误的文件里。

点击按钮后,会显示一个差异视图。左侧是当前代码状态,右侧是新状态。红色高亮代表将被删除或修改的行,黄色高亮代表新增或修改的行。

我们可以查看右侧的滚动条来定位这些变更。通常,文件中的多个位置都需要修改,因此在接受变更前务必要逐一查看。

将鼠标悬停在某处变更上,我们会看到中间有一个箭头:
![]()
我觉得这个图标不太直观,但点击该箭头表示我们不想包含该处具体变更。选好需要的变更后,点击顶部的“Accept”按钮即可合入新代码。

自动补全
到目前为止,我们一直通过 AI 聊天与 Gemini Code Assist 交互。相比在 AI 平台与代码编辑器之间来回复制粘贴,这已经是更好的工作流,因为一切都集成在同一窗口中,而且有差异视图,便于查看新改动。不过,这还不是 Code Assist 的全部功能。
在我们写代码的同时,助手会分析我们的输入,并给出可一键集成的代码建议。
数据集中的 track_popularity 列存储了歌曲热度。我们来编写一个函数,按发布日期排序,展示指定歌手歌曲的热度。我们可以使用 track_album_release_date 进行排序。
As 我们开始编写该函数时,Gemini Code Assist 会给出自动补全建议。当我们开始写函数签名时,Gemini Code Assist 会根据函数名猜测我们的意图:

要采纳建议,只需按键盘上的 Tab 键。接下来,我们想创建该 DataFrame 的一个副本,只包含指定歌手的歌曲:

有时,代码建议并非我们所需。在这种情况下,我们仍需要手动编写,或在足够接近时先接受再编辑。在本例中,下一步是将 track_album_release_date 转为日期格式。但不知为何,Gemini Code Assist 只想提取年份,因此我手写了这行代码。

接着,我想按日期对歌曲排序:

最后,我返回热度分数:

针对特定代码
我们可以先在编辑器中选中一段特定代码来进行针对性操作。当选中代码时,会自动出现一些提示建议,例如“Explain this”或“Generate unit tests”。

能够选中一段代码并询问其作用或工作原理,在接手新代码库时非常有用。我发现这往往是接手已有代码库的新项目中最难的一步。
我们也可以通过自定义提示让它修改代码。例如,我们可以请它改进刚刚创建的 analyze_artist_popularity_over_time() 函数:

在这个例子中,它通过添加一些检查来避免错误,从而改进了该函数。
免费方案的限制
与 Standard 和 Enterprise 方案相比,Gemini Code Assist 面向个人的免费方案存在一些限制:
- 定制与集成受限: 免费方案不支持连接您的私有源码仓库以获取定制化代码建议,而这在 Enterprise 方案中可用。
- 功能可用性: Gemini for Firebase 和 Apigee 中的某些高级功能,以及 Application Integration 中的高级 AI 辅助自动化,仅在 Standard 与 Enterprise 方案中提供。
- 安全与合规: 免费方案缺少企业级安全功能和管理工具,以及知识产权(IP)保障,这些都包含在 Standard 与 Enterprise 方案中。
- 操作限制: 免费方案每天提供 6,000 次与代码相关的请求和 240 次聊天请求,这对个人使用可能足够,但对较大的团队项目可能受限。
- 企业功能与支持: 用于 API 创建和高级应用质量分析的企业级上下文功能在免费方案中不可用。
了解更多详情,请访问Gemini Code Assist 官网。
我对 Gemini Code Assist 的看法
整体而言,我认为 Gemini Code Assist 表现相当不错。以我的体验来看,它的表现与主要竞品 Cursor 和 Copilot 类似。作为一款免费工具,这已经相当令人印象深刻。免费层每天支持最多 6,000 次与代码相关的请求和 240 次聊天请求,对大多数程序员来说绰绰有余。
另一个我们这里未涉及的有趣功能是其 GitHub 集成。面向 GitHub 的 Gemini Code Assist 可在审查拉取请求(PR)时自动发现缺陷和风格问题,并建议代码修改与修复,从而让开发者把更多精力放在编码本身。如果需要帮助,用户可以在 PR 中留言询问 Gemini。
我发现的一个问题是,它似乎在处理过往请求时有些吃力。我经常会先要求一些改动,随后又决定换个方向。但在后续迭代中,它仍旧倾向于把那些改动整合进来。比如我们编写的按时间展示曲目热度的函数,最初我想把这些数据绘制成图,后来又改变主意。然而与绘图相关的代码仍会在后续不相关的请求中被加入,略显恼人。
代码助手的隐忧
最近,我看到越来越多的程序员表达担忧,例如在这个Reddit 话题中,关于像 Cursor 或 Copilot 这样的代码助手会让他们逐渐忘记如何写代码。
这些工具带来的生产力提升毋庸置疑,而拒绝使用会让我们相较同行处于不利位置。不过,我认为凡事需要平衡。对于 AI 编码工具,我们很容易陷入盲目接受生成代码的陷阱。至少,我们应当花时间阅读并理解其产出。
使用代码补全似乎是一个更好的折中方案,因为我们至少需要亲自开始写点东西,有助于保留肌肉记忆,避免过度依赖 AI 工具。代码补全通常提供较小的代码片段,也更易于理解消化。
结语
AI 工具不断演进,成本下降、可及性提高。Gemini Code Assist 以免费提供强大的 AI 代码辅助工具,正是这一趋势的缩影。
谷歌的这一举措降低了开发者的入门门槛,让几乎所有人都能在编码任务中使用强大的 AI 辅助。值得称道的是,Gemini Code Assist 提供的功能与 Cursor、Copilot 等付费服务相当,甚至具有一定竞争力。每天多达 6,000 次与代码相关的请求和 240 次聊天请求,为个人开发者或小型项目提供了充足支持。

近来开源模型不断增多,而在代码编辑方面,像 Cursor AI 和 GitHub Copilot 等产品让用户可以免费体验其 AI 代码助手,但一旦用来构建真正的项目,很快就会遇到付费墙。
Gemini Code Assist,谷歌推出的 AI 代码助手,现已提供相当慷慨的免费套餐。它以 Visual Studio Code 和 JetBrains 的扩展形式提供。
在本教程中,我们将学习如何在 Visual Studio Code 中完成设置,并通过若干实用示例了解其用法。