让 Duet AI 协助您写代码

本文档介绍了如何使用 Google Cloud 中由 AI 赋能的协作者 Duet AI 来帮助您在 Cloud Code 中执行以下操作:

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

  • 为您的项目生成代码。

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

Duet AI 不会将您的提示或其响应作为数据来训练模型。如需了解详情,请参阅 Google Cloud 中的 Duet AI 如何使用您的数据

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

本文档面向所有技能水平的开发者。本文档假定您具备 VS Code 方面的实践知识并熟悉 Google Cloud。 如果您愿意,还可以在 Cloud WorkstationsCloud Code for IntelliJCloud Shell Editor 中探索 Duet AI。

准备工作

  1. 登录您的 Google Cloud 帐号。如果您是 Google Cloud 新手,请创建一个帐号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  3. 确保您的 Google Cloud 项目已启用结算功能

  4. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  5. 确保您的 Google Cloud 项目已启用结算功能

  6. 确保已为您的 Google Cloud 用户账号和项目设置了 Duet AI。
  7. 安装 Cloud Code 扩展程序(如果尚未安装)。Cloud Code 还可在您的 IDE 中与 Duet AI 集成。
  8. 可选:如果您选择克隆本文档中的任务的示例,请安装 Git。 将示例复制到您的计算机需要使用 Git。

连接到 Google Cloud

如果您已在 IDE 中连接到 Google Cloud,则可以跳过本部分。否则,请按照以下步骤操作:

  1. 启动 IDE。

  2. 在状态栏中,点击 Cloud Code - Sign In(Cloud Code - 登录)。

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

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

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

  5. 当系统提示您确保您是从 Google 下载 Cloud Code 时,点击登录

    您现在已连接到 Google Cloud。

在 Cloud Code 中启用 Duet AI

在本部分中,您将在 Cloud Code 中启用 Duet AI。在继续执行这些步骤之前,请务必按照为项目设置 Duet AI 中的说明操作(如果您尚未这样做)。

如需在 Cloud Code 中为您的 IDE 启用 Duet AI,请按以下步骤操作:

  1. 在您的 IDE 中,选择 Code(适用于 MacOS)或 File(适用于 Windows 和 Linux),然后依次前往 Settings > Settings

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

  3. 滚动屏幕,直到您找到 Duet AI: Enable,然后选中 Enable Duet AI for Developers 复选框。

  4. 重新加载 IDE。

    这将在 Cloud Code 中启用 Duet AI,并且 Duet AI 状态栏会显示在您的 IDE 中。

    Duet AI 状态栏可用。

  5. 选择一个已启用 Cloud AI Companion API 的 Google Cloud 项目:

    1. Duet AI 状态栏中,点击 Duet AI

    2. Duet AI 快速选择菜单中,选择启用了 Cloud AI Companion API 的 Google Cloud 项目。

    Duet AI 已可供使用。

    状态栏中的 Duet AI 图标已设置为正常状态。

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

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

可选:创建示例应用

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

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

  2. 选择 Kubernetes 应用

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

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

    系统会发出通知,确认应用已创建,并打开一个新窗口,并加载该应用。

与 Duet AI Chat

在本部分中,您将学习如何打开 Duet AI 窗格并与 Duet AI 聊天以获取现有代码的说明。

如需开始与 Duet AI 聊天,请按以下步骤操作:

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

  2. 在 IDE 的活动栏中,点击 chat_spark Duet AI

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

    Duet AI 使用代码文件中的代码作为对提示的引用,并在回复中提供代码说明。

    如需引用特定的代码块(而不是文件中的所有代码),您可以在代码文件中选择相应代码块,然后提示 Duet AI。

重置聊天记录

在回应您的提示时,Duet AI 会使用聊天记录来提供额外的上下文。

如果您的聊天记录不再与您要实现的目标无关,您可以重置聊天记录:在 Duet AI 窗格中,点击 delete 重置聊天

根据提示生成代码

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

在代码文件中提示 Duet AI

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

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

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

    在 Python 文件中的提示文本旁边,Duet AI 会以幽灵文本的形式生成代码。

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

通过聊天功能使用所选代码提示 Duet AI

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

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

  2. 在活动栏中,点击 chat_spark Duet AI 以打开 Duet AI 窗格。

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

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

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

    Duet AI 为所选函数编写单元测试。

    Duet AI 使用您选择的代码作为参考,并回应您的提示。

编码时获取内嵌建议

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

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

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

    Duet AI 会以幽灵文本的形式建议代码。

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

可选:停用内嵌建议

如果您希望在 Duet AI 中停用内嵌建议,请按以下步骤操作:

  1. 在您的 IDE 中,选择 Code(适用于 MacOS)或 File(适用于 Windows 和 Linux),然后依次前往 Settings > Settings

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

  3. 滚动屏幕,直到您找到 Cloudcode: Duet AI: InlineSuggestion: Enable Auto 列表,然后选择关闭

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

使用智能操作

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

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

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

  2. 在所选代码块旁边,点击 灯泡 更多操作

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

    Duet AI 会根据您选择的操作生成响应。

测试其他示例提示

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

获取代码说明

  1. 在代码文件中,选择要说明的函数。
  2. Duet AI 窗格中,输入提示 Explain this code to me

    Duet AI 使用您选择的代码作为参考,并回复对所选函数的说明。

生成测试计划

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

获取调试代码方面的帮助

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

提高代码的可读性

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

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

已知问题

以下部分概述了 Cloud Code 中的 Duet AI 的已知问题。

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

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

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

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

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

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

当您按 Esc 时,IntelliJ 和 Duet AI 建议都会被关闭。此行为与非 Vim 行为不同,在非 Vim 中按 Esc 键会再次触发 Duet AI。

许可背书警告不会跨会话持续

如果许可背书警告在会话中不出现,请参阅持久性日志:

  1. 依次点击 View > Output

  2. 选择 Duet AI - Citations

Duet AI 输出窗口中的连接问题

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

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

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

您可以使用 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. 在状态栏中,点击 Duet AI,然后在快速选择菜单中选择发送反馈

  2. 在表单中填写 TitleComments 字段。

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

  4. 点击提交反馈

后续步骤