使用 Gemini Code Assist 编写代码

本文档介绍了如何使用 Gemini Code Assist(Google Cloud 中依托 AI 技术的协作工具)帮助您在 Cloud Code 中执行以下操作:

  • 提供相关指导,帮助您解决代码问题。

  • 为您的项目生成代码。

  • 在编码时接收内嵌建议。

Gemini 不会将您的提示或其回答作为数据来训练模型。如需了解详情,请参阅 Gemini for Google Cloud 如何使用您的数据

为帮助您遵守代码的任何许可要求,Gemini Code Assist 会在建议直接引用特定来源的长篇内容时提供来源引用。如需详细了解 Gemini 引用来源的方式和时间,请参阅 Gemini 如何帮助您生成代码和引用来源

本文档面向各种技能水平的开发者。本教程假定您具备 VS Code 的应用知识,并且熟悉 Google Cloud。如果您愿意,还可以在 Cloud WorkstationsCloud Code for IntelliJCloud Shell Editor 中探索 Gemini Code Assist。

准备工作

  1. 安装 Cloud Code 扩展程序(如果尚未安装)。Cloud Code 与 IDE 中的 Gemini Code Assist 集成。
  2. 可选:如果您选择为本文档中的任务克隆示例,请安装 Git。将示例复制到您的计算机需要使用 Git。

连接到 Google Cloud 并选择一个项目

在本部分中,您将连接到 Google Cloud,并选择一个已在 IDE 中启用 Cloud AI Companion API 的 Google Cloud 项目。

如果您选择的 Google Cloud 项目未启用 Cloud AI Companion API,则会收到错误通知,并要求您与管理员联系。如需了解详情,请参阅为项目设置 Gemini Code Assist

如果您希望直接在 IDE 中按照使用 Gemini Code Assist 编写代码演示,请点击启动 VS Code,然后按照演示中的步骤连接到 Google Cloud 并激活 Gemini Code Assist。

启动 VS Code

否则,请按照以下步骤操作:

  1. 启动 IDE。

  2. 在状态栏中,点击 Cloud Code - Sign In

    Cloud Code - 状态栏中的登录按钮。

  3. 当系统提示您允许 Cloud Code 打开外部网站时,点击打开

  4. 按照提示登录您的 Google 帐号。

  5. 当系统询问您是否从 Google 下载 Cloud Code 时,点击登录

    您现已连接到 Google Cloud。

接下来,如需选择已启用 Cloud AI Companion API 的 Google Cloud 项目,请按以下步骤操作:

  1. Gemini Code Assist 状态栏中,点击 Gemini Code Assist

    Gemini 状态栏可用。

  2. Gemini Code Assist 菜单中,选择选择 Gemini Code Assist 项目

  3. 选择已启用 Cloud AI Companion API 的 Google Cloud 项目。

    可以开始使用 Gemini 了。

    状态栏中的 Gemini 图标已设为正常。

如需测试 Gemini Code Assist 的功能,请在下一部分中打开一个应用或创建示例应用。

可选:创建示例应用

如果您更喜欢使用现有应用测试 Gemini Code Assist 的功能,则可以跳过此部分。否则,如需创建示例应用,请按以下步骤操作:

  1. 在 IDE 中,打开命令面板:按 Ctrl+Shift+P(适用于 Windows 和 Linux)或 Command+Shift+P(适用于 macOS),然后运行 Cloud Code: New Application

  2. 选择 Kubernetes application

  3. 选择 Python (Flask): Guestbook 应用模板。

  4. 将新应用保存到首选位置。

    系统会显示一条通知,确认您的应用已创建,并打开一个新窗口,其中加载了您的应用。

与 Gemini Code Assist Chat

在本部分中,您将了解如何打开 Gemini Code Assist 窗格并与 Gemini Code Assist 对话,获取现有代码的说明。

如要开始与 Gemini 对话,请按以下步骤操作:

  1. 创建一个新的代码文件或使用现有的代码文件。如果您使用的是 Python (Flask) 示例,则可以在 front.py 文件中执行此任务:依次前往 Explorer > src > frontend,然后打开 front.py 文件。

  2. 在 IDE 的活动栏中,点击 chat_spark Gemini Code Assist

  3. Gemini Code Assist 窗格中,输入提示 Explain this code to me,然后点击 send 然后点击 Send

    Gemini 会将代码文件中的代码用作提示的引用,并在回答时提供代码的解释。

    如要引用特定的代码块,而不是文件中的所有代码块,可以在代码文件中选择相应代码块,然后提示 Gemini。

