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 CLI的连接。
    
  •         **
            `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 存储库中的构建你的第一个 Copilot 驱动应用