Примечание.
Второй пилот SDK в настоящее время находится в Technical Preview. Функциональность и доступность могут меняться.
GitHub Copilot SDK позволяет создавать приложения на основе GitHub Copilot на вашем предпочитаемом языке программирования. В этом руководстве вы установите SDK с npmпомощью , отправьте первое сообщение и добавите ответы для потока.
Для получения дополнительной информации и шагов для других языков см. Установить SDK в репозитории github/copilot-sdk.
Предпосылки
Перед началом убедитесь, что у вас установлены Node.js 18 или выше.
Authentication
Следуйте инструкциям в AUTOTITLE , чтобы установить и аутентифицироваться с помощью GitHub Copilot CLI. Это позволит SDK access ваш аккаунт GitHub и использовать Copilot.
-
Проверьте, что Второй пилот CLI установлен и работает:
Bash copilot --version
copilot --version
Installation
-
Создайте новый каталог и инициализируйте project:
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 runner:
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()` ** создаёт новый клиент, который управляет соединением с Второй пилот 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, обработчик)**: Подписаться на определённый тип события. Возвращает функцию отмены подписки.
Добавьте следующий код, чтобы 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();
Дальнейшие шаги
Чтобы продолжить getting started с помощью Второй пилот SDK, см. Build Your First Copilot-Powered App в репозитории github/copilot-sdk.