共用方式為


Windows 應用程式 SDK 中的 Phi Silica

使用 Windows 應用程式 SDK 將您的 Windows 應用程式連線到裝置上的語言模型,包括 Phi 二氧化鋁,我們目前最強大的 NPU 微調本機語言模型。

Windows 應用程式 SDK 會隨附數個人工智慧 (AI) API 來存取這些模型,並提供本機處理和產生聊天、數學解析、程式代碼產生、推論文字等等。

重要

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

必要條件

負責 AI

Phi 能為開發人員提供強大的可靠模型,以安全且安全的 AI 體驗建置應用程式。 已採取下列步驟,以確保 Phi 能信賴、安全且負責任地建置。

  • 徹底測試和評估模型品質,以識別並降低潛在風險。
  • 建立 Phi 單色模型卡片,描述模型的強度和限制,並提供預定用途的明確性。
  • 增量推出菲矽實驗版本。 在最終的 Phi 矽實驗版本之後,推出將會擴充至已簽署的應用程式,以確保惡意代碼掃描已套用至具有本機模型功能的應用程式。
  • 透過 [設定] 中的 [功能存取管理員] 提供客戶控件,讓使用者可以在裝置上關閉系統、使用者或應用程式的模型。

注意

Con 帳篷模式 ration 目前正在開發中。

在上述內容中,建議您檢閱在 Windows 上負責任產生 AI 開發中所述的最佳做法。

我可以使用菲·矽和 Windows 應用程式 SDK 做什麼?

使用本機 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); 

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

The molecular formula for glucose is C6H12O6.

根據字串提示取得部分結果的數據流

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

  1. 首先,我們會建立 LanguageModel 對象來參考本機語言模型(我們已檢查先前代碼段中是否有語言模型存在)。
  2. 然後,我們會以異步方式擷取 GenerateResponseWithProgressAsync 呼叫中的 LanguageModelResponse,並在產生回應時寫入控制台。
using Microsoft.Windows.AI.Generative.LanguageModel languageModel = 
     await Microsoft.Windows.AI.Generative.LanguageModel.CreateAsync(); 
 
 string prompt = "Provide the molecular formula for glucose."; 
 
  AsyncOperationProgressHandler<Microsoft.Windows.AI.Generative.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);

其他資源

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