Skip to main content

Introdução ao SDK do Copilot

Saiba como instalar Copilot SDK e envie sua primeira mensagem.

Quem pode usar esse recurso?

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

Observação

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

GitHub Copilot SDK permite que você crie aplicativos impulsionados por 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 Instalar o SDK no github/copilot-sdk repositório.

Pré-requisitos

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

Autenticação

Siga as instruções em Como instalar a CLI do GitHub Copilot para instalar e autenticar com 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 projeto:

    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 Copilot SDK, consulte Desenvolver seu primeiro aplicativo com tecnologia Copilot no repositório github/copilot-sdk.