Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Внимание
Доступно в последнем экспериментальном канале выпуске пакета 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 (каналы для разработчиков и бета-каналы) или более поздняя версия должны быть установлены на вашем устройстве.
Используйте Windows App SDK для интеграции Phi Silica в ваше приложение для Windows.
С помощью локальной языковой модели Phi Silica и пакета SDK для приложений Windows можно создавать текстовые ответы на запросы пользователей.
Создание полного ответа
В этом примере показано, как создать ответ на запрос Q&A, в котором создается полный ответ до возврата результата.
Убедитесь, что языковая модель доступна путем вызова метода GetReadyState и ожидания успешного возврата метода EnsureReadyAsync .
После того как языковая модель будет доступна, создайте объект LanguageModel для его ссылки.
Отправьте строковый запрос в модель с помощью метода GenerateResponseAsync , который возвращает полный результат.
using Microsoft.Windows.AI.Generative;
if (!LanguageModel.GetReadyState())
{
var op = await LanguageModel.EnsureReadyAsync();
}
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::GetReadyState())
{
auto op = LanguageModel::EnsureReadyAsync().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. Следующие значения доступны для enum 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