Hinweis
Copilot SDK ist zurzeit in öffentliche Vorschau. Funktionalität und Verfügbarkeit können geändert werden.
GitHub Copilot SDK ermöglicht es Ihnen, Anwendungen zu erstellen, die von GitHub Copilot in Ihrer bevorzugten Programmiersprache betrieben 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 Installation von GitHub Copilot CLI, um die Installation und Authentifizierung mit GitHub Copilot CLI durchzuführen. Dadurch kann das SDK auf Ihr GitHub-Konto zugreifen und Copilot verwenden.
-
Überprüfen Sie, ob Copilot CLI installiert 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. Eine einzelne Eingabeaufforderung wird an Copilot gesendet und die Antwort gedruckt.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 zu Copilot CLIverwaltet. -
** `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
Um mit Copilot SDK weiter loszulegen, finden Sie weitere Informationen im github/copilot-sdk Repository unter Bauen Sie Ihre erste Copilot-gesteuerte App.