使用 Pipet Code Agent 构建 AI Code Assistant

编写代码既有益又令人满意,但 人造 智能生成模型可帮助您添加代码注释、 并在人工审核员之前发现错误,并执行大量其他任务, 简化编码工作流程

本教程介绍了如何将 Pipet Code Agent、 AI 赋能的代码辅助工具,由 Google Cloud 的 AI 开发者关系团队打造, Google。该开源项目是 Microsoft Visual Studio 的扩展程序。 Code (VS Code),可以帮助您 可以处理一些重要但又不太有趣的编码任务, 发现错误并提出改进建议。该扩展程序会 向 Gemini API 发送编码协助请求,并将回复纳入到 代码编辑窗口中

你可以修改 Pipet 来让这些现有函数更好地为您服务,或者构建新命令 更好地支持开发工作流。

通过视频简要了解项目以及如何扩展项目(包括数据洞见) 了解建造者的想法 AI Code Assistant - 使用 Google AI 构建。 否则,您可以按照说明开始扩展项目 。

项目设置

以下说明会引导您设置 Pipet Code Agent 项目 进行开发和测试常规步骤包括安装一些必备项 软件、设置一些环境变量、从代码克隆项目 然后运行配置安装

安装必备项

Pipet Code Agent 项目作为 Microsoft Visual Studio 的扩展程序运行 代码和使用 Node.jsnpm 工具 打包并运行应用以下是安装说明 运行 25 万个 Pod

如需安装所需的软件,请执行以下操作:

  1. 安装 Visual Studio Code 平台
  2. 按照安装步骤安装 nodenpm 操作说明

克隆并配置项目

下载项目代码并使用 npm 安装命令下载 所需的依赖项并配置项目。您需要 git 源控制软件,用于检索 项目源代码

如需下载并配置项目代码,请执行以下操作:

  1. 使用以下命令克隆 git 代码库。
    git clone https://github.com/google/generative-ai-docs
    
  2. (可选)配置您的本地 Git 代码库以使用稀疏检出, 因此您只有文档代理项目的文件。
    cd generative-ai-docs/
    git sparse-checkout init --cone
    git sparse-checkout set examples/gemini/node/pipet-code-agent/
    
  3. 导航到 Pipet Code Agent 项目根目录。
    cd generative-ai-docs/examples/gemini/node/pipet-code-agent/
    
  4. 运行安装命令,以下载依赖项并配置项目:
    npm install
    

配置和测试扩展程序

现在,您应该可以通过以如下身份运行 Pipet Code Agent 来测试安装: 在设备上使用 VS Code 创建一个开发扩展程序。该测试会打开一个单独的 提供了新扩展程序的代码 Extension Development Host 窗口。 在此新窗口中,您可以配置该扩展程序用于访问 Google Gemini API。

在 Extension Development Host 窗口中运行的 Pipet Code Agent 图 1. 包含 Pipet 的 VS Code Extension Development Host 窗口 扩展程序命令

如需配置和测试您的设置,请执行以下操作:

  1. 启动 VS Code 应用。
  2. 在 VS Code 中,依次选择 File >新窗口
  3. 选择文件 >打开文件夹。 然后选择 pipet-code-agent/ 文件夹。
  4. 打开 pipet-code-agent/package.json 文件。
  5. 依次选择 Run >开始调试。 此步骤会打开一个单独的 VS Code Extension Development Host 窗口。
  6. 依次选择 Code >设置 >设置
  7. 从以下位置获取 Google Gemini API 密钥: Generative AI Developer 网站,然后复制键字符串。
  8. 将 API 密钥设置为配置设置。在搜索设置中 字段中,输入 pipet,选择用户标签页,然后在 Google >Gemini: API 密钥设置,点击在 settings.json 中修改链接,将 Gemini API 密钥:
    "google.gemini.apiKey": "your-api-key-here"
    
  9. 保存对 settings.json 文件所做的更改,然后关闭“设置”标签页。

如需测试扩展程序命令,请执行以下操作:

  1. 在 VS Code Extension Development Host 窗口中,选择任意代码 。
  2. 选择查看 >Command Palette
  3. 在 Command Palette 中,输入 Pipet 并使用 该前缀。

修改现有命令

修改 Pipet Code Agent 中提供的命令是 更改扩展程序的行为和功能。评论和信息 查看命令使用 少样本提示 提供代码示例和注释,以及 AI 生成模型的一般说明。此提示上下文 Gemini 生成模型会指导 Gemini 生成回答。修改者 更改评论或注释中的提示说明和/或示例 您可以更改各个现有命令的行为方式。

这组说明说明了如何通过以下方法修改 review.ts 命令: 更改命令提示文字。

如需准备修改 review.ts 命令,请执行以下操作:

  1. 启动 VS Code 应用。
  2. 在 VS Code 中,依次选择 File >新窗口
  3. 选择文件 >打开文件夹。 然后选择 pipet-code-agent/ 文件夹。
  4. 打开 pipet-code-agent/src/review.ts 文件。

