Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Узнайте о требованиях к оборудованию Windows AI API и о том, как настроить устройство для успешного создания приложений с помощью ИИ APIsWindows.
Зависимости
Убедитесь, что компьютер поддерживает Windows AI APIs и все зависимости установлены. Это можно сделать автоматически (рекомендуется) или вручную.
Убедитесь, что ваше устройство соответствует аппаратным требованиям к ИИ Windows APIs, который вы планируете использовать. Большинству APIs требуется Copilot+ PC с NPU (мы рекомендуем устройства, перечисленные в руководстве разработчика Copilot+ PCs). Некоторые APIs также поддерживают выполнение на GPU или ЦП на устройствах без Copilot+ — подробности см. в таблице поддерживаемого оборудования.
Выполните следующую команду в терминале Windows.
winget configure https://raw.githubusercontent.com/microsoft/winget-dsc/refs/heads/main/samples/Configuration%20files/Learn%20tutorials/Windows%20AI/learn_wcr.wingetВ результате запускается файл конфигурации WinGet , выполняющий следующие задачи:
- Проверяет минимальную версию ОС.
- Включает режим разработчика.
- Устанавливает Visual Studio Community Edition с WinUI и другими необходимыми рабочими нагрузками.
- Устанавливает пакет SDK для приложений Windows.
Создание нового приложения
Ниже описано, как создать приложение, использующее Windows AI APIs (выберите вкладку для предпочтительной платформы пользовательского интерфейса).
В Visual Studio создайте новый проект WinUI, выбрав шаблон "Пустое приложение, упакованное (WinUI 3 для настольных ПК)".
В обозревателе решений щелкните правой кнопкой мыши узел проекта, выберите "Свойства>Приложения>Общие", и убедитесь, что целевая платформа установлена на .NET 8.0, а целевая операционная система — 10.0.22621 или более поздней версии.
Измените файл Package.appxmanifest (щелкните правой кнопкой мыши и выберите код представления) и добавьте следующие фрагменты кода.
Возможность
systemAIModelsдля узла<Capabilities>:<Capabilities> <systemai:Capability Name="systemAIModels"/> </Capabilities>Спецификатор
systemaiпространства имен для "IgnorableNamespaces" в узле<Package>:xmlns:systemai="http://schemas.microsoft.com/appx/manifest/systemai/windows10" IgnorableNamespaces="uap rescap systemai"Максимальная версия, протестированная в элементе
TargetDeviceFamilyузла<Dependencies>, должна быть не ниже 10.0.26226.0:<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.26226.0" />
Добавьте следующий код в файл WAPROJ, CSPROJ или .vcxproj. Этот шаг необходим для того, чтобы Visual Studio не переопределило протестированную максимальную версию.
<AppxOSMinVersionReplaceManifestVersion>false</AppxOSMinVersionReplaceManifestVersion> <AppxOSMaxVersionTestedReplaceManifestVersion>false</AppxOSMaxVersionTestedReplaceManifestVersion>Щелкните правой кнопкой мыши узел проекта и выберите пункт "Управление пакетами NuGet...".
В диспетчере пакетов NuGet установите флажок "Включить предварительную версию " и выберите пакет SDK для приложений Windows версии 1.8.250410001-experimental1. Нажмите кнопку "Установить " или "Обновить".
Убедитесь, что конфигурация сборки настроена на соответствующую архитектуру для устройства (например, ARM64 или x64).
Создайте и запустите приложение.
Если приложение запускается успешно, перейдите к добавлению первого ИИ API. В противном случае см. раздел "Устранение неполадок".
Добавьте вашего первого ИИ API
При реализации функции с помощью Windows AI APIsприложение должно сначала проверить доступность модели ИИ, поддерживающей эту функцию.
В следующем фрагменте кода показано, как проверить доступность модели и создать ответ.
В MainWindow.xaml добавьте TextBlock для отображения ответа LanguageModel .
<TextBlock x:Name="OutputText" HorizontalAlignment="Center" VerticalAlignment="Center" />В верхней части MainWindow.xaml.cs добавьте следующие
using Microsoft.Windows.AIиusing Microsoft.Windows.AI.Textдирективы.using Microsoft.Windows.AI; using Microsoft.Windows.AI.Text;В
MainWindow.xaml.cs, замените класс MainWindow следующим кодом, который подтверждает, что LanguageModel доступен, а затем отправляет запрос модели ответить с молекулярной формулой глюкозы.public sealed partial class MainWindow : Window { public MainWindow() { this.InitializeComponent(); InitAI(); } private async void InitAI() { OutputText.Text = "Loading.."; var readyState = LanguageModel.GetReadyState(); if (readyState == AIFeatureReadyState.NotReady) { var ensureResult = await LanguageModel.EnsureReadyAsync(); if (ensureResult.Status != AIFeatureReadyResultState.Success) { throw ensureResult.ExtendedError; } readyState = LanguageModel.GetReadyState(); } if (readyState != AIFeatureReadyState.Ready) { throw new Exception($"LanguageModel is unavailable: {readyState}"); } using LanguageModel languageModel = await LanguageModel.CreateAsync(); string prompt = "Provide the molecular formula of glucose."; var result = await languageModel.GenerateResponseAsync(prompt); OutputText.Text = result.Text; } }Создайте и запустите приложение.
Формула глюкозы должна появиться в текстовом блоке.
Продвинутые учебные материалы и APIs
Теперь, когда вы успешно проверили доступность модели, продолжите изучение APIs в различных учебных пособиях по ИИ Windows API.
- Узнайте больше о доступных функциях Windows AI APIs
- Phi Silica API Walkthrough
- Пошаговое руководство по распознаванию API текста
- Пошаговое руководство по визуализации API
Устранение неполадок
Если возникают ошибки, обычно это связано с оборудованием или отсутствием требуемой модели.
- Метод GetReadyState проверяет, доступна ли модель, требуемая функцией ИИ, на устройстве пользователя. Этот метод необходимо вызвать перед любым вызовом модели.
- Если модель недоступна на устройстве пользователя, можно вызвать метод EnsureReadyAsync для установки требуемой модели. Установка модели выполняется в фоновом режиме, и пользователь может проверить ход установки на странице параметров>обновления Windows.
- Метод EnsureReadyAsync имеет параметр состояния, который может отображать пользовательский интерфейс загрузки. Если у пользователя имеется неподдерживаемое оборудование, то EnsureReadyAsync завершится с ошибкой.
Определить поддержку аппаратного обеспечения на этапе выполнения
ИИ Windows APIs доступны на широком спектре аппаратного обеспечения (NPU, GPU, CPU), и не каждый API поддерживается на каждом устройстве. Ваше приложение должно выполнять действия в зависимости от результата GetReadyState прежде чем начинать какую-либо работу, включая отображение пользовательского интерфейса, зависящего от этой возможности:
AIFeatureReadyState |
Что это означает | Что должно сделать ваше приложение |
|---|---|---|
Ready |
Модель установлена, и устройство поддерживает API. | Вызовите API. |
NotReady |
Устройство поддерживает APIмодель, но ее необходимо скачать или подготовить. | Покажите диалоговое окно согласия с объяснением параметров загрузки (размер, использование сети), затем вызовите EnsureReadyAsync и сообщайте пользователю о ходе выполнения. |
DisabledByUser |
Пользователь отключил необходимый компонент ИИ. | Попросите пользователя включить компонент в параметрах Windows или скрыть или отключить эту функцию. |
NotSupportedOnCurrentSystem |
Устройство не может запустить это API (несовместимое оборудование, отсутствующие драйверы или политика). | Не вызывайте EnsureReadyAsync. Скрыть или отключить функцию или вернуться к альтернативной реализации (например, облачной службе ИИ). |
Полный пример, охватывающий все три ветви (включая диалоговое окно согласия), см. в разделе Phi Silica → шаблон рекомендуемого пользовательского интерфейса. Этот же шаблон применяется ко всем Windows AI API, которые предоставляют метод GetReadyState.
Замечание
Для APIs, у которых есть рекомендуемые характеристики ЦП (например, VSR), GetReadyState само по себе недостаточно.
GetReadyState только указывает, поддерживается ли API эта спецификация. Проверка спецификации ЦП указывает, будет ли она работать достаточно хорошо для пользовательского интерфейса. Используйте оба варианта: доступность шлюза с GetReadyState, а также параметры качества шлюза с проверкой ЦП.
См. статью об устранении неполадок и часто задаваемых вопросах по API Windows AI для получения дополнительной помощи.