重要
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 的內容審核)。
呼叫 GetReadyState 方法並等候 EnsureReadyAsync 方法成功傳回,以確保語言模型可供使用。
一旦語言模型可供使用,請建立 LanguageModel 對象來參考它。
使用 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 包含內建的文字處理能力(稱為文字智慧技能),可使用本地語言模型,透過預先定義的格式提供結構化、簡潔且使用者友好的回應。
支援的技能包括:
- 文字轉表格:適當時,將提示回應格式化為結構化表格格式。
- 摘要:傳回提示文字的精簡摘要。
- 重寫:重寫提示文字以最佳化清晰度、可讀性,以及指定時的語氣 (或樣式)。
下列步驟說明如何使用文字智慧技能。
建立 LanguageModel 物件
此物件會參考本機 Phi 矽語言模型(請記得確認裝置上有可用的 Phi 矽模型)。實例化針對技能的物件
根據您想要套用的技能選擇適當的類別,並將 LanguageModel 實例傳遞為參數。調用方法執行技能
每個技能都會公開異步方法,以處理輸入並傳回格式化的結果。處理回應
結果會以具型別物件的形式傳回,您可以視需要列印或記錄。
此範例示範文字摘要技能。
- 建立 LanguageModel 實例 (
languageModel)。 - 將 LanguageModel 傳遞至 TextSummarizer 建構函式。
- 將某些文字傳遞至 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 開發 中所述的最佳做法。