Bagikan melalui


Mulai menggunakan Phi Silica di SDK Aplikasi Windows

Penting

Tersedia di saluran eksperimental terbaru rilis Windows App SDK.

Saluran eksperimental Windows App SDK mencakup API dan fitur pada tahap awal pengembangan. Semua API di saluran eksperimental tunduk pada revisi yang luas dan melanggar perubahan dan dapat dihapus dari rilis berikutnya kapan saja. Fitur eksperimental tidak didukung untuk digunakan di lingkungan produksi dan aplikasi yang menggunakannya tidak dapat diterbitkan ke Microsoft Store.

  • Phi Silica tidak tersedia di Tiongkok daratan.
  • Aplikasi mandiri tidak didukung.

Phi Silica adalah model bahasa lokal yang dapat Anda integrasikan ke dalam aplikasi Windows menggunakan Windows App SDK.

Sebagai model bahasa lokal microsoft yang paling kuat yang disetel NPU, Phi Silica dioptimalkan untuk efisiensi dan performa pada perangkat PC Windows Copilot+ sambil tetap menawarkan banyak kemampuan yang ditemukan dalam Model Bahasa Besar (LLM).

Tingkat pengoptimalan ini eksklusif untuk model dalam SDK Aplikasi Windows dan tidak tersedia di versi Phi lainnya.

Untuk detail API , lihat API ref untuk Phi Silica di Windows App SDK.

Untuk detail moderasi konten , lihat keamanan konten dengan API AI generatif.

Tip

Berikan umpan balik tentang API-API ini dan fungsionalitasnya dengan membuat Masalah baru di repositori GitHub SDK Aplikasi Windows (sertakan Phi Silica dalam judul) atau dengan menanggapi masalah yang sudah ada.

Prasyarat

Gunakan SDK Aplikasi Windows untuk mengintegrasikan Phi Silica ke dalam aplikasi Windows Anda

Dengan model bahasa Phi Silica lokal dan SDK Aplikasi Windows Anda dapat menghasilkan respons teks terhadap permintaan pengguna.

Hasilkan respons lengkap

Contoh ini menunjukkan cara menghasilkan respons ke permintaan Tanya Jawab tempat respons penuh dihasilkan sebelum hasilnya dikembalikan.

  1. Pastikan model bahasa tersedia dengan memanggil metode IsAvailable dan menunggu metode MakeAvailableAsync berhasil dikembalikan.

  2. Setelah model bahasa tersedia, buat objek LanguageModel untuk mereferensikannya.

  3. Kirim permintaan string ke model menggunakan metode GenerateResponseAsync, yang mengembalikan hasil lengkap.

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;

Respons yang dihasilkan oleh contoh ini adalah:

The molecular formula for glucose is C6H12O6.

Hasilkan respons lengkap

API kami telah membangun moderasi konten yang dapat disesuaikan. Contoh ini menunjukkan cara menentukan ambang batas Anda sendiri untuk moderasi konten internal. Pelajari selengkapnya tentang Moderasi Konten dengan Windows Copilot Runtime.

  1. Buat objek LanguageModel untuk mereferensikan model bahasa lokal. *Pemeriksaan telah dilakukan untuk memastikan model bahasa Phi Silica tersedia di perangkat pengguna di cuplikan sebelumnya.
  2. Buat objek ContentFilterOptions dan tentukan nilai pilihan Anda.
  3. Kirim permintaan string ke model menggunakan metode GenerateResponseAsync dengan ContentFilterOptions sebagai salah satu parameter.
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;

Membuat aliran respons parsial

Contoh ini menunjukkan cara menghasilkan respons terhadap perintah Tanya Jawab tempat respons dikembalikan sebagai aliran hasil parsial.

  1. Buat objek LanguageModel untuk mereferensikan model bahasa lokal. *Pemeriksaan telah dilakukan untuk memastikan model bahasa Phi Silica tersedia di perangkat pengguna di cuplikan sebelumnya.

  2. Ambil secara asinkron LanguageModelResponse dalam panggilan ke GenerateResponseWithProgressAsync. Tulis ke konsol saat respons dihasilkan.

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;

