Freigeben über


Erste Schritte mit Phi Silika

Wichtig

Phi Silica ist in China nicht verfügbar.

Phi Silika ist ein lokales Sprachmodell, das Sie mithilfe von Windows AI Foundry in Ihre Windows-Apps integrieren können.

Als das leistungsstärkste, auf NPU abgestimmte lokale Sprachmodell von Microsoft ist Phi Silica für Effizienz und Leistung auf Windows Copilot+ PCs optimiert und bietet dennoch viele der Funktionen, die in großen Sprachmodellen (LLMs) zu finden sind.

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 unter:

Wichtig

Nachfolgend finden Sie eine Liste der Windows AI-Features und der Windows App SDK-Version, in der sie derzeit unterstützt werden.

Version 1.8 Experimental (1.8.0-experimental1) - Object Erase, Phi Silica, LoRA Feinabstimmung für Phi Silica,Unterhaltungszusammenfassung (Textintelligenz)

Private Vorschau – Semantiksuche

Version 1.7.1 (1.7.250401001) – Alle anderen APIs

Diese APIs sind nur auf Windows Insider Preview (WIP)-Geräten funktionsfähig, die das 7. Mai-Update erhalten haben. Am 28.-29. Mai wird ein optionales Update auf Nicht-WIP-Geräten veröffentlicht, gefolgt vom Update vom 10. Juni. Mit diesem Update werden die KI-Modelle bereitgestellt, die für die Funktion der Windows AI-APIs erforderlich sind. Diese Updates erfordern außerdem, dass jede App, die Windows AI-APIs verwendet, dies erst tun kann, wenn der App zur Laufzeit die Paketidentität bereitgestellt wurde.

Integrieren von Phi-Silika

Mit einem lokalen Phi-Silika-Sprachmodell können Sie Textantworten für Benutzeraufforderungen generieren. Stellen Sie zunächst sicher, dass Sie die Voraussetzungen und Modelle auf Ihrem Gerät zur Verfügung haben, wie in den ersten Schritten mit Windows AI-APIs beschrieben.

Angeben der erforderlichen Namespaces

Um Phi Silika zu verwenden, stellen Sie sicher, dass Sie die erforderlichen Namespaces verwenden:

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;

Generieren einer Antwort

In diesem Beispiel wird gezeigt, wie Sie eine Antwort auf eine F&A-Eingabeaufforderung mit benutzerdefinierter Inhaltsmoderation generieren (siehe Inhaltsmoderation mit Windows AI Foundry).

  1. Stellen Sie sicher, dass das Sprachmodell verfügbar ist, indem Sie die GetReadyState-Methode aufrufen und darauf warten, dass die EnsureReadyAsync-Methode erfolgreich zurückgegeben wird.

  2. Nachdem das Sprachmodell verfügbar ist, erstellen Sie ein LanguageModel-Objekt , um darauf zu verweisen.

  3. Senden Sie eine Zeichenfolgenaufforderung an das Modell mithilfe der GenerateResponseAsync-Methode , die das vollständige Ergebnis zurückgibt.

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;

Die von diesem Beispiel generierte Antwort lautet:

C6H12O6

Fähigkeiten der Textintelligenz

Phi Silika umfasst integrierte Texttransformationsfunktionen (als Textintelligenzkenntnisse bezeichnet), die strukturierte, präzise und benutzerfreundliche Antworten über vordefinierte Formatierungen mithilfe eines lokalen Sprachmodells bereitstellen können.

Zu den unterstützten Fähigkeiten gehören:

  • Text-zu-Tabelle: Wandelt die Eingabeaufforderungsantwort gegebenenfalls in ein strukturiertes Tabellenformat um.
  • Zusammenfassung: Gibt eine kurze Zusammenfassung des Eingabeaufforderungstexts zurück.
  • Neuformulieren: Formuliert die Reaktion auf die Eingabeaufforderung um, um Klarheit und Lesbarkeit zu verbessern.

In den folgenden Schritten wird beschrieben, wie Textintelligenzkenntnisse verwendet werden.

  1. Erstellen eines LanguageModel-Objekts
    Dieses Objekt verweist auf das lokale Phi-Silika-Sprachmodell (denken Sie daran, dass das Phi-Silikatmodell auf dem Gerät verfügbar ist).

  2. Instanziieren des qualifikationsspezifischen Objekts
    Wählen Sie die entsprechende Klasse basierend auf der Fähigkeit aus, die Sie anwenden möchten, und übergeben Sie die LanguageModel-Instanz als Parameter.

  3. Aufrufen der Methode zum Ausführen der Fähigkeit
    Jede Fähigkeit macht eine asynchrone Methode verfügbar, die die Eingabe verarbeitet und ein formatiertes Ergebnis zurückgibt.

  4. Die Antwort bearbeiten
    Das Ergebnis wird als typiertes Objekt zurückgegeben, das Sie bei Bedarf drucken oder protokollieren können.

In diesem Beispiel wird die Fähigkeit zum Zusammenfassen von Text veranschaulicht.

  1. Erstellen einer LanguageModel-Instanz (languageModel).
  2. Übergeben Sie dieses LanguageModel an den TextSummarizer-Konstruktor .
  3. Übergeben Sie Text an die SummarizeAsync-Methode , und drucken Sie das Ergebnis.
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;

Verantwortungsvolle KI

Wir haben eine Kombination der folgenden Schritte verwendet, um sicherzustellen, dass diese Imageerstellungs-APIs vertrauenswürdig, sicher und verantwortungsbewusst erstellt sind. Es wird empfohlen, die bewährten Methoden zu überprüfen, die bei der Implementierung von KI-Features in Ihrer App in der verantwortungsvollen generativen KI-Entwicklung unter Windows beschrieben sind.

Siehe auch