如需修改 review.ts 命令的行为,请执行以下操作:

  1. review.ts 文件中,更改 PROMPT 的开头 常量不同的指令。
    const PROMPT = '
    Write review comments for following code, identifying bugs and ways to improve code quality. Examples of bugs are syntax errors or typos, out of memory errors, and boundary value errors. Examples of improving code quality are reducing complexity of code, eliminating duplicate code, and ensuring other developers
    are able to understand the code.
    ${CODE_LABEL}
    ...
  2. (可选)在 review.ts 文件中,将另一个示例添加到 代码和代码审核示例列表。
    ...
    ${REVIEW_LABEL}
    There are duplicate lines of code in this control structure.
    ${CODE_LABEL}
    const fixed_value = 128;
    ${REVIEW_LABEL}
    Make sure constant names are in all capitals (FIXED_VALUE) for clarity.
    ';
  3. 保存对 review.ts 文件所做的更改。

如需测试修改后的命令,请执行以下操作:

  1. 在 VS Code Pipet 扩展程序项目窗口中,通过以下方式重启调试程序: 选择 Run >重启调试
  2. 在 VS Code Extension Development Host 窗口中,选择任意代码 。
  3. 选择查看 >Command Palette
  4. 在 Command Palette 中,输入 Pipet 并选择 Pipet:查看 选择代码命令。

创建新命令

您可以创建执行全新任务的新命令,从而对 Pipet 进行扩展 使用 Gemini API。每个命令文件(comment.tsreview.ts)的大部分内容 是独立的,并且包含用于从活动编辑器收集文本的代码, 撰写提示、连接到 Gemini API、发送提示以及处理 响应。

带有“Name”(名称)的 Pipet Code Agent(显示选择函数) 图 2. VS Code 扩展程序中的新函数名称建议命令 “开发主机”窗口。

本组说明将介绍如何使用 一个现有命令 comment.ts 作为模板。

如需创建为函数提供名称建议的命令,请执行以下操作:

  1. 创建 pipet-code-agent/src/comment.ts 文件的副本 src/ 目录中名为 name.ts
  2. 在 VS Code 中,打开 src/name.ts 文件。
  3. name.ts 文件中的提示说明更改为 修改 PROMPT 值。
    // Provide instructions for the AI generative model
    const PROMPT = `Recommend a name for this function. Explain your
    reasoning in 3 sentences or less:`;
    
  4. 更改命令函数的名称及其信息消息。
    export async function generateName() {
      vscode.window.showInformationMessage('Generating function name...');
    
  5. 更新提示汇编代码,使其仅包含 PROMPT 值和编辑器中选择的文本。
      // Build the full prompt using the template.
      const fullPrompt = `${PROMPT}
    "
    ${selectedCode}
    "
    `;
  6. 更改响应输出,描述其生成的内容。
        // update prefix to describe output
        let commentIntro = padding + commentPrefix + "Recommended name: (generated)\n";
        editBuilder.insert(selection.start, commentIntro);
        editBuilder.insert(selection.start, pyComment);
    
  7. 保存对 review.ts 文件所做的更改。

集成新命令

完成新命令的代码后,您需要将其与 扩展程序的其余部分将 extension.tspackage.json 文件更新为 将新命令添加到扩展程序中,然后启用 VS Code 以调用 新命令。

如需将 name 命令与扩展程序代码集成,请执行以下操作:

  1. 在 VS Code 中,打开 pipet-code-agent/src/extension.ts 文件。
  2. 通过添加新的 import 语句将新的代码文件添加到扩展程序中 声明。
    import { generateName } from './name';
    
  3. 将以下代码添加到 activate() 函数。
    export function activate(context: vscode.ExtensionContext) {
        ...
        vscode.commands.registerCommand('pipet-code-agent.nameFunction', generateName);
    }
  4. 保存对 extension.ts 文件所做的更改。

如需将 name 命令与扩展程序软件包集成,请执行以下操作:

  1. 在 VS Code 中,打开 pipet-code-agent/package.json 文件。
  2. 将新命令添加到软件包的 commands 部分 文件。
      "contributes": {
        "commands": [
          ...
          {
            "command": "pipet-code-agent.nameFunction",
            "title": "Pipet: Name the selected function."
          }
        ],
    
  3. 保存对 package.json 文件所做的更改。

测试新命令

完成对命令的编码并将其与 您可以对其进行测试您的新命令仅在 VS Code 中可用 Extension Development Host 窗口,而不是 修改了扩展程序的代码。

如需测试修改后的命令,请执行以下操作:

  1. 在 VS Code Pipet 扩展程序项目窗口中,通过以下方式重启调试程序: 选择 Run >重新启动调试功能,这会单独重启一个单独的 Extension Development Host 窗口。
  2. 在 VS Code Extension Development Host 窗口中,选择一些代码 。
  3. 选择查看 >Command Palette
  4. 在 Command Palette 中,输入 Pipet 并选择 Pipet: Name the 选择函数命令。

其他资源

如需详细了解 Pipet Code Agent 项目,请参阅 代码库。 如果您需要构建应用方面的帮助或正在寻找开发者 请参阅 Google 开发者社区 Discord 服务器。

生产应用

如果您打算为大量目标对象部署 Google 文档代理,请注意, Google Gemini API 可能会受到速率限制和其他 使用限制。 如果您在考虑使用 Gemini API 构建正式版应用,比如 文档代理,请查看 Google Cloud Vertex AI 以提高应用的可伸缩性和可靠性。