共用方式為


開始使用 Phi 矽石

重要

Phi Silica API 是受限存取功能的一部分 (請參閱 LimitedAccessFeatures 類別)。 如需更多資訊或申請解鎖令牌,請使用 LAF 存取令牌申請表

Phi Silica 是一種功能強大的 NPU 調校本地語言模型,提供大型語言模型 (LLM) 中的許多功能。 該模型採用一種稱為推測解碼的技術,利用較小的草稿模型加速文本生成,該模型可提出多個符號序列,並由主模型並行驗證。

備註

Phi Silica 功能在中國不可用。

Phi Silica 在 Windows Copilot+ PC 上優化了效率與效能,並可透過 Windows App SDK 中的 Windows AI API 整合至您的 Windows 應用程式中。

此程度的最佳化在其他版本的 Phi 中不可用。

如需 API 詳細數據,請參閱:

整合菲矽

使用本地 Phi Silica 語言模型,您可以生成對使用者提示的文字回應。 首先,請確定您的裝置上提供必要條件和模型,如 開始使用 Windows AI API 中所述。

指定必要的命名空間

若要使用 Phi 矽,請確定您使用所需的命名空間:

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;

產生回應

此範例展示了如何透過自訂內容審核生成對問答提示的回應(參見 Windows AI API 的內容審核)。

  1. 呼叫 GetReadyState 方法並等候 EnsureReadyAsync 方法成功傳回,以確保語言模型可供使用。

  2. 一旦語言模型可供使用,請建立 LanguageModel 對象來參考它。

  3. 使用 GenerateResponseAsync 方法將字串提示提交至模型,此方法會傳回完整的結果。

if (LanguageModel.GetReadyState() == AIFeatureReadyState.NotReady) 
{ 
   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;

此範例所產生的回應如下:

C6H12O6

文字智慧技能

Phi Silica 包含內建的文字處理能力(稱為文字智慧技能),可使用本地語言模型,透過預先定義的格式提供結構化、簡潔且使用者友好的回應。

支援的技能包括:

  • 文字轉表格:適當時,將提示回應格式化為結構化表格格式。
  • 摘要:傳回提示文字的精簡摘要。
  • 重寫:重寫提示文字以最佳化清晰度、可讀性,以及指定時的語氣 (或樣式)。

下列步驟說明如何使用文字智慧技能。

  1. 建立 LanguageModel 物件
    此物件會參考本機 Phi 矽語言模型(請記得確認裝置上有可用的 Phi 矽模型)。

  2. 實例化針對技能的物件
    根據您想要套用的技能選擇適當的類別,並將 LanguageModel 實例傳遞為參數。

  3. 調用方法執行技能
    每個技能都會公開異步方法,以處理輸入並傳回格式化的結果。

  4. 處理回應
    結果會以具型別物件的形式傳回,您可以視需要列印或記錄。

此範例示範文字摘要技能。

  1. 建立 LanguageModel 實例 (languageModel)。
  2. LanguageModel 傳遞至 TextSummarizer 建構函式。
  3. 將某些文字傳遞至 SummarizeAsync 方法,並列印結果。
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;

負責任的人工智慧

我們已使用下列步驟的組合,以確保這些映像 API 值得信任、安全且負責任地建置。 建議您檢閱在應用程式中實作 AI 功能時,在 Windows 上負責任產生 AI 開發 中所述的最佳做法。

另請參閱