Skip to main content

Introdução ao SDK do Copilot

Saiba como instalar o SDK do Copilot e enviar sua primeira mensagem.

Quem pode usar esse recurso?

SDK do GitHub Copilot está disponível com todos os planos do Copilot.

Observação

SDK do Copilot está atualmente em versão prévia técnica. A funcionalidade e a disponibilidade estão sujeitas a alterações.

O SDK do GitHub Copilot permite que você crie aplicativos da plataforma do GitHub Copilot em sua linguagem de programação preferida. Neste guia, você instalará o SDK usando npm, enviará sua primeira mensagem e adicionará respostas de streaming.

Para obter mais informações e etapas para outros idiomas, consulte Instale o SDK no repositório github/copilot-sdk.

Pré-requisitos

Antes de começar, verifique se você tem o Node.js 18 ou posterior instalado.

Autenticação

Siga as instruções em Instalando o CLI do GitHub Copilot para instalar e se autenticar com a CLI do GitHub Copilot. Isso permitirá que o SDK acesse sua conta GitHub e use Copilot.

  1. Verifique se CLI do Copilot está instalado e funcionando:

    Bash
    copilot --version
    

Installation

  1. Crie um novo diretório e inicialize seu project:

    Bash
    mkdir copilot-demo && cd copilot-demo
    npm init -y --init-type module
    
  2. Instale o SDK e o executor do TypeScript:

    Bash
    npm install @github/copilot-sdk tsx
    

Enviar sua primeira mensagem

  1. Crie um novo arquivo index.ts e adicione o código a seguir. Isso envia um único prompt para Copilot e imprime a resposta.

    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. Executar o código:

    Bash
    npx tsx index.ts
    

Neste exemplo:

  •         **
            `CopilotClient()`
            ** cria um novo cliente que gerencia a conexão com CLI do Copilot.
    
  •         **
            `createSession()`
            ** inicia uma nova sessão de conversa com o modelo especificado.
    
  •         **
            `sendAndWait()`
            ** envia um prompt e aguarda a resposta completa antes de retornar.
    

Adicionar respostas de streaming

Em vez de aguardar a resposta completa, você pode transmiti-la conforme ela é gerada. Isso é útil para respostas longas ou aplicativos interativos em que você deseja exibir a saída em tempo real.

  1. Atualize index.ts com o código a seguir para escutar e imprimir partes de resposta à medida que chegam:

    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. Executar o código:

    Bash
    npx tsx index.ts
    

Com o streaming habilitado, a resposta aparece incrementalmente conforme é gerada. Você pode assinar eventos para processar cada bloco em tempo real:

  •         **
            `assistant.message_delta`
            ** dispara para cada parte da resposta conforme ela é gerada.
    
  •         **
            `session.idle`
            ** aciona quando a resposta é concluída e a sessão está pronta para a próxima mensagem.
    

Métodos de assinatura de evento

O SDK fornece os seguintes métodos para assinar eventos:

  •         **on(handler)**: assine todos os eventos. Retorna a função de cancelamento de assinatura.
    
  •         **on(eventType, handler)**: assine um tipo de evento específico. Retorna a função de cancelamento de assinatura.
    

Adicione o seguinte código em index.ts para assinar eventos e cancelar a assinatura quando não for mais necessário.

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();

Próximas etapas

Para continuar a usar o SDK do Copilot, consulte Desenvolver seu primeiro aplicativo com a plataforma do Copilot no repositório github/copilot-sdk.