注意
Copilot SDK 目前处于公开预览阶段。功能和可用性可能会更改。
GitHub Copilot SDK 让您能够使用您喜欢的编程语言构建由 GitHub Copilot 提供动力的应用程序。在本指南中,您将使用 npm 安装 SDK,发送第一条消息,并添加流式响应。
有关更多信息以及其他语言的步骤,请参阅位于 github/copilot-sdk 仓库中的 安装 SDK。
先决条件
在开始之前,请确保已安装 Node.js 18 或更高版本。
身份验证
按照 安装 GitHub Copilot CLI 页面上的说明来安装并使用 GitHub Copilot CLI 进行身份验证。这将允许 SDK 访问您的 GitHub 账户并使用 Copilot。
-
验证 Copilot CLI 已安装且可正常工作
Bash copilot --version
copilot --version
安装
-
创建新目录并初始化项目
Bash mkdir copilot-demo && cd copilot-demo npm init -y --init-type module
mkdir copilot-demo && cd copilot-demo npm init -y --init-type module -
安装 SDK 和 TypeScript 运行时
Bash npm install @github/copilot-sdk tsx
npm install @github/copilot-sdk tsx
发送您的第一条消息
-
创建一个新文件
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);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); -
运行代码
Bash npx tsx index.ts
npx tsx index.ts
在本示例中
CopilotClient()创建一个新客户端,用于管理与 Copilot CLI 的连接。createSession()启动一个使用指定模型的新会话。sendAndWait()发送提示并等待完整响应后再返回。
添加流式响应
您可以在生成时流式接收响应,而无需等待完整响应。这对于长响应或希望实时显示输出的交互式应用程序非常有用。
-
使用以下代码更新
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);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); -
运行代码
Bash npx tsx index.ts
npx tsx index.ts
启用流式后,响应会在生成时逐步出现。您可以订阅事件,以实时处理每个块。
assistant.message_delta在每个响应块生成时触发。session.idle在响应完成且会话准备好接收下一条消息时触发。
事件订阅方法
SDK 提供以下方法用于订阅事件
- on(handler):订阅所有事件。返回取消订阅函数。
- on(eventType, handler):订阅特定事件类型。返回取消订阅函数。
将以下代码添加到 index.ts,以订阅事件并在不再需要时取消订阅
// 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();
// 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 驱动的应用。