Menerapkan format teks yang telah ditentukan sebelumnya untuk respons yang lebih konsisten di aplikasi Anda

Phi Silica menyertakan kemampuan untuk menentukan format respons teks yang telah ditentukan sebelumnya untuk digunakan di aplikasi Anda. Menentukan format teks sebelumnya dapat memberikan hasil respons yang lebih konsisten dengan opsi berikut:

  • Teks ke Tabel: Konversi respons perintah menjadi format tabel.
  • Ringkas: Mengembalikan ringkasan berdasarkan teks perintah.
  • Menulis ulang: Mengulangi teks perintah untuk menambahkan kejelasan dan mengekspresikan respons dengan cara yang lebih mudah dipahami.
  1. Buat objek LanguageModel untuk mereferensikan model bahasa lokal. *Pemeriksaan telah dilakukan untuk memastikan model bahasa Phi Silica tersedia di perangkat pengguna di cuplikan sebelumnya.

  2. Buat objek LanguageModelOptions dan tentukan format teks yang telah ditentukan sebelumnya untuk digunakan dengan menetapkan enum LanguageModelSkill ke bidang Keterampilan objek LanguageModelOptions. Nilai berikut tersedia untuk enum LanguageModelSkill.

    Enum Deskripsi
    LanguageModelSkill.General Nilai default, tidak ada pemformatan yang telah ditentukan sebelumnya yang diterapkan.
    LanguageModelSkill.TextToTable Mengonversi teks perintah menjadi tabel jika berlaku.
    LanguageModelSkill.Summarize Mengembalikan ringkasan berdasarkan teks perintah.
    LanguageModelSkill.Rewrite Tulis ulang respons teks perintah untuk meningkatkan kejelasan dan pemahaman.
  3. Kemudian kami secara asinkron mengambil LanguageModelResponse dalam panggilan ke GenerateResponseWithProgressAsync dan menulisnya ke konsol saat respons dihasilkan.

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;

AI yang Bertanggung Jawab

Phi Silica memberi pengembang model yang kuat dan dapat dipercaya untuk membangun aplikasi dengan pengalaman AI yang aman dan aman. Langkah-langkah berikut telah diambil untuk memastikan Phi Silica dapat dipercaya, aman, dan dibangun secara bertanggung jawab. Sebaiknya tinjau praktik terbaik yang dijelaskan dalam Pengembangan AI Generatif yang Bertanggung Jawab di Windows saat menerapkan fitur AI di aplikasi Anda.

  • Pengujian dan evaluasi menyeluruh dari kualitas model untuk mengidentifikasi dan mengurangi potensi risiko.
  • Peluncuran inkremental dari rilis eksperimental Phi Silica. Setelah rilis eksperimental Phi Silica akhir, peluncuran akan diperluas ke aplikasi yang ditandatangani untuk memastikan bahwa pemindaian malware telah diterapkan ke aplikasi dengan kemampuan model lokal.
  • Phi Silica menyediakan model AI yang dilokalkan yang menyertakan API Moderasi Konten Teks. API ini mengidentifikasi dan memfilter konten yang berpotensi berbahaya dalam input dan output yang dihasilkan AI. Model moderasi konten teks lokal didasarkan pada model Keamanan Konten Azure AI untuk moderasi konten dan memberikan performa serupa. Lihat Moderasi Konten Teks dengan Windows Copilot Runtime untuk deskripsi opsi filter tingkat keparahan dan sampel kode yang menunjukkan cara menerapkan opsi ini.

Penting

Tidak ada sistem keamanan konten yang sempurna dan kesalahan sesekali dapat terjadi, jadi kami sarankan untuk mengintegrasikan alat dan praktik Responsible AI (RAI) tambahan. Untuk detail selengkapnya, lihat Pengembangan AI Generatif yang Bertanggung Jawab di Windows.