Начало работы с Phi Silica в пакете SDK для приложений Windows
Внимание
Доступно в последнем экспериментальном канале выпуске пакета SDK для приложений Windows.
Экспериментальный канал пакета SDK для приложений Windows включает API и функции на ранних этапах разработки. Все API-интерфейсы в экспериментальном канале подвергаются обширным исправлениям и критическим изменениям и могут быть удалены из последующих выпусков в любое время. Экспериментальные функции не поддерживаются для использования в рабочих средах и приложениях, которые используют их, не могут быть опубликованы в Microsoft Store.
- Фи Силика недоступна в материке Китая.
- Автономные приложения не поддерживаются.
Phi Silica — это локальная языковая модель, которую можно интегрировать в приложения Windows с помощью пакета SDK для приложений Windows.
Так как самая мощная модель локального языка, настроенная на локальном процессоре Майкрософт, Phi Silica оптимизирована для повышения эффективности и производительности на устройствах Windows Copilot+ pCs, предлагая множество возможностей, найденных в крупных языковых моделях (LLMs).
Этот уровень оптимизации является эксклюзивным для модели в пакете SDK для приложений Windows и недоступен в других версиях Phi.
Для получения сведений API, см. справочник API по Phi Silica в Windows App SDK для Windows.
Сведения о модерации содержимого см. в безопасности содержимого с генеративными API ИИ.
Совет
Предоставьте отзыв об этих API и их функциональных возможностях, создав новый проблему в репозитории GitHub Windows App SDK (включая Phi Silica в заголовке) или ответив на существующую проблему.
Необходимые компоненты
-
Copilot+ PC с процессором Qualcomm Snapdragon® X.
- Arm64EC (совместимая с эмуляцией) в настоящее время не поддерживается.
- Windows 11 Insider Preview Build 26120.3073 (каналы для разработчиков и бета-каналы) или более поздняя версия должны быть установлены на вашем устройстве.
Использование пакета SDK для приложений Windows для интеграции Phi Silica в приложение Для Windows
С помощью локальной языковой модели Phi Silica и пакета SDK для приложений Windows можно создавать текстовые ответы на запросы пользователей.
Создание полного ответа
В этом примере показано, как создать ответ на запрос Q&A, в котором создается полный ответ до возврата результата.
Убедитесь, что языковая модель доступна путем вызова метода
IsAvailable
и ожидания успешного возврата методаMakeAvailableAsync
.После того как языковая модель будет доступна, создайте объект
LanguageModel
для ссылки на него.Отправьте строковый запрос в модель с помощью метода
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.
Создание полного ответа
В нашем API имеется встроенная модерация содержимого, которую можно настраивать. В этом примере показано, как указать собственные пороговые значения для внутренней модерации контента. Узнайте больше о модерации контента с помощью среды выполнения Windows Copilot.
- Создайте объект
LanguageModel
для ссылки на локальную языковую модель. *Проверка уже выполнена, чтобы убедиться, что языковая модель Phi Silica доступна на устройстве пользователя в предыдущем фрагменте кода. - Создайте объект
ContentFilterOptions
и укажите предпочитаемые значения. - Отправьте строковый запрос в модель с помощью метода
GenerateResponseAsync
сContentFilterOptions
в качестве одного из параметров.
using Microsoft.Windows.AI.Generative;
using LanguageModel languageModel = await LanguageModel.CreateAsync();
string prompt = "Provide the molecular formula for glucose.";
ContentFilterOptions filterOptions = new ContentFilterOptions();
filterOptions.PromptMinSeverityLevelToBlock.ViolentContentSeverity = SeverityLevel.Medium;
filterOptions.ResponseMinSeverityLevelToBlock.ViolentContentSeverity = SeverityLevel.Medium;
// var result = await languageModel.GenerateResponseAsync(null, prompt, filterOptions);
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.";
ContentFilterOptions contentFilter = ContentFilterOptions();
contentFilter.PromptMinSeverityLevelToBlock().ViolentContentSeverity(SeverityLevel::Medium);
contentFilter.ResponseMinSeverityLevelToBlock().ViolentContentSeverity(SeverityLevel::Medium);
// auto result = languageModel.GenerateResponseAsync(nullptr, prompt, filterOptions).get();
std::cout << result.Response() << std::endl;
Создание потока частичных ответов
В этом примере показано, как создать ответ на запрос Q&A, где ответ возвращается в виде потока частичных результатов.
Создайте объект
LanguageModel
для ссылки на локальную языковую модель. *Проверка уже выполнена, чтобы убедиться, что языковая модель Phi Silica доступна на устройстве пользователя в предыдущем фрагменте кода.Асинхронно извлечь
LanguageModelResponse
при вызовеGenerateResponseWithProgressAsync
. Выводите его в консоль по мере генерации ответа.
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;
Применение стандартных текстовых форматов для более согласованных ответов в приложении
Phi Silica включает возможность предопределить форматы текстовых ответов для использования в приложении. Предопределяя текстовый формат, можно обеспечить более согласованные результаты ответа со следующими параметрами:
- Text to Table: Конвертировать ответ запроса в формат таблицы.
- Сводка: возвращает сводку на основе текста запроса.
- переформулирование: перефразируйте текст запроса, чтобы добавить ясность и выразить ответ более понятным и доступным образом.
Создайте объект
LanguageModel
для ссылки на локальную языковую модель. *Проверка уже выполнена, чтобы убедиться, что языковая модель Phi Silica доступна на устройстве пользователя в предыдущем фрагменте кода.Создайте объект
LanguageModelOptions
и задайте предопределенный текстовый формат для его использования, присвоив перечислениеLanguageModelSkill
полю Skill объектаLanguageModelOptions
. В перечисленииLanguageModelSkill
доступны следующие значения.Перечисление Описание LanguageModelSkill.General
Значение по умолчанию, не применяется предопределенное форматирование. LanguageModelSkill.TextToTable
Преобразуйте текст запроса в таблицу, если применимо. LanguageModelSkill.Summarize
Возвращает сводку на основе текста запроса. LanguageModelSkill.Rewrite
Перепишите текст отклика на запрос, чтобы улучшить его ясность и понимание. Затем мы асинхронно извлекаем languageModelResponse в вызове GenerateResponseWithProgressAsync и запишите его в консоль при создании ответа.
using Microsoft.Windows.AI.Generative;
using LanguageModel languageModel = await LanguageModel.CreateAsync();
string prompt = "This is a large amount of text I want to have summarized.";
LanguageModelOptions options = new LanguageModelOptions {
Skill = LanguageModelSkill.Summarize
};
var result = await languageModel.GenerateResponseAsync(options, prompt);
Console.WriteLine(result.Response);
using namespace winrt::Microsoft::Windows::AI::Generative;
auto languageModel = LanguageModel::CreateAsync().get();
std::string prompt = "This is a large amount of text I want to have summarized.";
LanguageModelOptions options = LanguageModelOptions();
options.Skill = LanguageModelSkill.Summarize;
auto result = languageModel.GenerateResponseAsync(options, prompt).get();
std::cout << result.Response() << std::endl;
Ответственное применение ИИ
Phi Silica предоставляет разработчикам мощную, надежную модель для создания приложений с безопасными, безопасными интерфейсами искусственного интеллекта. Ниже приведены шаги по обеспечению надежности, безопасности и ответственной сборки Phi Silica. Мы рекомендуем ознакомиться с рекомендациями, описанными в разделе Ответственная разработка ИИ на Windows при реализации функций ИИ в приложении.
- Тщательное тестирование и оценка качества модели для выявления и устранения потенциальных рисков.
- Добавочное развертывание экспериментальных выпусков Phi Silica. После окончательного экспериментального выпуска Phi Silica развертывание будет расширено для подписанных приложений, чтобы обеспечить применение сканирования вредоносных программ к приложениям с возможностями локальной модели.
- Phi Silica предоставляет локализованную модель ИИ, которая включает API модерации текста. Этот API определяет и фильтрует потенциально вредное содержимое как во входных данных, так и в выходных данных, созданных искусственным интеллектом. Модель модерации содержимого локального текста основана на модели безопасности содержимого ИИ Azure для модерации контента и обеспечивает аналогичную производительность. См. Модерация текстового содержимого с помощью среды выполнения Windows Copilot для описания параметров фильтрации уровня серьезности и примера кода, демонстрирующего реализацию этих параметров.
Внимание
Система безопасности содержимого не является неразрешимой и иногда возникает ошибка, поэтому мы рекомендуем интегрировать дополнительные инструменты и методики ответственного ИИ. Дополнительные сведения см. в статье "Разработка ответственного искусственного интеллекта" в Windows.
Связанный контент
- Модерация содержимого с помощью среды выполнения Windows Copilot
- Доступ к файлам и папкам с помощью пакета SDK для приложений Windows и API WinRT
- разработка ответственных генеративных приложений и функций ИИ в Windows
- Ссылка на API для API Phi Silica в пакете SDK для приложений Windows
- Пакет SDK для приложений Windows
- Последние заметки о выпуске пакета SDK для приложений Windows