Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu kılavuzda, Electron uygulamanızda Phi Silika AI API'sini çağıran bir C# yerel eklentisinin nasıl oluşturulacağı gösterilmektedir. Phi Silica, NPU'lara (Sinir İşlem Birimleri) sahip Windows 11 cihazlarda yerel olarak çalışan küçük bir dil modelidir.
Önkoşullar
Bu kılavuza başlamadan önce şunları yaptığınızdan emin olun:
- Geliştirme ortamı kurulumu tamamlandı
- Copilot+ PC - Phi Silica, NPU 'ya (Sinir İşlem Birimi) sahip bir cihaz gerektirir
Uyarı
Copilot+ PC değilseniz, eklenti oluşturma işlemini öğrenmek için bu kılavuzu yine de izleyebilirsiniz. Kod, modelin kullanılamadığını belirten bir ileti döndürerek NPU desteği olmayan cihazları düzgün bir şekilde işler.
1. Adım: C# Yerel Eklentisi Oluşturma
Şimdi de heyecan verici bölüm için Windows API'leri çağıran yerel bir eklenti oluşturalım! JavaScript ve C# arasında köprü oluşturmak için node-api-dotnet kullanan bir C# şablonu kullanacağız.
npx winapp node create-addon --template cs
Bu, şunu içeren bir csAddon/ klasör oluşturur:
-
addon.cs- Windows API'lerini çağıracak C# kodunuz -
csAddon.csproj- Windows SDK ve Windows Uygulama SDK'sı referansları içeren Project Dosyası -
README.md- Eklentiyi kullanma belgeleri
Komut, eklentiyi oluşturmak için build-csAddon betiğine ve derleme yapıtlarını temizlemek için package.json betiğine ekler.
{
"scripts": {
"build-csAddon": "dotnet publish ./csAddon/csAddon.csproj -c Release",
"clean-csAddon": "dotnet clean ./csAddon/csAddon.csproj"
}
}
Şablon her iki SDK'ya da otomatik olarak başvurular içerdiğinden, hemen Windows API'leri çağırmaya başlayabilirsiniz!
Şimdi eklentiyi oluşturarak her şeyin doğru şekilde ayarlandığını doğrulayalım:
# Build the C# addon
npm run build-csAddon
Uyarı
Ayrıca kullanarak npx winapp node create-addon (bayrak olmadan --template ) bir C++ eklentisi de oluşturabilirsiniz. C++ eklentileri node-addon-api kullanır ve maksimum performansla Windows API'lere doğrudan erişim sağlar. İzlenecek yol için C++ Bildirim Eklentisi kılavuzuna veya diğer seçenekler için tam komut belgelerine bakın.
2. Adım: Phi Silika ile Yapay Zeka Özellikleri Ekleme
Şimdi gerçek bir Windows Uygulama SDK'sı API'si ekleyelim. Metni doğrudan cihazda özetlemek için Phi Silica yapay zeka modelini kullanacağız.
Bu kodu açın csAddon/addon.cs ve ekleyin:
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}";
}
}
}
}
Uyarı
Phi Silica, NPU ile donatılmış bir cihazla (Copilot+ PC) Windows 11 gerektirir. Uyumlu donanımınız yoksa, API modelin kullanılamadığını belirten bir ileti döndürür. Yine de bu öğreticiyi tamamlayabilir ve uygulamayı paketleyebilirsiniz; NPU desteği olmayan cihazları zarif bir şekilde işler.
3. Adım: C# Eklentisini Oluşturma
Şimdi eklentiyi yeniden derleyin:
npm run build-csAddon
Bu, C# kodunuzu Yerel AOT (Önceden Derleme) kullanarak derler:
- Oluşturur
.nodeikili dosya (yerel eklenti biçimi) - Kullanılmayan kodu daha küçük paket boyutu için kırpıyor
- Hedef makinelerde .NET çalışma zamanı gerektirmez
- Yerel performans sağlar
Derlenen eklenti csAddon/dist/csAddon.node içinde olacaktır.
4. Adım: Windows API'sini test edin
Şimdi eklentiyi ana işlemden çağırarak çalıştığını doğrulayalım.
src/main.js'yi açın ve şu adımları izleyin:
4.1. C# Eklentisini yükleme
Bunu dosyanın en üstüne diğer require deyimlerinizle ekleyin:
const csAddon = require('../csAddon/dist/csAddon.node');
4.2. Test İşlevi Oluşturma
Bu işlevi dosyanızın herhangi bir yerine ekleyin (require deyimlerinden sonra):
const callPhiSilica = async () => {
console.log('Summarizing with Phi Silica: ')
const result = await csAddon.Addon.summarizeText("The Windows App Development CLI lets Electron apps call Windows-native APIs from JavaScript. Package identity enables features such as notifications and background tasks.");
console.log('Summary:', result);
};
4.3. İşlevi Çağırma
Uygulama başlatıldığında API'yi test etmek için işlevin sonuna createWindow() şu satırı ekleyin:
callPhiSilica();
Uygulamayı çalıştırdığınızda özet konsola yazdırılır. Buradan eklentiyi uygulamanızla istediğiniz şekilde tümleştirebilirsiniz. Bunun bir ön yükleme betiği aracılığıyla işleyici işlemine açıklanması, IPC işleyicilerinden çağrılması veya doğrudan ana işlemde kullanılması olabilir.
5. Adım: Gerekli Özelliği Ekleme
Phi Silica API'sini kullanabilmeniz için önce uygulama bildiriminizde gerekli özelliği bildirmeniz gerekir. Aç Package.appxmanifest ve systemAIModels özelliğini <Capabilities> bölümüne ekleyin:
<Capabilities>
<rescap:Capability Name="runFullTrust" />
<rescap:Capability Name="systemAIModels" />
</Capabilities>
İpucu
Farklı Windows API'leri farklı özellikler gerektirir. Hangi özelliklerin gerekli olduğunu görmek için HER zaman API belgelerini gözden geçirin. Yaygın olanlar microphone, webcam, location ve bluetooth'dir.
6. Adım: Hata Ayıklama Kimliğini Güncelleştirme
Manifestoda belirtilen varlıkları (uygulama simgeleri gibi) veya Package.appxmanifest'yi her değiştirdiğinizde, uygulamanızın hata ayıklama kimliğini güncelleştirmeniz gerekir. Koş!
npx winapp node add-electron-debug-identity
Bu komut:
-
Package.appxmanifestöğesini okuyarak uygulama ayrıntılarını ve özelliklerini alır -
electron.exeGeçici bir kimlikle kaydınızı gerçekleştirirnode_modules - Tam MSIX paketlemesi olmadan kimlik gerektiren API'leri test etmenizi sağlar
Uyarı
Bu komut, kurulum kılavuzuna postinstall eklediğimiz betiğin bir parçasıdır, bu nedenle komutundan sonra npm installotomatik olarak çalışır. Bununla birlikte, her seferinde el ile çalıştırmanız gerekir:
- Değiştir
Package.appxmanifest(yetenekleri, kimliği veya özellikleri değiştirme) - Uygulama varlıklarını (simgeler, logolar vb.) güncelleştirme
- Bağımlılıkları yeniden yükleme veya güncelleştirme
Şimdi uygulamanızı çalıştırın:
npm start
Konsol çıkışını kontrol edin- Phi Silika özetinin yazdırıldığını görmeniz gerekir!
⚠️ Bilinen Sorun: Uygulama Kilitlenmeleri veya Boş Pencere (genişletmek için tıklayın)
Bilinen bir Windows hatası, Electron uygulamalarının seyrek paketleme yönteminde başlangıçta çökmesine veya web içeriğini göstermemesine neden olabilir. Sorun Windows düzeltildi ancak henüz tüm cihazlara yayılmadı.
Geçici çözüm için bkz. geliştirme ortamı kurulumu .
Sonraki Adımlar
Tebrikler! Windows yapay zeka API'lerini çağıran yerel bir eklentiyi başarıyla oluşturdunuz! 🎉
Artık şunu yapmaya hazırsınız:
- Uygulamanızı Dağıtım için Paketleme - Dağıtabileceğiniz bir MSIX paketi oluşturma
Veya diğer kılavuzları keşfedin:
- WinML Eklentisi Oluşturma - Windows Machine Learning kullanmayı öğrenin
- Başlarken Genel Bakış - Ana kılavuza dönme
Ek Kaynaklar
- winapp CLI Belgeleri - Tam CLI Referansı
- Örnek Elektron Uygulaması - Tam çalışma örneği
- Windows Electron için Yapay Zeka Eklentisi - Electron için Windows Yapay Zeka Eklentisi, Windows AI API'lerine doğrudan JavaScript'ten erişim sağlayan Node.js yerel bir eklentidir.
- Yapay Zeka Geliştirme Galerisi - Tüm yapay zeka API'lerinin örnek galerisi
- Windows Uygulama SDK'sı Örnekleri - Windows Uygulama SDK'sı örnekleri koleksiyonu
- node-api-dotnet - C# ↔ JavaScript birlikte çalışma kitaplığı
Windows developer