Auf Englisch lesen

Freigeben über


Erste Schritte mit Phi Silika im Windows App SDK

Tipp

Geben Sie Feedback zu diesen APIs und deren Funktionalität, indem Sie ein neues Problem im GitHub-Repository des Windows App SDK erstellen. (Stellen Sie sicher, dass Sie Phi Silika in den Titel aufnehmen!)

Phi Silika ist ein lokales Sprachmodell, das Sie mithilfe des Windows App SDK in Ihre Windows-Apps integrieren können.

Als leistungsstärkstes lokales Sprachmodell von Microsoft ist Phi Silika für Effizienz und Leistung auf Windows Copilot+ PCs optimiert und bietet weiterhin viele der Funktionen in großen Sprachmodellen (LLMs).

Diese Optimierungsstufe ist exklusiv für das Modell im Windows App SDK und steht in anderen Versionen von Phi nicht zur Verfügung.

Api-Details finden Sie in der API-Referenz für Phi Silika im Windows App SDK.

Wichtig

Dieses Feature ist noch nicht verfügbar. Es wird erwartet, dass es in einer bevorstehenden experimentellen Kanalversion des Windows App SDK ausgeliefert wird.

Der experimentelle Kanal des Windows App SDK enthält APIs und Features in frühen Entwicklungsphasen. Alle APIs im experimentellen Kanal unterliegen umfangreichen Überarbeitungen und Breaking Changes und können jederzeit aus nachfolgenden Versionen entfernt werden. Sie werden nicht für die Verwendung in Produktionsumgebungen unterstützt, und Apps, die experimentelle Features verwenden, können nicht im Microsoft Store veröffentlicht werden.

Voraussetzungen

  • CoPilot+ PCs mit einem Qualcomm Snapdragon® X Elite Prozessor.

Verwenden des Windows App SDK zum Integrieren von Phi Silica in Ihre Windows-App

Mit einem lokalen Phi Silica-Sprachmodell und dem Windows App SDK können Sie Textantworten für Benutzeraufforderungen generieren.

Generieren einer vollständigen Antwort

In diesem Beispiel wird gezeigt, wie Sie eine Antwort auf eine F&A-Eingabeaufforderung generieren, bei der die vollständige Antwort generiert wird, bevor das Ergebnis zurückgegeben wird.

  1. Zunächst stellen wir sicher, dass das Sprachmodell verfügbar ist, indem wir die IsAvailable-Methode aufrufen und darauf warten, dass die MakeAvailableAsync-Methode erfolgreich zurückgegeben wird.
  2. Sobald das Sprachmodell verfügbar ist, erstellen wir ein LanguageModel-Objekt, um darauf zu verweisen.
  3. Schließlich senden wir eine Zeichenfolgenaufforderung an das Modell mithilfe der GenerateResponseAsync-Methode, die das vollständige Ergebnis zurückgibt.
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;

Die von diesem Beispiel generierte Antwort lautet:

The molecular formula for glucose is C6H12O6.

Generieren eines Datenstroms mit teilweisen Antworten

In diesem Beispiel wird gezeigt, wie eine Antwort auf eine F&A-Eingabeaufforderung generiert wird, in der die Antwort als Datenstrom von Teilergebnissen zurückgegeben wird.

  1. Zunächst erstellen wir ein LanguageModel-Objekt, um auf das lokale Sprachmodell zu verweisen (wir haben im vorherigen Codeausschnitt bereits überprüft, ob das Sprachmodell vorhanden ist).
  2. Anschließend rufen wir LanguageModelResponse asynchron in einem Aufruf von GenerateResponseWithProgressAsync ab und schreiben sie in die Konsole, während die Antwort generiert wird.
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;

Verantwortungsvolle KI

Phi Silica bietet Entwicklern ein leistungsstarkes, vertrauenswürdiges Modell zum Erstellen von Apps mit sicheren und geschützten KI-Erfahrungen. Die folgenden Schritte wurden unternommen, um sicherzustellen, dass Phi Silica vertrauenswürdig, sicher und verantwortungsbewusst aufgebaut ist (wir empfehlen auch, die bewährten Methoden zu überprüfen, die in "Responsible Generative AI Development" unter Windows beschrieben sind).

  • Umfassende Tests und Bewertungen der Modellqualität, um potenzielle Risiken zu identifizieren und zu mindern.
  • Erstellung einer Phi-Silika-Modellkarte, die die Stärken und Einschränkungen des Modells beschreibt und Klarheit über beabsichtigte Verwendungen bietet.
  • Inkrementelles Rollout von experimentellen Phi Silica-Versionen. Nach der finalen experimentellen Version von Phi Silica wird die Einführung auf signierte Apps ausgeweitet, um sicherzustellen, dass Malware-Scans auf Anwendungen mit lokalen Modellfähigkeiten angewendet wurden.
  • Stellen Sie benutzerdefinierte Steuerelemente über den Capability Access Manager in den Einstellungen bereit, damit Benutzer das Modell auf dem Gerät für das System, den Benutzer oder die App deaktivieren können.
  • Stellen Sie ein lokales KI-Modell für die Con Zelt-Modus ration bereit, das schädliche Inhalte sowohl in der Eingabe als auch in der KI-generierten Ausgabe von Phi-Silika identifiziert und filtert. Dieses lokale Con Zelt-Modus rationsmodell basiert auf dem Azure AI Content Safety-Modell für die Textmoderation und bietet eine ähnliche Leistung.

Wichtig

Es ist kein Sicherheitssystem für Inhalte unfehlbar, und gelegentliche Fehler können auftreten, daher empfehlen wir die Integration zusätzlicher Verantwortlicher KI -Tools und -Praktiken. Weitere Informationen finden Sie unter "Responsible Generative AI Development" unter Windows.

Zusätzliche Ressourcen

Zugreifen auf Dateien und Ordner mit Windows App SDK und WinRT-APIs