重要
皮硅在中国不可用。
Phi 二氧化铁是一种本地语言模型,你可以使用 Windows AI Foundry 集成到 Windows 应用中。
作为 Microsoft 最强大的 NPU 优化本地语言模型,Phi Silica 针对 Windows Copilot+ PC 设备上的效率和性能进行了优化,同时仍提供大型语言模型 (LLM) 中的许多功能。
此级别的优化仅适用于 Windows 应用 SDK 中的模型,在其他版本的 Phi 中不可用。 有关 API 的详细信息,请参阅:
重要
下面是 Windows AI 功能和当前支持的 Windows 应用 SDK 版本列表。
版本 1.8 实验版(1.8.0-experimental1) - 对象擦除, Phi 硅, Phi 硅的LoRA微调, 对话摘要(文本智能)
个人预览版 - 语义搜索
版本 1.7.1 (1.7.250401001) - 所有其他 API
这些 API 仅在已收到 5 月 7 日更新的 Windows 预览体验计划预览版(WIP)设备上正常运行。 5 月 28 日至 29 日,可选更新将发布到非 WIP 设备,随后将进行 6 月 10 日的更新。 此更新将附带 Windows AI API 正常运行所需的 AI 模型。 这些更新还要求任何使用 Windows AI API 的应用在运行时获得包身份之前,无法使用这些 API。
集成 Phi Silica
使用本地 Phi 硅语言模型,可以生成对用户提示的文本响应。 首先,请确保设备上提供先决条件和模型,如 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;
生成响应
此示例演示如何使用自定义内容审查生成对 Q&A 提示的响应(请参阅 Windows AI Foundry 的内容审查)。
通过调用 GetReadyState 方法并等待 EnsureReadyAsync 方法成功返回,确保语言模型可用。
语言模型可用后,创建 一个 LanguageModel 对象来引用它。
使用 GenerateResponseAsync 方法将字符串提示提交到模型,该方法返回完整的结果。
if (LanguageModel.GetReadyState() == AIFeatureReadyState.EnsureNeeded)
{
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 硅包括内置文本转换功能(称为文本智能技能),这些功能可以通过使用本地语言模型的预定义格式提供结构化、简洁和用户友好的响应。
支持的技能包括:
- 文本到表格:将提示响应转换为结构化表格式(如果适用)。
- 摘要:返回提示文本的简明摘要。
- 重写:重新编写提示响应以提高清晰度和可读性。
以下步骤介绍如何使用文本智能技能。
创建 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;
负责任的 AI
我们已使用以下步骤的组合来确保这些映像 API 可信、安全且负责任地生成。 我们建议在应用中实施 AI 功能时,参阅 Windows 上负责任的生成式 AI 开发中描述的最佳做法。