Windows Uygulama SDK'sında Phi Silica ile çalışmaya başlama
Makale
Ö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.
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.
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ıp MakeAvailableAsync 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.
C#
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:
Output
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.
C#
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.
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:
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 ve LanguageModelSkill nesnesinin Beceri alanına bir LanguageModelOptions 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.
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.
Microsoft'un cihaz içi işleme ve sohbet oluşturma, metin üzerinde düşünme, matematik çözme, kod oluşturma ve daha fazlasını sağlayan en güçlü NPU ayarlı dil modeli Phi Silica gibi yerel dil modellerine erişebilen Windows Uygulama SDK'sı API'leri hakkında bilgi edinin.
Windows Uygulama SDK'sı ile birlikte gelen ve görüntüleri ölçeklendirmek ve keskinleştirmenin yanı sıra görüntüdeki nesneleri tanımlamak için kullanılabilen yeni Yapay Zeka (AI) görüntüleme özellikleri hakkında bilgi edinin.
Yapay zeka (AI) tarafından desteklenen ve görüntüleri hem ölçeklendirebilen hem de netleştirebilen (Görüntü Süper Çözünürlüğü) ve görüntü içindeki nesneleri (Görüntü Segmentasyonu) tanımlayan Windows Uygulama SDK'sı API'leri hakkında bilgi edinin.
Windows Uygulama SDK'sı ile birlikte gelen ve bir görüntüdeki karakterleri tanımlamak, sözcükleri, çizgileri, çokgen sınırları tanımak ve oluşturulan eşleşmeler için güvenilirlik düzeyleri sağlamak için kullanılabilen yeni Yapay Zeka (AI) metin tanıma özellikleri hakkında bilgi edinin.