Rozpocznij pracę z Phi Silica w Windows App SDK
Ważny
Dostępne w najnowszej wersji eksperymentalnego kanału zestawu SDK aplikacji systemu Windows.
Eksperymentalny kanał zestawu SDK aplikacji systemu Windows obejmuje interfejsy API i funkcje we wczesnych etapach programowania. Wszystkie interfejsy API w kanale eksperymentalnym podlegają rozległym zmianom i zmianom wprowadzającym niezgodności i mogą zostać usunięte w kolejnych wydaniach w dowolnym momencie. Funkcje eksperymentalne nie są obsługiwane w środowiskach produkcyjnych i aplikacjach, które ich używają, nie mogą być publikowane w sklepie Microsoft Store.
- Krzemionka Phi nie jest dostępna w Chinach kontynentalnych.
- Aplikacje samodzielne nie są obsługiwane.
Silica Phi to lokalny model językowy, który można zintegrować z aplikacjami systemu Windows przy użyciu zestawu SDK aplikacji systemu Windows .
Jako najbardziej zaawansowany lokalny model języka dostrojony pod kątem NPU firmy Microsoft, Phi Silica jest zoptymalizowana pod kątem efektywności i wydajności na komputerach z Windows Copilot+ PC, a jednocześnie oferuje wiele funkcji dostępnych w dużych modelach językowych (LLM).
Ten poziom optymalizacji jest wyłączny dla modelu w zestawie SDK aplikacji systemu Windows i nie jest dostępny w innych wersjach narzędzia Phi.
Aby uzyskać szczegółowe informacje o interfejsie API , zobacz interfejs API ref for Phi Silica w zestawie SDK aplikacji systemu Windows.
Aby uzyskać szczegółowe informacje na temat moderowania treści , zobacz Bezpieczeństwo treści z generatywnymi interfejsami API AI.
Napiwek
Prześlij opinię na temat tych interfejsów API i ich funkcjonalności, tworząc nowe zgłoszenie w repozytorium GitHub zestawu SDK aplikacji systemu Windows (w tym Phi Silica w tytule) lub odpowiadając na istniejące zgłoszenie.
Warunki wstępne
-
Copilot+ PC zawierający procesor Qualcomm Snapdragon® X.
- Model Arm64EC (przystosowany do emulacji) nie jest obecnie obsługiwany.
- Windows 11 Insider Preview Build 26120.3073 (kanały deweloperskie i beta) lub nowszy musi być zainstalowany na Twoim urządzeniu.
Integrowanie silicy phi z aplikacją systemu Windows przy użyciu zestawu SDK aplikacji systemu Windows
Za pomocą lokalnego modelu języka Silica Phi i zestawu SDK aplikacji systemu Windows można wygenerować odpowiedzi tekstowe na monity użytkownika.
Generowanie pełnej odpowiedzi
W tym przykładzie pokazano, jak wygenerować odpowiedź na monit Q&A, gdzie pełna odpowiedź jest wygenerowana przed zwróceniem wyniku.
Upewnij się, że model językowy jest dostępny, wywołując metodę
IsAvailable
i czekając na pomyślny zwrot z metodyMakeAvailableAsync
.Po udostępnieniu modelu językowego utwórz obiekt
LanguageModel
, aby się do niego odwoływać.Prześlij do modelu ciąg znaków przy użyciu metody
GenerateResponseAsync
zwracającej pełny wynik.
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;
Odpowiedź wygenerowana w tym przykładzie to:
The molecular formula for glucose is C6H12O6.
Generowanie pełnej odpowiedzi
Nasz interfejs API ma wbudowaną moderację zawartości, która jest dostosowywalna. W tym przykładzie pokazano, jak określić własne progi dla wewnętrznego moderowania zawartości. Dowiedz się więcej o moderowaniu zawartości za pomocą środowiska uruchomieniowego Windows Copilot.
- Utwórz obiekt
LanguageModel
, aby odwoływać się do lokalnego modelu językowego. *Sprawdzanie zostało już wykonane, aby upewnić się, że model języka Phi Silica jest dostępny na urządzeniu użytkownika w poprzednim fragmencie kodu. - Utwórz obiekt
ContentFilterOptions
i określ preferowane wartości. - Prześlij do modelu tekstowy monit przy użyciu metody
GenerateResponseAsync
zContentFilterOptions
jako jednym z parametrów.
using Microsoft.Windows.AI.Generative;
using LanguageModel languageModel = await LanguageModel.CreateAsync();
string prompt = "Provide the molecular formula for glucose.";
ContentFilterOptions filterOptions = new ContentFilterOptions();
filterOptions.PromptMinSeverityLevelToBlock.ViolentContentSeverity = SeverityLevel.Medium;
filterOptions.ResponseMinSeverityLevelToBlock.ViolentContentSeverity = SeverityLevel.Medium;
// var result = await languageModel.GenerateResponseAsync(null, prompt, filterOptions);
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.";
ContentFilterOptions contentFilter = ContentFilterOptions();
contentFilter.PromptMinSeverityLevelToBlock().ViolentContentSeverity(SeverityLevel::Medium);
contentFilter.ResponseMinSeverityLevelToBlock().ViolentContentSeverity(SeverityLevel::Medium);
// auto result = languageModel.GenerateResponseAsync(nullptr, prompt, filterOptions).get();
std::cout << result.Response() << std::endl;
Generowanie strumienia częściowych odpowiedzi
W tym przykładzie pokazano, jak wygenerować odpowiedź na monit&, w którym odpowiedź jest zwracana strumieniowo jako częściowe wyniki.
Utwórz obiekt
LanguageModel
, aby odwoływać się do lokalnego modelu językowego. *Sprawdzanie zostało już wykonane, aby upewnić się, że model języka Phi Silica jest dostępny na urządzeniu użytkownika w poprzednim fragmencie kodu.Asynchronicznie pobierz
LanguageModelResponse
podczas wywołania doGenerateResponseWithProgressAsync
. Zapisz go w konsoli w miarę generowania odpowiedzi.
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;
Stosowanie wstępnie zdefiniowanych formatów tekstu w celu uzyskania bardziej spójnych odpowiedzi w aplikacji
Silica Phi obejmuje możliwość wstępnie zdefiniowanych formatów odpowiedzi tekstowych do użycia w aplikacji. Wstępnie zdefiniowany format tekstu może zapewnić bardziej spójne wyniki odpowiedzi z następującymi opcjami:
- Tekst na tabelę: przekonwertuj odpowiedź polecenia na format tabeli.
- Summarize: Zwraca podsumowanie na podstawie tekstu zapytania.
- Przepisz: Przekształć tekst polecenia, aby dodać jasność i wyrazić odpowiedź w bardziej zrozumiały sposób.
Utwórz obiekt
LanguageModel
, aby odwoływać się do lokalnego modelu językowego. *Sprawdzanie zostało już wykonane, aby upewnić się, że model języka Phi Silica jest dostępny na urządzeniu użytkownika w poprzednim fragmencie kodu.Utwórz obiekt
LanguageModelOptions
i określ wstępnie zdefiniowany format tekstu do użycia, przypisując wyliczenieLanguageModelSkill
do pola Umiejętności obiektuLanguageModelOptions
. Następujące wartości są dostępne dla wyliczeniaLanguageModelSkill
.Wyliczenie Opis LanguageModelSkill.General
Wartość domyślna, nie zastosowano wstępnie zdefiniowanego formatowania. LanguageModelSkill.TextToTable
W razie potrzeby przekonwertuj tekst monitu na tabelę. LanguageModelSkill.Summarize
Zwraca podsumowanie na podstawie tekstu polecenia. LanguageModelSkill.Rewrite
Zapisz ponownie odpowiedź tekstową monitu, aby zwiększyć przejrzystość i zrozumienie. Następnie asynchronicznie pobieramy LanguageModelResponse w wywołaniu GenerateResponseWithProgressAsync i zapisujemy wynik na konsoli w miarę generowania odpowiedzi.
using Microsoft.Windows.AI.Generative;
using LanguageModel languageModel = await LanguageModel.CreateAsync();
string prompt = "This is a large amount of text I want to have summarized.";
LanguageModelOptions options = new LanguageModelOptions {
Skill = LanguageModelSkill.Summarize
};
var result = await languageModel.GenerateResponseAsync(options, prompt);
Console.WriteLine(result.Response);
using namespace winrt::Microsoft::Windows::AI::Generative;
auto languageModel = LanguageModel::CreateAsync().get();
std::string prompt = "This is a large amount of text I want to have summarized.";
LanguageModelOptions options = LanguageModelOptions();
options.Skill = LanguageModelSkill.Summarize;
auto result = languageModel.GenerateResponseAsync(options, prompt).get();
std::cout << result.Response() << std::endl;
Odpowiedzialne używanie sztucznej inteligencji
Silica Phi zapewnia deweloperom zaawansowany, godny zaufania model do tworzenia aplikacji z bezpiecznymi, bezpiecznymi środowiskami sztucznej inteligencji. Wykonano następujące kroki, aby upewnić się, że silica Phi jest wiarygodna, bezpieczna i zbudowana w odpowiedzialny sposób. Zalecamy zapoznanie się z najlepszymi praktykami opisanymi w odpowiedzialnym rozwojem sztucznej inteligencji dla systemu Windows podczas implementowania funkcji sztucznej inteligencji w aplikacji.
- Dokładne testowanie i ocena jakości modelu w celu zidentyfikowania i ograniczenia potencjalnych zagrożeń.
- Stopniowe wdrażanie eksperymentalnych wersji Phi Silica. Po ostatnim wydaniu eksperymentalnym Phi Silica wdrożenie rozszerzy się do podpisanych aplikacji, aby upewnić się, że skanowanie złośliwego oprogramowania zostało zastosowane do aplikacji z lokalnymi możliwościami modelu.
- Silica Phi udostępnia zlokalizowany model sztucznej inteligencji, który zawiera API do moderowania treści tekstowej. Ten interfejs API identyfikuje i filtruje potencjalnie szkodliwą zawartość zarówno w danych wejściowych, jak i w danych wyjściowych generowanych przez sztuczną inteligencję. Lokalny model moderowania zawartości tekstu jest oparty na modelu bezpieczeństwa zawartości usługi Azure AI na potrzeby moderowania zawartości i zapewnia podobną wydajność. Zobacz moderowanie zawartości tekstu za pomocą środowiska uruchomieniowego Copilot systemu Windows, aby uzyskać opis opcji filtru na poziomie ważności i przykładowy kod pokazujący sposób implementacji tych opcji.
Ważny
Nie ma nieosiągalnego systemu bezpieczeństwa zawartości i mogą wystąpić sporadyczne błędy, dlatego zalecamy zintegrowanie dodatkowych narzędzi i praktyk dotyczących odpowiedzialnej sztucznej inteligencji (RAI). Aby uzyskać więcej informacji, zobacz Odpowiedzialne tworzenie sztucznej inteligencji w systemie Windows.
Powiązana zawartość
- Moderowanie Treści przy użyciu Windows Copilot Runtime
- Uzyskiwanie dostępu do plików i folderów przy użyciu Windows App SDK i interfejsów API WinRT
- opracowywanie odpowiedzialnych aplikacji i funkcji sztucznej inteligencji w systemie Windows
- Dokumentacja referencyjna API dla interfejsów API Phi Silica w zestawie Windows App SDK
- zestaw SDK aplikacji systemu Windows
- Najnowsze informacje o wersji zestawu SDK aplikacji systemu Windows