Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Leitfaden erfahren Sie, wie Sie ein natives C#-Addon erstellen, das die Phi-Silikat-KI-API in Ihrer Electron-App aufruft. Phi Silika ist ein kleines Sprachmodell, das lokal auf Windows 11 Geräten mit NPUs (Neural Processing Units) ausgeführt wird.
Voraussetzungen
Bevor Sie diesen Leitfaden starten, stellen Sie sicher, dass Sie folgendes haben:
- Einrichtung der Entwicklungsumgebung abgeschlossen
- Copilot+ PC - Phi Silica erfordert ein Gerät mit einer NPU (Neural Processing Unit)
Hinweis
Wenn Sie sich nicht auf einem Copilot+ PC befinden, können Sie diesem Leitfaden folgen, um den Addon-Erstellungsprozess kennenzulernen. Der Code behandelt Geräte ohne NPU-Unterstützung ordnungsgemäß, indem eine Meldung zurückgegeben wird, die angibt, dass das Modell nicht verfügbar ist.
Schritt 1: Erstellen eines nativen C#-Add-Ons
Jetzt für den spannenden Teil - erstellen wir ein natives Addon, das Windows APIs aufruft! Wir verwenden eine C#-Vorlage, die node-api-dotnet nutzt, um JavaScript und C# zu überbrücken.
npx winapp node create-addon --template cs
Dadurch wird ein csAddon/ Ordner mit:
-
addon.cs– Ihr C#-Code, der Windows-APIs aufruft -
csAddon.csproj– Project Datei mit Verweisen auf Windows SDK und Windows App SDK -
README.md- Dokumentation zur Verwendung des Add-Ons
Der Befehl fügt Ihrem Addon ein build-csAddon-Skript zum Erstellen des Addons und ein clean-csAddon-Skript zum Bereinigen von Build-Artefakten hinzu.
{
"scripts": {
"build-csAddon": "dotnet publish ./csAddon/csAddon.csproj -c Release",
"clean-csAddon": "dotnet clean ./csAddon/csAddon.csproj"
}
}
Die Vorlage enthält automatisch Verweise auf beide SDKs, sodass Sie sofort mit dem Aufrufen Windows APIs beginnen können!
Überprüfen wir, ob alles ordnungsgemäß eingerichtet ist, indem wir das Add-On erstellen:
# Build the C# addon
npm run build-csAddon
Hinweis
Sie können auch ein C++-Add-On mit npx winapp node create-addon (ohne das --template Flag) erstellen. C++-Addons verwenden node-addon-api und bieten direkten Zugriff auf Windows APIs mit maximaler Leistung. Weitere Optionen finden Sie im C++-Benachrichtigungs-Addon-Handbuch für eine exemplarische Vorgehensweise oder die vollständige Befehlsdokumentation .
Schritt 2: Hinzufügen von KI-Funktionen mit Phi-Silika
Fügen wir nun eine echte Windows App SDK-API hinzu – wir verwenden das Phi-Silikadikat KI-Modell, um Text direkt auf dem Gerät zusammenzufassen.
Öffnen Sie csAddon/addon.cs und fügen Sie diesen Code hinzu:
using System;
using System.Threading.Tasks;
using Microsoft.JavaScript.NodeApi;
using Microsoft.Windows.AI;
using Microsoft.Windows.AI.Text;
namespace csAddon
{
[JSExport]
public class Addon
{
/// <summary>
/// Summarizes the provided text using the Phi Silica AI model.
/// </summary>
/// <param name="text">The text to summarize</param>
/// <returns>A summary of the input text</returns>
[JSExport]
public static async Task<string> SummarizeText(string text)
{
try
{
var readyState = LanguageModel.GetReadyState();
if (readyState is AIFeatureReadyState.Ready or AIFeatureReadyState.NotReady)
{
if (readyState == AIFeatureReadyState.NotReady)
{
await LanguageModel.EnsureReadyAsync();
}
using LanguageModel languageModel = await LanguageModel.CreateAsync();
TextSummarizer textSummarizer = new TextSummarizer(languageModel);
var result = await textSummarizer.SummarizeParagraphAsync(text);
return result.Text;
}
return "Model is not available";
}
catch (Exception ex)
{
return $"Error calling Phi Silica API: {ex.Message}";
}
}
}
}
Hinweis
Phi Silika erfordert Windows 11 mit einem NPU-ausgestatteten Gerät (Copilot+ PC). Wenn Sie nicht über kompatible Hardware verfügen, gibt die API eine Meldung zurück, die angibt, dass das Modell nicht verfügbar ist. Sie können dieses Lernprogramm trotzdem abschließen und die App verpacken – sie behandelt Geräte problemlos ohne NPU-Unterstützung.
Schritt 3: Erstellen des C#-Add-Ons
Erstellen Sie nun das Addon erneut:
npm run build-csAddon
Dadurch wird Ihr C#-Code mithilfe der nativen AOT (Ahead-of-Time-Kompilierung) kompiliert, die:
- Erstellt eine
.nodeBinärdatei (systemeigenes Addon-Format) - Kürzen von nicht verwendetem Code für eine kleinere Paketgröße
- Erfordert keine .NET-Laufzeitumgebung auf Zielcomputern
- Bietet systemeigene Leistung
Das kompilierte Addon wird in csAddon/dist/csAddon.node sein.
Schritt 4: Testen der Windows-API
Überprüfen wir nun, ob das Add-On funktioniert, indem wir es aus dem Hauptprozess aufrufen. Öffnen Sie src/main.js und führen Sie dann die folgenden Schritte aus:
4.1. Laden des C#-Add-Ons
Fügen Sie dies mit Ihren anderen require Anweisungen oben in der Datei hinzu:
const csAddon = require('../csAddon/dist/csAddon.node');
4.2. Erstellen einer Testfunktion
Fügen Sie diese Funktion an einer beliebigen Stelle in Ihrer Datei hinzu (nach den erforderlichen Anweisungen):
const callPhiSilica = async () => {
console.log('Summarizing with Phi Silica: ')
const result = await csAddon.Addon.summarizeText("The Windows App Development CLI is a powerful tool that bridges cross-platform development with Windows-native capabilities.");
console.log('Summary:', result);
};
4.3. Aufrufen der Funktion
Fügen Sie diese Zeile am Ende der createWindow() Funktion hinzu, um die API beim Start der App zu testen:
callPhiSilica();
Wenn Sie die App ausführen, wird die Zusammenfassung auf die Konsole gedruckt. Von hier aus können Sie das Addon in Ihre App integrieren, ganz gleich, ob Sie es über ein Preload-Skript für den Renderer-Prozess bereitstellen, es über IPC-Handler aufrufen oder es direkt im Hauptprozess verwenden.
Schritt 5: Hinzufügen der erforderlichen Funktion
Bevor Sie die Phi-Silika-API verwenden können, müssen Sie die erforderliche Funktion im App-Manifest deklarieren. Öffnen Sie Package.appxmanifest und fügen Sie die systemAIModels Fähigkeit im <Capabilities> Abschnitt hinzu:
<Capabilities>
<rescap:Capability Name="runFullTrust" />
<rescap:Capability Name="systemAIModels" />
</Capabilities>
Tip
Unterschiedliche Windows-APIs erfordern unterschiedliche Funktionen. Überprüfen Sie immer die API-Dokumentation, um zu sehen, welche Funktionen erforderlich sind. Zu den gängigen gehören : microphone, webcam, location, und bluetooth.
Schritt 6: Aktualisieren der Debugidentität
Wenn Sie Objekte ändern Package.appxmanifest oder ändern, auf die im Manifest verwiesen wird (z. B. App-Symbole), müssen Sie die Debugidentität Ihrer App aktualisieren. Laufen:
npx winapp node add-electron-debug-identity
Dieser Befehl:
- Liest Ihre
Package.appxmanifest, um Details und Funktionen der App abzurufen. - Registriert
electron.exein Ihremnode_modulesmit einer temporären Identität. - Ermöglicht es Ihnen, identitätsrelevante APIs ohne vollständige MSIX-Verpackung zu testen.
Hinweis
Dieser Befehl ist bereits Teil des Skripts, das wir im postinstall Einrichtungsanleitung hinzugefügt haben, sodass es automatisch nach npm install ausgeführt wird. Sie müssen sie jedoch immer dann manuell ausführen, wenn Sie:
- Ändern
Package.appxmanifest(Ändern von Funktionen, Identitäten oder Eigenschaften) - Aktualisieren von App-Ressourcen (Symbole, Logos usw.)
- Erneutes Installieren oder Aktualisieren von Abhängigkeiten
Führen Sie nun Ihre App aus:
npm start
Überprüfen Sie die Konsolenausgabe - die Phi-Silika-Zusammenfassung sollte angezeigt werden!
⚠– Bekanntes Problem: App stürzt ab oder leeres Fenster (zum Erweitern klicken)
Es gibt einen bekannten Windows-Fehler bei der sparsamen Verpackung von Electron-Anwendungen, was dazu führt, dass die App beim Start abstürzt oder keine Webinhalte rendert. Das Problem wurde in Windows behoben, wurde jedoch noch nicht an alle Geräte weitergegeben.
Informationen zur Problemumgehung finden Sie unter "Setup der Entwicklungsumgebung ".
Nächste Schritte
Herzlichen Glückwunsch! Sie haben erfolgreich ein systemeigenes Addon erstellt, das Windows AI-APIs aufruft! 🎉
Jetzt sind Sie bereit für:
- Verpacken Ihrer App für Verteilung – Erstellen Eines MSIX-Pakets, das Sie verteilen können
Oder erkunden Sie andere Guides:
- Erstellen eines WinML Add-ons – Erfahren Sie, wie Sie Windows Machine Learning verwenden.
- Übersicht über erste Schritte – Zurück zum Hauptleitfaden
Zusätzliche Ressourcen
- winapp CLI-Dokumentation - Vollständige CLI-Referenz
- Sample Electron App – Vollständiges Arbeitsbeispiel
- Windows AI Addon for Electron - Das Windows KI-Addon für Electron ist ein Node.js natives Addon, das Zugriff auf die Windows AI-APIs direkt aus JavaScript bietet.
- AI Dev Gallery – Beispielkatalog aller KI-APIs
- Windows App SDK Samples - Sammlung von Windows App SDK Beispielen
- node-api-dotnet – C# ↔ JavaScript-Interoperabilitätsbibliothek
Windows developer