Nota:
Copilot SDK se encuentra actualmente en Versión preliminar técnica. La funcionalidad y la disponibilidad están sujetas a cambios.
GitHub Copilot SDK permite desarrollar aplicaciones impulsadas por GitHub Copilot en su lenguaje de programación preferido. En esta guía, instalará el SDK mediante npm, enviará su primer mensaje y agregará respuestas de transmisión.
Para obtener más información y pasos para otros lenguajes, consulte Instalación del SDK en el github/copilot-sdk repositorio.
Prerrequisitos
Antes de empezar, asegúrese de que tiene Node.js 18 o posterior instalado.
Autenticación
Siga las instrucciones de Instalación de la CLI de GitHub Copilot para instalar y verificar su identidad con CLI de GitHub Copilot. Esto permitirá que el SDK acceda a la cuenta GitHub y use Copilot.
-
Compruebe que CLI de Copilot está instalado y funcionando:
Bash copilot --version
copilot --version
Installation
-
Cree un nuevo directorio e inicialice el proyecto:
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 el SDK y el ejecutor de TypeScript:
Bash npm install @github/copilot-sdk tsx
npm install @github/copilot-sdk tsx
Enviar el primer mensaje
-
Cree un nuevo archivo
index.tsy agregue el código siguiente. Esto envía una sola instrucción a Copilot e imprime la respuesta recibida.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); -
Ejecute el código:
Bash npx tsx index.ts
npx tsx index.ts
En este ejemplo:
-
** `CopilotClient()` ** crea un nuevo cliente que gestiona la conexión a CLI de Copilot. -
** `createSession()` ** inicia una nueva sesión de conversación con el modelo especificado. -
** `sendAndWait()` ** envía un mensaje y espera la respuesta completa antes de devolverla.
Agrega respuestas de streaming
En lugar de esperar la respuesta completa, puede transmitirla a medida que se genera. Esto resulta útil para respuestas largas o aplicaciones interactivas en las que desea mostrar la salida en tiempo real.
-
Actualice
index.tscon el código siguiente para escuchar e imprimir fragmentos de respuesta a medida que llegan: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); -
Ejecute el código:
Bash npx tsx index.ts
npx tsx index.ts
Con el streaming habilitado, la respuesta aparece incrementalmente a medida que se genera. Puede suscribirse a eventos para procesar cada fragmento en tiempo real:
-
** `assistant.message_delta` ** se activa para cada fragmento de la respuesta a medida que se va generando. -
** `session.idle` ** se desencadena cuando se completa la respuesta y la sesión está lista para el siguiente mensaje.
Métodos de suscripción de eventos
El SDK proporciona los métodos siguientes para suscribirse a eventos:
-
**on(handler)**: suscríbase a todos los eventos. Devuelve la función de cancelación de suscripción. -
**on(eventType, handler)**: suscríbase a un tipo de evento específico. Devuelve la función de cancelación de suscripción.
Agregue el código siguiente para suscribirse a index.ts eventos y cancelar la suscripción cuando ya no los necesite:
// 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();
Pasos siguientes
Para continuar con la introducción a Copilot SDK, consulte Crear su primera aplicación impulsada por Copilot en el repositorio github/copilot-sdk.