重置聊天记录

在回答你的问题时,Gemini Code Assist 会使用聊天记录提供更多上下文。

如果你的聊天记录不再与你要尝试达成的目的有关,你可以重置聊天记录:在 Gemini Code Assist 窗格中,点击删除 重置对话

根据提示生成代码

以下部分介绍了如何使用 Gemini Code Assist 通过 Python 文件内的示例提示 # Function to create a Cloud Storage bucket 生成代码。你还可以选择部分代码,然后通过聊天功能提示 Gemini Code Assist 提供帮助,并在编码时接收、接受或拒绝代码建议。

在代码文件中提示 Gemini Code Assist

  1. 创建一个新的代码文件或使用现有的代码文件。如果您使用的是 Python (Flask) 示例,则可以在 front.py 文件中执行此操作:导航到 Explorer > src > frontend,然后打开 front.py 文件。

  2. 在代码文件中,另起一行输入 # Function to create a Cloud Storage bucket,然后按 Enter(适用于 Windows 和 Linux)或 Return(适用于 macOS)。

  3. 如需生成代码,请按 Ctrl+Enter(适用于 Windows 和 Linux)或 Control+Return(适用于 macOS)。

    在 Python 文件中的提示文本旁边,Gemini Code Assist 以幽灵文本的形式生成代码。

  4. 可选:如需接受生成的代码,请按 Tab

可选:更改用于生成代码的键盘快捷键

如果用于生成代码的默认键盘快捷键不起作用(如上一部分中所述),您可以按照以下步骤更改该键盘快捷键:

  1. 在 IDE 中,点击 File(适用于 Windows 和 Linux)或 Code(适用于 macOS),然后依次转到 Settings > 键盘快捷键

  2. 在键盘快捷键列表中,滚动直至找到 Cloud Code: Generate code

  3. 点击 Cloud Code: Generate Code,然后点击 edit Change Keybinding

  4. 在显示的对话框中,输入您自己的快捷键。

  5. Enter(适用于 Windows 和 Linux)或 Return 键(适用于 macOS)。

    现在,你可以使用新分配的键盘快捷键通过 Gemini Code Assist 生成代码。

如需详细了解如何在 IDE 中更改快捷键,请参阅 Visual Studio Code 的按键绑定

通过聊天使用所选代码向 Gemini Code Assist 发出提示

Gemini Code Assist 可以根据您选择的代码执行任务或回答您的问题。如需获取根据包含所选代码的提示生成的代码,请按以下步骤操作:

  1. 在 IDE 中,打开项目中包含代码的文件,或使用您在前面步骤中使用的同一代码文件。

  2. 在活动栏中,点击 chat_spark Gemini Code Assist,打开 Gemini Code Assist 窗格。

  3. 在您的代码文件中,选择一个代码块。

  4. Gemini Code Assist 窗格文本字段中,输入所选代码的提示。

    例如,在代码中选择一个函数并输入提示 Write a unit test for this function

    Gemini 会为所选函数编写单元测试。

    Gemini 会将你选择的代码用作参考 并回答你的问题

在编码时获取内嵌建议

在您编写代码时,Gemini Code Assist 会提供内嵌代码建议,您可以接受或忽略这些建议。如需试用此功能,请按以下步骤操作:

  1. 创建一个新的代码文件或使用现有的代码文件。如果您使用的是 Python (Flask) 示例,则可以在 front.py 文件中执行此操作:导航到 Explorer > src > frontend,然后打开 front.py 文件。

  2. 在代码文件中另起一行,开始编写函数。例如,如果您在 Python 文件中,请写入 def

    Gemini 会以幽灵文本的形式提供代码建议。

  3. 如需接受 Gemini Code Assist 提供的代码建议,请按 Tab。否则,如需忽略建议,请按 Esc 或继续编写代码。

可选:停用内嵌建议

如果您希望停用 Gemini Code Assist 中的内嵌建议,请按以下步骤操作:

  1. 在 IDE 中,选择 Code(适用于 macOS)或文件(适用于 Windows 和 Linux),然后依次转到 Settings > Settings

  2. 设置对话框的用户标签页上,依次前往扩展程序 > Cloud Code

  3. 滚动屏幕,直至找到 Cloudcode: Gemini Code Assist: InlineSuggestion: Enable Auto 列表,然后选择关闭

    这会关闭内嵌建议。您仍然可以按 Ctrl+Enter(对于 Windows 和 Linux)或 Ctrl+Return(对于 macOS)来手动触发内嵌建议。

