Condividi tramite


Introduzione a Phi Silica nel SDK per app di Windows

Suggerimento

Fornire commenti e suggerimenti su queste API e sulle relative funzionalità creando un nuovo problema nel repository GitHub SDK per app di Windows. (Assicurarsi di includere Phi Silica nel titolo!)

Phi Silica è un modello linguistico locale che potrai integrare nelle tue app di Windows usando il SDK per app di Windows.

Poiché il modello di linguaggio locale ottimizzato per NPU più potente di Microsoft, Phi Silica è ottimizzato per l'efficienza e le prestazioni nei pc Windows Copilot+ e offre ancora molte delle funzionalità disponibili nei modelli di linguaggio di grandi dimensioni(LLMs).

Questo livello di ottimizzazione è esclusivo per il modello all'interno del SDK per app di Windows e non è disponibile in altre versioni di Phi.

Per informazioni dettagliate sull'API, vedere Riferimento API per Phi Silica nel SDK per app di Windows.

Importante

Questa funzionalità non è ancora disponibile. È previsto che venga fornito in una prossima versione sperimentale del canale di SDK per app di Windows.

Il canale sperimentale SDK per app di Windows include API e funzionalità nelle fasi iniziali dello sviluppo. Tutte le API nel canale sperimentale sono soggette a revisioni estese e modifiche di rilievo e possono essere rimosse dalle versioni successive in qualsiasi momento. Non sono supportate per l'uso in ambienti di produzione e le app che usano funzionalità sperimentali non possono essere pubblicate in Microsoft Store.

Prerequisiti

  • Pc CoPilot+ contenenti un processore Qualcomm Eseguion® X Elite.

Usa il SDK per app di Windows per integrare Phi Silica nella tua app di Windows

Con un modello linguistico Phi Silica locale e il SDK per app di Windows è possibile generare risposte di testo alle richieste degli utenti.

Generare una risposta completa

In questo esempio viene illustrato come generare una risposta a una richiesta di domande e risposte in cui viene generata la risposta completa prima che venga restituito il risultato.

  1. Prima di tutto, assicurarsi che il modello linguistico sia disponibile chiamando il metodo IsAvailable e attendendo che il metodo MakeAvailableAsync restituisca correttamente.
  2. Quando il modello linguistico è disponibile, viene creato un oggetto LanguageModel per farvi riferimento.
  3. Infine, viene inviato un prompt di stringa al modello usando il metodo GenerateResponseAsync , che restituisce il risultato completo.
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;

La risposta generata da questo esempio è:

The molecular formula for glucose is C6H12O6.

Generare un flusso di risposte parziali

In questo esempio viene illustrato come generare una risposta a una richiesta di domande e risposte in cui la risposta viene restituita come flusso di risultati parziali.

  1. Prima di tutto viene creato un oggetto LanguageModel per fare riferimento al modello linguistico locale (è già stata verificata la presenza del modello linguistico nel frammento precedente).
  2. Viene quindi recuperato in modo asincrono LanguageModelResponse in una chiamata a GenerateResponseWithProgressAsync e lo si scrive nella console quando viene generata la risposta.
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;

Intelligenza artificiale responsabile

Phi Silica offre agli sviluppatori un modello potente e affidabile per la creazione di app con esperienze di intelligenza artificiale sicure e sicure. Sono stati eseguiti i passaggi seguenti per assicurarsi che Phi Silica sia affidabile, sicuro e costruito in modo responsabile (è consigliabile esaminare anche le procedure consigliate descritte in Sviluppo di intelligenza artificiale responsabile in Windows).

  • Test approfonditi e valutazione della qualità del modello per identificare e mitigare i potenziali rischi.
  • Creazione di una scheda modello Phi Silica che descrive i punti di forza e le limitazioni del modello e fornisce chiarezza sugli usi previsti.
  • Implementazione incrementale delle versioni sperimentali di Phi Silica. Dopo la versione sperimentale finale di Phi Silica, l'implementazione si espanderà fino alle app firmate per assicurarsi che le analisi malware siano state applicate alle applicazioni con funzionalità del modello locale.
  • Fornire ai clienti controlli tramite Capability Access Manager in Impostazioni in modo che gli utenti possano disattivare il modello nel dispositivo per il sistema, l'utente o l'app.
  • Fornire un modello di intelligenza artificiale locale per la con modalità tenda ration che identifica e filtra il contenuto dannoso sia nell'output generato dall'input che nell'output generato dall'intelligenza artificiale di Phi Silica. Questo modello di con modalità tenda ration locale si basa sul modello Azure AI Content Safety per la moderazione del testo e offre prestazioni simili.

Importante

Nessun sistema di sicurezza dei contenuti è infallibile e possono verificarsi errori occasionali, pertanto è consigliabile integrare strumenti e procedure supplementari di intelligenza artificiale responsabile (RAI). Per altri dettagli, vedere Sviluppo di intelligenza artificiale generativa responsabile in Windows.

Risorse aggiuntive

Accedere a file e cartelle con Windows App SDK e API WinRT