Windows Uygulama SDK'sında Phi Silica ile çalışmaya başlama
Önemli
Windows Uygulama SDK'sının en son deneysel kanal sürümünde kullanılabilir.
Windows Uygulama SDK'sı deneysel kanalı, geliştirmenin erken aşamalarında API'leri ve özellikleri içerir. Deneysel kanaldaki tüm API'ler kapsamlı düzeltmelere ve hataya neden olan değişikliklere tabidir ve herhangi bir zamanda sonraki sürümlerden kaldırılabilir. Deneysel özellikler üretim ortamlarında kullanılmak üzere desteklenmez ve bunları kullanan uygulamalar Microsoft Store'da yayımlanamaz.
- Phi Silica Çin'de mevcut değildir.
- Bağımsız uygulamalar desteklenmez.
Phi Silica, Windows Uygulama SDK'sınıkullanarak Windows uygulamalarınızla tümleştirebileceğiniz yerel bir dil modelidir.
Microsoft'un en güçlü NPU ayarlı yerel dil modeli olan Phi Silica, Windows Copilot+ bilgisayar cihazlarında verimlilik ve performans için iyileştirilirken, Büyük Dil Modellerinde (LLM) bulunan özelliklerin çoğunu sunmaya devam eder.
Bu iyileştirme düzeyi, Windows Uygulama SDK'sı içindeki modele özeldir ve Phi'nin diğer sürümlerinde kullanılamaz.
API ayrıntıları için bkz. Windows Uygulama SDK'sında Phi Silica api başvurusu.
içerik denetimi ayrıntıları için bkz. Oluşturma yapay zeka API'leri ile içerik güvenliği.
Bahşiş
Windows Uygulama SDK'sı GitHub deposunda (başlıkta Phi Silica dahil) yeni bir Sorun oluşturarak veya mevcutbir soruna yanıt vererek bu API'ler ve işlevleri hakkında geri bildirim sağlayın.
Önkoşullar
- Qualcomm Snapdragon® X işlemci içeren bir Copilot+ bilgisayar.
- Arm64EC (Öykünme Uyumlu) şu anda desteklenmiyor.
- Windows 11 Insider Preview Derlemesi 26120.3073 (Geliştirme ve Beta Kanalları) veya daha yeni bir sürümü cihazınızda yüklü olmalıdır.
Phi Silica'nın Windows uygulamanızla tümleştirilmesi için Windows Uygulama SDK'sını kullanma
Yerel Phi Silika dil modeli ve Windows Uygulama SDK'sı ile kullanıcı istemlerine metin yanıtları oluşturabilirsiniz.
Eksiksiz bir yanıt oluşturma
Bu örnekte, sonuç döndürülmeden önce tam yanıtın oluşturulduğu Q&A istemine nasıl yanıt oluşturulacağı gösterilmektedir.
IsAvailable
yöntemini çağırıpMakeAvailableAsync
yönteminin başarıyla döndürülmesini bekleyerek dil modelinin kullanılabilir olduğundan emin olun.Dil modeli kullanılabilir olduğunda, başvurmak için bir
LanguageModel
nesnesi oluşturun.tam sonucu döndüren
GenerateResponseAsync
yöntemini kullanarak modele bir dize istemi gönderin.
using Microsoft.Windows.AI.Generative;
if (!LanguageModel.IsAvailable())
{
var op = await LanguageModel.MakeAvailableAsync();
}
using LanguageModel languageModel = await LanguageModel.CreateAsync();
string prompt = "Provide the molecular formula for glucose.";
var result = await languageModel.GenerateResponseAsync(prompt);
Console.WriteLine(result.Response);
using namespace winrt::Microsoft::Windows::AI::Generative;
if (!LanguageModel::IsAvailable())
{
auto op = LanguageModel::MakeAvailableAsync().get();
}
auto languageModel = LanguageModel::CreateAsync().get();
std::string prompt = "Provide the molecular formula for glucose.";
auto result = languageModel.GenerateResponseAsync(prompt).get();
std::cout << result.Response() << std::endl;
Bu örnek tarafından oluşturulan yanıt:
The molecular formula for glucose is C6H12O6.
Eksiksiz bir yanıt oluşturma
API'miz özelleştirilebilir yerleşik içerik moderasyonuna sahiptir. Bu örnekte, iç içerik moderasyonu için kendi eşiklerinizi nasıl belirteceğiniz gösterilmektedir. Windows Copilot Runtime ileİçerik Moderasyonu hakkında daha fazla bilgi edinin.
- Yerel dil modeline başvurmak için bir
LanguageModel
nesnesi oluşturun. *Phi Silika dil modelinin önceki kod parçacığında kullanıcının cihazında kullanılabilir olduğundan emin olmak için bir denetim zaten yapılmıştır. - bir
ContentFilterOptions
nesnesi oluşturun ve tercih ettiğiniz değerleri belirtin. -
GenerateResponseAsync
yöntemini,ContentFilterOptions
'i bir parametre olarak kullanarak modele bir dize istemi gönderin.
using Microsoft.Windows.AI.Generative;
using LanguageModel languageModel = await LanguageModel.CreateAsync();
string prompt = "Provide the molecular formula for glucose.";
ContentFilterOptions filterOptions = new ContentFilterOptions();
filterOptions.PromptMinSeverityLevelToBlock.ViolentContentSeverity = SeverityLevel.Medium;
filterOptions.ResponseMinSeverityLevelToBlock.ViolentContentSeverity = SeverityLevel.Medium;
// var result = await languageModel.GenerateResponseAsync(null, prompt, filterOptions);
Console.WriteLine(result.Response);
using namespace winrt::Microsoft::Windows::AI::Generative;
auto languageModel = LanguageModel::CreateAsync().get();
std::string prompt = "Provide the molecular formula for glucose.";
ContentFilterOptions contentFilter = ContentFilterOptions();
contentFilter.PromptMinSeverityLevelToBlock().ViolentContentSeverity(SeverityLevel::Medium);
contentFilter.ResponseMinSeverityLevelToBlock().ViolentContentSeverity(SeverityLevel::Medium);
// auto result = languageModel.GenerateResponseAsync(nullptr, prompt, filterOptions).get();
std::cout << result.Response() << std::endl;
Kısmi yanıt akışı oluşturma
Bu örnekte, kısmi sonuçların akışı olarak yanıtın döndürüldüğü Q&A istemine nasıl yanıt oluşturulacağı gösterilmektedir.
Yerel dil modeline başvurmak için bir
LanguageModel
nesnesi oluşturun. *Phi Silika dil modelinin önceki kod parçacığında kullanıcının cihazında kullanılabilir olduğundan emin olmak için bir denetim zaten yapılmıştır.LanguageModelResponse
çağrısındaGenerateResponseWithProgressAsync
'ı zaman uyumsuz bir şekilde al. Yanıt oluşturulurken konsola yazın.
using Microsoft.Windows.AI.Generative;
using LanguageModel languageModel = await LanguageModel.CreateAsync();
string prompt = "Provide the molecular formula for glucose.";
AsyncOperationProgressHandler<LanguageModelResponse, string>
progressHandler = (asyncInfo, delta) =>
{
Console.WriteLine($"Progress: {delta}");
Console.WriteLine($"Response so far: {asyncInfo.GetResults().Response()}");
};
var asyncOp = languageModel.GenerateResponseWithProgressAsync(prompt);
asyncOp.Progress = progressHandler;
var result = await asyncOp;
Console.WriteLine(result.Response);
using namespace winrt::Microsoft::Windows::AI::Generative;
auto languageModel = LanguageModel::CreateAsync().get();
std::string prompt = "Provide the molecular formula for glucose.";
AsyncOperationProgressHandler<LanguageModelResponse, std::string> progressHandler =
[](const IAsyncOperationWithProgress<LanguageModelResponse, std::string>& asyncInfo, const std::string& delta)
{
std::cout << "Progress: " << delta << std::endl;
std::cout << "Response so far: " << asyncInfo.GetResults().Response() << std::endl;
};
auto asyncOp = languageModel.GenerateResponseWithProgressAsync(prompt);
asyncOp.Progress(progressHandler);
auto result = asyncOp.get();
std::cout << result.Response() << std::endl;
Uygulamanızda daha tutarlı yanıtlar için önceden tanımlanmış metin biçimleri uygulama
Phi Silica, uygulamanızda kullanmak üzere metin yanıt biçimlerini önceden tanımlayabilme özelliğini içerir. Metin biçimini önceden tanımlayarak aşağıdaki seçeneklerle daha tutarlı yanıt sonuçları elde edebilirsiniz:
- Metinden Tabloya: İstem yanıtını tablo biçimine dönüştürün.
- Özet: İstem metnine göre bir özet döndürür.
- Yeniden Yaz: Netlik sağlamak ve yanıtı daha kolay anlaşılır bir şekilde ifade etmek için istem metnini yeniden yazın.
Yerel dil modeline başvurmak için bir
LanguageModel
nesnesi oluşturun. *Phi Silika dil modelinin önceki kod parçacığında kullanıcının cihazında kullanılabilir olduğundan emin olmak için bir denetim zaten yapılmıştır.bir
LanguageModelOptions
nesnesi oluşturun veLanguageModelSkill
nesnesinin Beceri alanına birLanguageModelOptions
sabit listesi atayarak kullanılacak önceden tanımlanmış metin biçimini belirtin.LanguageModelSkill
numaralandırması için aşağıdaki değerler kullanılabilir.Numaralandırma Açıklama LanguageModelSkill.General
Varsayılan değer, önceden tanımlanmış biçimlendirme uygulanmadı. LanguageModelSkill.TextToTable
Varsa, istem metnini tabloya dönüştürün. LanguageModelSkill.Summarize
İstem metnine göre bir özet döndürür. LanguageModelSkill.Rewrite
Netliği ve kavramayı geliştirmek için istem metni yanıtını yeniden yazın. Ardından, LanguageModelResponse'i, GenerateResponseWithProgressAsync çağrısında zaman uyumsuz bir şekilde alırız ve yanıt oluşturulurken bunu konsola yazarız.
using Microsoft.Windows.AI.Generative;
using LanguageModel languageModel = await LanguageModel.CreateAsync();
string prompt = "This is a large amount of text I want to have summarized.";
LanguageModelOptions options = new LanguageModelOptions {
Skill = LanguageModelSkill.Summarize
};
var result = await languageModel.GenerateResponseAsync(options, prompt);
Console.WriteLine(result.Response);
using namespace winrt::Microsoft::Windows::AI::Generative;
auto languageModel = LanguageModel::CreateAsync().get();
std::string prompt = "This is a large amount of text I want to have summarized.";
LanguageModelOptions options = LanguageModelOptions();
options.Skill = LanguageModelSkill.Summarize;
auto result = languageModel.GenerateResponseAsync(options, prompt).get();
std::cout << result.Response() << std::endl;
Sorumlu yapay zeka
Phi Silica, geliştiricilere güvenli ve güvenli yapay zeka deneyimleriyle uygulama oluşturmak için güçlü ve güvenilir bir model sunar. Phi Silica'nın güvenilir, güvenli ve sorumlu bir şekilde oluşturulduğundan emin olmak için aşağıdaki adımlar atılmıştır. Uygulamanızda yapay zeka özelliklerini uygularken Windows Sorumlu Üretken Yapay Zeka Geliştirme bölümünde açıklanan en iyi yöntemleri gözden geçirmenizi öneririz.
- Olası riskleri belirlemek ve azaltmak için model kalitesinin kapsamlı bir şekilde test edilmesi ve değerlendirilmesi.
- Phi Silica deneysel sürümlerinin kademeli dağıtımı. Son Phi Silica deneysel sürümünün ardından dağıtım, yerel model özelliklerine sahip uygulamalara kötü amaçlı yazılım taramalarının uygulandığından emin olmak için imzalı uygulamalara genişletilecektir.
- Phi Silica, Metin İçeriği Denetleme API'sini içeren yerelleştirilmiş bir yapay zeka modeli sağlar. Bu API hem giriş hem de yapay zeka tarafından oluşturulan çıktıdaki zararlı olabilecek içeriği tanımlar ve filtreler. Yerel metin içerik denetleme modeli, içerik denetimi için Azure AI content Safety modelini temel alır ve benzer performans sağlar. Önem düzeyi filtre seçeneklerinin açıklaması ve bu seçeneklerin nasıl uygulandığını gösteren bir kod örneği için bkz. Windows Copilot Runtime ile Metin İçeriği Moderasyonu .
Önemli
İçerik güvenliği sistemi hatalı değildir ve ara sıra hatalar oluşabilir, bu nedenle ek Sorumlu Yapay Zeka (RAI) araçlarını ve uygulamalarını tümleştirmenizi öneririz. Daha fazla ayrıntı için bkz. Windows'da Sorumlu Üretken Yapay Zeka Geliştirme.
İlgili içerik
- Windows Copilot Runtime ile İçerik Moderasyonu
- Windows Uygulama SDK'sı ve WinRT API'leri ile dosya ve klasörlere erişme
- Windows'da Sorumlu Üretken Yapay Zeka Uygulamaları ve Özellikleri Geliştirme
- Windows Uygulama SDK'sı Phi Silika API'leri için
API başvurusu - Windows Uygulama SDK'sı
- Windows Uygulama SDK'sı için en son sürüm notlarını