在 Windows 應用程式 SDK 開始使用菲矽

重要

此功能尚無法使用。 預計它將在即將推出的 Windows 應用程式 SDK 實驗通道發行中出貨。

Windows 應用程式 SDK 實驗通道包含開發初期的 API 和功能。 實驗通道中的所有 API 都受限於廣泛的修訂和中斷性變更,而且可以隨時從後續版本中移除。 不支援在生產環境中使用,且使用實驗性功能的應用程式無法發佈至 Microsoft 市集。

Phi Blob 是一種本機語言模型,您將能夠使用 Windows 應用程式 SDK 整合到 Windows 應用程式中。

作為Microsoft功能最強大的 NPU 調音當地語言模型,Phi Io 已針對 Windows Copilot+ 電腦裝置上的效率和效能優化,同時仍提供大型語言模型 (LLM) 中找到的許多功能。

此優化層級專屬於 Windows 應用程式 SDK 內的模型,不適用於其他版本的 Phi。

如需 API 詳細數據,請參閱 Windows 應用程式 SDK 中適用於 Phi 矽的 API 參考。

提示

在 GitHub 存放庫中建立新的 Windows 應用程式 SDK 問題,以提供有關這些 API 及其功能的意見反應。 (請確定您在標題中包含菲·矽

必要條件

使用 Windows 應用程式 SDK 將 Phi Mixed 整合到您的 Windows 應用程式中

使用本機 Phi 矽語言模型和 Windows 應用程式 SDK,您可以產生使用者提示的文字回應。

產生完整的回應

此範例示範如何在傳回結果之前產生完整回應的 Q&A 提示字元回應。

  1. 首先,我們會呼叫 IsAvailable 方法,並等候 MakeAvailableAsync 方法成功傳回,以確保語言模型可供使用。
  2. 一旦語言模型可供使用,我們會建立 LanguageModel 對象來參考它。
  3. 最後,我們會使用 GenerateResponseAsync 方法,將字串提示提交至模型,以傳回完整的結果。
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;

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

The molecular formula for glucose is C6H12O6.

產生部分回應的數據流

此範例示範如何產生回應給 Q&A 提示,其中回應會以部分結果數據流傳回。

  1. 首先,我們會建立 LanguageModel 對象來參考本機語言模型(我們已檢查先前代碼段中是否有語言模型存在)。
  2. 然後,我們會以異步方式擷取 GenerateResponseWithProgressAsync 呼叫中的 LanguageModelResponse,並在產生回應時寫入控制台。
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;

負責 AI

Phi 能為開發人員提供強大的可靠模型,以安全且安全的 AI 體驗建置應用程式。 已採取下列步驟,以確保 Phi 能信賴、安全且負責任地建置(我們也建議您檢閱在 Windows 上負責任產生 AI 開發中所述的最佳做法)。

  • 徹底測試和評估模型品質,以識別並降低潛在風險。
  • 建立 Phi 單色 模型卡片 ,描述模型的強度和限制,並提供預定用途的明確性。
  • 增量推出菲矽實驗版本。 在最終的 Phi 矽實驗版本之後,推出將會擴充至已簽署的應用程式,以確保惡意代碼掃描已套用至具有本機模型功能的應用程式。
  • 透過 [設定] 中的 [功能存取管理員] 提供客戶控件,讓使用者可以在裝置上關閉系統、使用者或應用程式的模型。
  • 提供本機 AI 模型以進行 con 帳篷模式 ration,以識別並篩選菲矽輸入和 AI 產生的輸出中有害內容。 此本機 con 帳篷模式 ration 模型是以 Azure AI 內容安全性模型為基礎,以進行文字仲裁並提供類似的效能。

重要

沒有任何內容安全性系統無法發生,而且偶爾會發生錯誤,因此我們建議整合補充責任 AI(RAI) 工具和做法。 如需詳細資訊,請參閱 Windows 上的負責任 Generative AI 開發。

其他資源

使用 Windows 應用程式 SDK 和 WinRT API 存取檔案和資料夾