Skip to main content

Начало работы с Copilot SDK

Узнайте, как установить Второй пилот SDK и отправить первое сообщение.

Кто может использовать эту функцию?

GitHub Copilot SDK доступен со всеми планами Copilot.

Примечание.

Второй пилот 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.

  1. Проверьте, что Второй пилот CLI установлен и работает:

    Bash
    copilot --version
    

Installation

  1. Создайте новый каталог и инициализируйте project:

    Bash
    mkdir copilot-demo && cd copilot-demo
    npm init -y --init-type module
    
  2. Установите SDK и TypeScript runner:

    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()`
            ** создаёт новый клиент, который управляет соединением с Второй пилот 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, обработчик)**: Подписаться на определённый тип события. Возвращает функцию отмены подписки.
    

Добавьте следующий код, чтобы 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();

Дальнейшие шаги

Чтобы продолжить getting started с помощью Второй пилот SDK, см. Build Your First Copilot-Powered App в репозитории github/copilot-sdk.