使用 Gemini Code Assist 编写代码

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

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

  • 为您的项目生成代码。

  • 在您编码时获取行内建议。

了解 Gemini for Google Cloud 如何以及何时使用您的数据

为了帮助您满足可能适用的许可要求,当 Gemini Code Assist 的建议大段引用特定来源内容时,它会提供相应的来源信息。如需详细了解 Gemini 在何时以及如何注明信息来源,请参阅 Gemini 如何帮助您生成代码并标注来源

借助代码自定义功能,您可以直接从 Gemini Code Assist 获取基于贵组织的私有代码库的代码建议。了解如何配置代码自定义

本文档适用于各种技能水平的开发者。本文假定您熟悉 Cloud Shell 编辑器,并且熟悉 Google Cloud。如果您愿意,也可以在 Cloud WorkstationsIntelliJVS Code 中探索 Gemini Code Assist。

连接到 Google Cloud 并选择项目

在本部分中,您将在 Cloud Shell 编辑器中连接到 Google Cloud ,然后选择已启用 Gemini for Google Cloud API 的Google Cloud 项目。

如果您选择的 Google Cloud 项目尚未启用 Gemini for Google Cloud API,系统会显示一条通知,您可通过该通知在 IDE 中启用该 API。在通知窗口中选择启用该 API,为您的项目启用该 API。如需了解详情,请参阅为项目设置 Gemini Code Assist

如需在 Cloud Shell 编辑器中连接到 Google Cloud ,请按以下步骤操作:

  1. 启动 Cloud Shell Editor

  2. 如果系统提示您授权 Cloud Shell 编辑器进行 Google CloudAPI 调用,请点击授权

  3. 按照提示登录您的 Google 账号。

  4. 在搜索栏旁边,点击 keyboard_arrow_down Gemini Code Assist 下拉菜单。

    Gemini Code Assist 下拉菜单。

  5. 从菜单中,选择 Select Gemini Code Assist Project。系统随即会打开选择 Google Cloud 项目菜单。

  6. 选择 Google Cloud 项目菜单中,选择已启用 Gemini for Google Cloud API 的 Google Cloud项目。

    您现在已连接到 Google Cloud。Gemini 已准备就绪,可以开始使用了。

与 Gemini Code Assist Chat

在本部分中,您将了解如何打开 Gemini Code Assist 窗格,以及如何与 Gemini Code Assist 对话以获取代码解释。

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

  1. 打开源文件。

  2. 在 Cloud Shell 编辑器中的搜索栏旁边,点击 chat_spark Open Gemini Code Assist Chat(打开 Gemini Code Assist 对话)。

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

    Gemini 会将您的文件作为提示的上下文,并返回代码的解释结果。

    如需重点关注特定代码块,请在输入提示之前,在打开的文件中选择该代码块。

重置对话记录

Gemini Code Assist 在回答提示时会使用对话记录来获取更多上下文信息。

如果您的对话记录不再与您要实现的目标相关,您可以重置对话记录:在 Gemini Code Assist 窗格中,依次点击 delete Reset Chat(重置对话)。

根据提示生成代码

以下部分介绍了如何使用 Gemini Code Assist 在文件中生成使用示例提示 Function to create a Cloud Storage bucket 的代码。您还可以选择部分代码,通过对话功能向 Gemini Code Assist 发出提示请求,然后在编码过程中接收代码建议并选择接受或拒绝。

在文件中提示 Gemini Code Assist

  1. 在源文件中,另起一行输入注释 Function to create a Cloud Storage bucket,然后按 Enter 键(Windows 和 Linux)或 Return 键 (macOS)。

  2. 如需生成代码,请按 Ctrl+Enter(Windows 和 Linux)或 Ctrl+Return (macOS)。

    Gemini Code Assist 会在文件中的提示文本旁以灰显形式生成代码。

  3. 可选:若要接受生成的代码,请按 Tab 键。

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

如果用于生成代码的默认快捷键未按上一部分所述那样生效,您可以按照以下步骤更改键盘快捷键:

  1. 在 Cloud Shell 编辑器中,点击 menu 菜单,然后依次前往文件 > 偏好设置 > 键盘快捷键

  2. 在键盘快捷键列表中,搜索 Cloud Code:生成代码

  3. 点击 Cloud Code:生成代码,然后点击 edit 更改键绑定

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

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

    您现在可以使用新分配的快捷键通过 Gemini 生成代码。

通过对话使用所选代码提示 Gemini Code Assist

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

  1. 在 Cloud Shell Editor 的搜索栏旁边,点击 chat_spark Open Gemini Code Assist Chat(打开 Gemini Code Assist 对话)。

  2. 在源文件中,选择一个代码块。

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

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

    Gemini 会将您选择的代码作为参考,并生成对提示的回答。

在编码时获取内嵌建议

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

  1. 在源文件中,另起一行,开始编写函数。 例如,如果您在 Python 文件中,请编写 def。Gemini 会以灰显文本的形式提供代码建议。

  2. 若要接受 Gemini Code Assist 给出的代码建议,请按 Tab 键。否则,若要忽略建议,请按 Esc 键或继续编写代码。

可选:停用内嵌建议

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

  1. 在 Cloud Shell 编辑器中,选择 menu Menu(菜单),然后依次前往 File(文件)> Preferences(偏好设置)> Settings(设置)。

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

  3. 滚动查找 Cloudcode:Gemini Code Assist:行内建议:启用自动列表,然后选择关闭

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

可选:使用 .aiexclude 文件从上下文中排除文件

您可以创建 .aiexclude 文件,以排除 Gemini Code Assist 在考虑上下文时要排除的文件。.aiexclude 文件遵循与 .gitignore 文件类似的语法,但存在以下差异:

  • 空的或不存在的 .aiexclude 文件不会屏蔽其目录和所有子目录中的任何文件。
  • .aiexclude 文件不支持否定,即您不能使用感叹号 (!) 为模式添加前缀。
  • .aiexclude 文件会贪婪地匹配 * 字符。这将不加区分地匹配目录和文件。此 .aiexclude 文件不会区分文件夹或文件是 ** 还是 *

目前仅支持单个 .aiexclude 文件。如需配置 .aiexclude 文件,请在工作区文件夹的根目录中创建一个名为 .aiexclude 的文件。如果您想将此文件放置在工作区根目录之外,或者重命名该文件,可以在 VS Code 设置中的“上下文排除文件”下设置路径。此设置中提供的路径值将相对于打开的工作区的根文件夹进行解析。

示例

以下示例演示了如何配置 .aiexclude 文件:

  • 在工作区目录或该目录下,屏蔽所有名为 apikeys.txt 的文件:

    apikeys.txt
    
  • 在工作区目录或该目录下,屏蔽所有文件扩展名为 .key 的文件:

    *.key
    
  • 仅屏蔽与 .aiexclude 文件位于同一目录中的 apikeys.txt 文件,但不屏蔽任何子目录:

    /apikeys.txt
    
  • 屏蔽目录 my/sensitive/dir 及其所有子目录中的所有文件。路径应相对于工作区根目录。

    my/sensitive/dir/*
    

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

Gemini 在直接引用其他来源(例如公开提供的源代码)的长篇内容时,会提供引用信息。如需了解详情,请参阅 Gemini 会注明信息来源的情况和方式

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

"geminicodeassist.recitation.maxCitedLength": 0

使用智能操作

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

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