Aan de slag met Phi Silicium in de Windows App SDK
Belangrijk
Deze functie is nog niet beschikbaar. Het zal naar verwachting worden verzonden in een toekomstige release in het experimentele kanaal van de Windows App SDK.
De Windows App SDK experimenteel kanaal bevat API's en functies in vroege ontwikkelingsfasen. Alle API's in het experimentele kanaal zijn onderhevig aan uitgebreide revisies en ingrijpende veranderingen en kunnen op elk moment worden verwijderd uit toekomstige releases. Ze worden niet ondersteund voor gebruik in productieomgevingen en apps die gebruikmaken van experimentele functies kunnen niet worden gepubliceerd naar de Microsoft Store.
Phi Silicium is een lokaal taalmodel dat u kunt integreren in uw Windows-apps met behulp van de Windows App SDK.
Omdat het krachtigste NPU-afgestemde lokale taalmodel van Microsoft is, is PhiSilium geoptimaliseerd voor efficiëntie en prestaties op Windows Copilot+ pc-apparaten, terwijl nog steeds veel van de mogelijkheden beschikbaar zijn in Grote taalmodellen (LLM's).
Dit optimalisatieniveau is exclusief voor het model in de Windows App SDK en is niet beschikbaar in andere versies van Phi.
Zie API-ref voor Phi Silicium in de Windows App SDK-voor API-details.
Tip
Geef feedback over deze API's en hun functionaliteit door een nieuw probleem te maken in de GitHub-opslagplaats van de Windows App SDK. (Zorg ervoor dat u Phi Silicium in de titel opneemt!)
Voorwaarden
- CoPilot+-pc's met een Qualcomm Snapdragon® X Elite-processor.
De Windows App SDK gebruiken om Phi Silicium te integreren in uw Windows-app
Met een lokaal Phi Siliciumtaalmodel en de Windows App SDK kunt u tekstreacties genereren op gebruikersprompts.
Een volledig antwoord genereren
In dit voorbeeld ziet u hoe u een antwoord genereert op een Q-&Een prompt waarin het volledige antwoord wordt gegenereerd voordat het resultaat wordt geretourneerd.
- Eerst zorgen we ervoor dat het taalmodel beschikbaar is door de methode IsAvailable aan te roepen en te wachten tot de methode MakeAvailableAsync succesvol wordt geretourneerd.
- Zodra het taalmodel beschikbaar is, maken we een LanguageModel-object om ernaar te verwijzen.
- Ten slotte verzenden we een tekenreeksprompt naar het model met behulp van de methode GenerateResponseAsync, waarmee het volledige resultaat wordt geretourneerd.
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;
Het antwoord dat in dit voorbeeld wordt gegenereerd, is:
The molecular formula for glucose is C6H12O6.
Een stroom met gedeeltelijke antwoorden genereren
In dit voorbeeld ziet u hoe u een antwoord genereert op een Q&A-prompt waarin het antwoord wordt geretourneerd als een stroom met gedeeltelijke resultaten.
- Eerst maken we een LanguageModel-object om te verwijzen naar het lokale taalmodel (we hebben al gecontroleerd op de aanwezigheid van het taalmodel in het vorige codefragment).
- Vervolgens halen we de LanguageModelResponse- asynchroon op in een aanroep naar GenerateResponseWithProgressAsync- en schrijven we deze naar de console wanneer het antwoord wordt gegenereerd.
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;
Verantwoorde AI
PhiSilium biedt ontwikkelaars een krachtig, betrouwbaar model voor het bouwen van apps met veilige, veilige AI-ervaringen. De volgende stappen zijn genomen om ervoor te zorgen dat Phi Silica betrouwbaar, veilig en verantwoord is gebouwd (we raden ook aan de beste werkwijzen te bekijken die worden beschreven in Verantwoordelijke Generatieve AI-ontwikkeling op Windows).
- Grondig testen en evalueren van de modelkwaliteit om potentiële risico's te identificeren en te beperken.
- Het maken van een Phi Silicium modelkaart die de sterke en beperkingen van het model beschrijft en duidelijkheid biedt over beoogde toepassingen.
- Geleidelijke uitrol van experimentele releases van Phi Silica. Na de definitieve experimentele release van Phi Silicium wordt de implementatie uitgebreid naar ondertekende apps om ervoor te zorgen dat malwarescans zijn toegepast op toepassingen met lokale modelmogelijkheden.
- Klanten controle bieden via Capaciteitstoegangbeheer in de instellingen, zodat gebruikers het model op het apparaat kunnen uitschakelen voor het systeem, de gebruiker of de app.
- Geef een lokaal AI-model op voor inhoudsbeheer waarmee schadelijke inhoud wordt geïdentificeerd en gefilterd in zowel de invoer als de door AI gegenereerde uitvoer van Phi Silicium. Dit lokale model voor inhoudsbeheer is gebaseerd op het Azure AI Content Safety model voor tekstbeheer en biedt vergelijkbare prestaties.
Belangrijk
Geen inhoudsveiligheidssysteem is onfeilbaar en er kunnen incidentele fouten optreden, dus we raden u aan aanvullende responsible AI-tools en praktijken te integreren. Zie Verantwoordelijke Generatieve AI-ontwikkeling op Windowsvoor meer informatie.
Aanvullende informatiebronnen
Toegang tot bestanden en mappen met Windows App SDK en WinRT API's