Hinweis
Copilot SDK befindet sich derzeit in der Technische Preview. Funktionalität und Verfügbarkeit können geändert werden.
Mit GitHub Copilot SDK können Sie Anwendungen erstellen, die von GitHub Copilot in Ihrer bevorzugten Programmiersprache unterstützt werden. In diesem Handbuch installieren Sie das SDK mithilfe npm, senden Sie Ihre erste Nachricht, und fügen Sie Streamingantworten hinzu.
Weitere Informationen und Schritte für andere Sprachen finden Sie unter Installieren des SDK im Repository github/copilot-sdk.
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass ** sieNode.js 18** oder höher installiert haben.
Authentifizierung
Folgen Sie den Anweisungen bei Installieren von GitHub Copilot CLI, um GitHub Copilot-CLI zu installieren und zu authentifizieren. Dadurch kann das SDK auf dein GitHub-Konto zugreifen und Copilot verwenden.
-
Stellen Sie sicher, dass Copilot CLI installiert ist und funktioniert.
Bash copilot --version
copilot --version
Installation
-
Erstellen Sie ein neues Verzeichnis und initialisieren Sie Ihr Projekt.
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 -
Installieren Sie das SDK und den TypeScript-Runner:
Bash npm install @github/copilot-sdk tsx
npm install @github/copilot-sdk tsx
Senden Ihrer ersten Nachricht
-
Erstellen Sie eine neue Datei
index.ts, und fügen Sie den folgenden Code hinzu. Dadurch wird ein einzelner Prompt an Copilot gesendet und die Antwort ausgegeben.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); -
Führen Sie den Code aus:
Bash npx tsx index.ts
npx tsx index.ts
In diesem Beispiel:
-
** `CopilotClient()` ** erstellt einen neuen Client, der die Verbindung mit Copilot CLI verwaltet. -
** `createSession()` ** startet eine neue Unterhaltungssitzung mit dem angegebenen Modell. -
** `sendAndWait()` ** sendet eine Eingabeaufforderung und wartet vor der Rückgabe auf die vollständige Antwort.
Hinzufügen von Streaming-Antworten
Anstatt auf die vollständige Antwort zu warten, können Sie sie streamen, während sie generiert wird. Dies ist nützlich für lange Antworten oder interaktive Anwendungen, in denen Sie die Ausgabe in Echtzeit anzeigen möchten.
-
Aktualisieren Sie
index.tsmit dem folgenden Code, um Antwortsegmente zu überwachen und auszugeben, sobald sie eingehen.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); -
Führen Sie den Code aus:
Bash npx tsx index.ts
npx tsx index.ts
Wenn streaming aktiviert ist, wird die Antwort inkrementell angezeigt, während sie generiert wird. Sie können Ereignisse abonnieren, um jeden Block in Echtzeit zu verarbeiten:
-
** `assistant.message_delta` ** wird für jeden generierten Teil der Antwort ausgelöst. -
** `session.idle` ** wird ausgelöst, wenn die Antwort abgeschlossen ist und die Sitzung für die nächste Nachricht bereit ist.
Ereignisabonnementmethoden
Das SDK stellt die folgenden Methoden zum Abonnieren von Ereignissen bereit:
-
**on(handler)**: Abonnieren Sie alle Ereignisse. Gibt die Abmeldefunktion zurück. -
**on(eventType, handler)**: Abonnieren eines bestimmten Ereignistyps. Gibt die Abmeldefunktion zurück.
Fügen Sie den folgenden Code zu index.ts hinzu, um Ereignisse zu abonnieren und sie abzubestellen, wenn Sie sie nicht mehr benötigen.
// 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();
Nächste Schritte
Informationen zu den weiteren ersten Schritten mit Copilot SDK findest du unter Erstellen deiner ersten Copilot-gestützten App im github/copilot-sdk-Repository.