停用与所引用来源匹配的代码建议

Gemini 会在直接引用其他来源(例如现有的开源代码)中大量资源时提供引用信息。如需了解详情,请参阅 Gemini 会注明信息来源的情况和方式

为了防止建议与引用的来源匹配的代码,您可以在 settings.json 文件中将 cloudcode.duetAI.recitation.maxCitedLength 设置修改为 0

"cloudcode.duetAI.recitation.maxCitedLength": 0

使用智能操作

为了在最大限度地减少上下文切换的同时提高工作效率,Gemini Code Assist 直接在代码编辑器中提供 AI 赋能的智能操作。在代码编辑器中选择代码时,您可以查看与上下文相关的操作列表,并从中进行选择。

如需在代码中使用智能操作,请按以下步骤操作:

  1. 在您的代码文件中,选择一个代码块。

  2. 在所选代码块旁边,点击灯泡 Show Code Actions

    在 VS Code 中选择代码块后,系统会显示智能操作灯泡图标。

  3. 选择一项操作,例如 Generate unit tests

    Gemini 会根据你选择的操作生成回答

测试其他示例提示

仔细阅读本文档的使用提示生成代码部分,然后尝试以下示例提示。

获取代码说明

  1. 在您的代码文件中,选择要解释的函数。
  2. Gemini Code Assist 窗格中,输入提示 Explain this code to me

    Gemini 会将您选择的代码作为参考,并在回答时提供所选函数的解释。

生成测试计划

  1. 在代码文件中,选择要添加单元测试的代码。
  2. Gemini Code Assist 窗格中,输入提示 Write unit tests for my code

获取代码调试方面的帮助

  1. 在您的代码文件中,选择要调试的代码。
  2. Gemini Code Assist 窗格中,输入提示 Help me debug my code

提高代码的可读性

  1. 在代码文件中,选择您希望提高可读性的代码。
  2. Gemini Code Assist 窗格中,输入提示 Make my code more readable

    如果您希望专注于代码的特定部分,请在提示 Gemini 之前选择首选代码部分。

已知问题

以下部分概述了 Gemini Code Assist 的已知问题。

如果 Chat 回复包含大型打开文件的更新版本,则可能会被截断

如需解决此问题,请选择较小的代码片段,并在聊天提示中添加额外的指令,例如 only output the selected code.

Vim:除非处于插入模式,否则无法接受或忽略代码生成建议

在普通模式下使用 Vim 插件时,您无法接受或拒绝代码建议。

如需解决此问题,请按 i 进入插入模式,然后按 Tab 键接受建议。

Vim:按 Esc 关闭建议时行为不一致

Esc 键时,IntelliJ 和 Gemini 建议均会被关闭。此行为与非 Vim 行为不同,在非 Vim 行为中,按 Esc 会重新触发 Gemini。

许可复制警告在会话间不持续显示

如果许可复制警告在会话间持续出现,请参阅永久性日志:

  1. 点击查看 > 输出

  2. 选择 Gemini Code Assist - Citations

Gemini Code Assist 输出窗口中的连接问题

如果您在 Gemini Code Assist 输出窗口中看到连接错误或其他连接问题,请尝试以下操作:

  • 将防火墙配置为允许访问 oauth2.googleapis.comcloudaicompanion.googleapis.com

  • 将防火墙配置为允许通过 HTTP/2(gRPC 使用)进行通信。

您可以使用 grpc-health-probe 工具测试连接性。如果检查成功,将生成以下输出:

$ grpc-health-probe -addr cloudaicompanion.googleapis.com:443 -tls error: this server does not implement the grpc health protocol (grpc.health.v1.Health): GRPC target method can't be resolved

如果检查失败,则会导致以下输出:

timeout: failed to connect service "cloudaicompanion.googleapis.com:443" within 1s

如需获取更多详细信息,请在 grpc-health-probe 之前运行以下命令:

export GRPC_GO_LOG_SEVERITY_LEVEL=info

提供反馈

如需就您的体验提供反馈,请按以下步骤操作:

  1. 在状态栏中,点击 Gemini Code Assist,然后在快速选择菜单中选择发送反馈

  2. 在该表单中,填写标题评论字段。

  3. 如果要共享 Skaffold 或 AI Companion 日志,请务必选择 Send Skaffold logsSend AI Companion logs 选项。

  4. 点击提交反馈

后续步骤