Skip to main content

开始使用 Copilot SDK

了解如何安装 Copilot SDK 并发送你的第一条消息。

谁可以使用此功能?

GitHub Copilot SDK 适用于所有 Copilot 计划。

注意

Copilot SDK 目前处于 技术预览版 阶段。 功能和可用性可能会发生更改。

GitHub Copilot SDK 允许你使用首选编程语言构建由 GitHub Copilot 提供支持的应用程序。 在本指南中,你将使用 npm 来安装 SDK,发送第一条消息,并添加流式处理响应。

有关其他语言的详细信息和步骤,请参阅 存储库中的github/copilot-sdk

先决条件

在开始之前,请确保已安装 Node.js 18 或更高版本。

Authentication

请按照 安装 GitHub Copilot CLI 中的说明安装并使用 GitHub Copilot 命令行界面 (CLI) 进行身份验证。 这将允许 SDK 访问你的 GitHub 帐户并使用 Copilot。

  1. 验证 Copilot 命令行界面(CLI) 是否已安装并运行正常:

    Bash
    copilot --version
    

安装

  1. 创建新目录并初始化项目:

    Bash
    mkdir copilot-demo && cd copilot-demo
    npm init -y --init-type module
    
  2. 安装 SDK 和 TypeScript 运行程序:

    Bash
    npm install @github/copilot-sdk tsx
    

发送第一条消息

  1. 创建新文件 index.ts 并添加以下代码。 这会向 Copilot 发送单个提示并打印响应。

    TypeScript
    import { CopilotClient } from "@github/copilot-sdk";
    
    const client = new CopilotClient();
    const session = await client.createSession({ model: "gpt-4.1" });
    
    const response = await session.sendAndWait({ prompt: "What is 2 + 2?" });
    console.log(response?.data.content);
    
    await client.stop();
    process.exit(0);
    
  2. 运行代码:

    Bash
    npx tsx index.ts
    

在本示例中:

  •         **
            `CopilotClient()`
            ** 创建一个新客户端,用于管理与 数据变量.copilot.copilot_cli_short %} 的连接。
    
  •         **
            `createSession()`
            ** 使用指定的模型启动新的会话。
    
  •         **
            `sendAndWait()`
            ** 发送提示并等待返回前的完整响应。
    

添加流响应

你可以在响应生成时流式传输响应,而不是等待完整响应。 这对于要实时显示输出的长响应或交互式应用程序非常有用。

  1. 使用以下代码更新 index.ts,以监听并在响应块到达时打印它们:

    TypeScript
    import { CopilotClient } from "@github/copilot-sdk";
    
    const client = new CopilotClient();
    const session = await client.createSession({
        model: "gpt-4.1",
        streaming: true,
    });
    
    // Listen for response chunks
    session.on("assistant.message_delta", (event) => {
        process.stdout.write(event.data.deltaContent);
    });
    session.on("session.idle", () => {
        console.log(); // New line when done
    });
    
    await session.sendAndWait({ prompt: "Tell me a short joke" });
    
    await client.stop();
    process.exit(0);
    
  2. 运行代码:

    Bash
    npx tsx index.ts
    

启用流式处理后,响应在生成时逐步显示。 可以订阅事件以实时处理每个区块:

  •         **
            `assistant.message_delta`
            ** 在响应的每个块生成时触发。
    
  •         **
            `session.idle`
            ** 在响应完成且会话准备好接收下一条消息时触发。
    

事件订阅方法

SDK 提供以下订阅事件的方法:

  •         **on(handler)**:订阅所有事件。 返回取消订阅函数。
    
  •         **on(eventType, handler)**:订阅特定事件类型。 返回取消订阅函数。
    

将以下代码添加到index.ts以订阅事件,并在不再需要时取消订阅。

TypeScript
// Subscribe to all events
const unsubscribeAll = session.on((event) => {
    console.log("Event:", event.type);
});

// Subscribe to specific event type
const unsubscribeIdle = session.on("session.idle", (event) => {
    console.log("Session is idle");
});

// Later, to unsubscribe:
unsubscribeAll();
unsubscribeIdle();

后续步骤

要继续使用 Copilot SDK 入门,请参阅 存储库中的github/copilot-sdk