Condividi tramite


Introduzione a Phi Silica

Importante

Phi Silica non è disponibile in Cina.

Phi Silica è un modello linguistico locale che è possibile integrare nelle app di Windows usando Windows AI Foundry.

Essendo 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 continua a offrire molte delle funzionalità disponibili nei Modelli di Linguaggio di Grandi Dimensioni (LLM).

Questo livello di ottimizzazione è esclusivo per il modello all'interno di Windows App SDK e non è disponibile in altre versioni di Phi. Per informazioni dettagliate sull'API, vedere:

Importante

Di seguito è riportato un elenco delle funzionalità di Intelligenza artificiale di Windows e della versione di Windows App SDK in cui sono attualmente supportate.

Versione 1.8 Sperimentale (1.8.0-experimental1) - Cancellazione degli oggetti, Phi Silica, Ottimizzazione di LoRA per Phi Silica, Riepilogo conversazioni (Intelligence per il testo)

Anteprima privata - Ricerca semantica

Versione 1.7.1 (1.7.250401001) - Tutte le altre API

Queste API saranno funzionali solo nei dispositivi Windows Insider Preview (WIP) che hanno ricevuto l'aggiornamento del 7 maggio. Il 28-29 maggio verrà rilasciato un aggiornamento facoltativo ai dispositivi non WIP, seguito dall'aggiornamento del 10 giugno. Questo aggiornamento porterà con sé i modelli di intelligenza artificiale necessari per il funzionamento delle API di intelligenza artificiale Windows. Questi aggiornamenti richiederanno anche che qualsiasi app che usa le API Windows per l'intelligenza artificiale, non sarà in grado di farlo fino a quando l'app non abbia concesso l'identità del pacchetto in fase di esecuzione.

Integrare Phi Silica

Con un modello linguistico Phi Silica locale è possibile generare risposte di testo alle richieste degli utenti. Prima di tutto, assicurarsi di avere i prerequisiti e i modelli disponibili nel dispositivo, come descritto in Introduzione alle API di intelligenza artificiale Windows.

Specificare i namespace richiesti

Per usare Phi Silica, verifica di utilizzare i namespace necessari:

using Microsoft.Windows.AI;
using Microsoft.Windows.AI.Text;
#include "winrt/Microsoft.Windows.AI.Text.h"
using namespace Microsoft::Windows::AI;
using namespace Microsoft::Windows::AI::Text;

Generare una risposta

Questo esempio mostra come generare una risposta a un prompt di domande e risposte con moderazione del contenuto personalizzata (vedere Moderazione del contenuto con Windows AI Foundry).

  1. Verificare che il modello linguistico sia disponibile chiamando il metodo GetReadyState e attendendo che il metodo EnsureReadyAsync restituisca correttamente.

  2. Quando il modello linguistico è disponibile, creare un oggetto LanguageModel per farvi riferimento.

  3. Inviare una richiesta di stringa al modello usando il metodo GenerateResponseAsync, che restituisce il risultato completo.

if (LanguageModel.GetReadyState() == AIFeatureReadyState.EnsureNeeded) 
{ 
   var op = await LanguageModel.EnsureReadyAsync(); 
} 

using LanguageModel languageModel = await LanguageModel.CreateAsync();

string prompt = "Provide the molecular formula for glucose.";

LanguageModelOptions options = new LanguageModelOptions();
ContentFilterOptions filterOptions = new ContentFilterOptions();
filterOptions.PromptMaxAllowedSeverityLevel.Violent = SeverityLevel.Minimum;
options.ContentFilterOptions = filterOptions;

var result = await languageModel.GenerateResponseAsync(prompt, options);
 
Console.WriteLine(result.Text);
if (LanguageModel::GetReadyState() == AIFeatureReadyState::NotReady)
{
    auto op = LanguageModel::EnsureReadyAsync().get();
}

auto languageModel = LanguageModel::CreateAsync().get();

const winrt::hstring prompt = L"Provide the molecular formula for glucose.";

LanguageModelResponseResult result = languageModel.GenerateResponseAsync(prompt).get();
std::cout << result.Text().c_str() << std::endl;

La risposta generata da questo esempio è:

C6H12O6

Competenze di intelligenza testuale

Phi Silica include funzionalità integrate di trasformazione del testo (note come abilità di intelligenza del testo) che possono fornire risposte strutturate, concise e facili da usare tramite la formattazione predefinita utilizzando un modello linguistico locale.

Le competenze supportate includono:

  • Da testo a tabella: converte la risposta della richiesta in un formato di tabella strutturata, se applicabile.
  • Riepilogo: restituisce un riepilogo conciso del testo della richiesta.
  • Riscrittura: riformula la risposta alla richiesta per migliorare la chiarezza e la leggibilità.

I passaggi seguenti descrivono come usare le competenze di Intelligence per il testo.

  1. Creare un oggetto LanguageModel
    Questo oggetto fa riferimento al modello linguistico Phi Silica locale (ricordarsi di verificare che il modello Phi Silica sia disponibile nel dispositivo).

  2. Istanziare l'oggetto specifico delle competenze
    Scegliere la classe appropriata in base alla competenza da applicare e passare l'istanza languageModel come parametro.

  3. Chiama il metodo per eseguire l'abilità
    Ogni competenza espone un metodo asincrono che elabora l'input e restituisce un risultato formattato.

  4. Gestire la risposta
    Il risultato viene restituito come oggetto tipizzato, che è possibile stampare o registrare in base alle esigenze.

In questo esempio viene illustrata la competenza di riepilogo del testo.

  1. Creare un'istanza languageModel (languageModel).
  2. Passare LanguageModel al costruttore TextSummarizer .
  3. Passare del testo al metodo SummarizeAsync e stampare il risultato.
using namespace Microsoft.Windows.AI.Text;

using LanguageModel languageModel = await LanguageModel.CreateAsync();

var textSummarizer = new TextSummarizer(languageModel);
string text = @"This is a large amount of text I want to have summarized.";
var result = await textSummarizer.SummarizeAsync(text);

Console.WriteLine(result.Text); 
using namespace Microsoft::Windows::AI::Text;

auto languageModel = LanguageModel::CreateAsync().get();
auto textSummarizer = TextSummarizer(languageModel);
std::string prompt = "This is a large amount of text I want to have summarized.";
auto result = textSummarizer.SummarizeAsync(prompt);

std::wcout << result.get().Text() << std::endl;

Intelligenza artificiale responsabile

È stata usata una combinazione dei passaggi seguenti per garantire che queste API di imaging siano affidabili, sicure e create in modo responsabile. È consigliabile esaminare le procedure consigliate descritte in Sviluppo di intelligenza artificiale responsabile in Windows quando si implementano le funzionalità di intelligenza artificiale nell'app.

Vedere anche