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.
-
Verifique se CLI do Copilot está instalado e funcionando:
Bash copilot --version
copilot --version
Installation
-
Crie um novo diretório e inicialize seu projeto:
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 -
Instale o SDK e o executor do TypeScript:
Bash npm install @github/copilot-sdk tsx
npm install @github/copilot-sdk tsx
Enviar sua primeira mensagem
-
Crie um novo arquivo
index.tse 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);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); -
Executar o código:
Bash npx tsx index.ts
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.
-
Atualize
index.tscom 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);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); -
Executar o código:
Bash npx tsx index.ts
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.
// 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();
Próximas etapas
Para continuar a usar Copilot SDK, consulte Desenvolver seu primeiro aplicativo com tecnologia Copilot no repositório github/copilot-sdk.