Поделиться через


Начало создания приложения с помощью ИИ Windows APIs

Узнайте о требованиях к оборудованию Windows AI API и о том, как настроить устройство для успешного создания приложений с помощью ИИ APIsWindows.

Зависимости

Убедитесь, что компьютер поддерживает Windows AI APIs и все зависимости установлены. Это можно сделать автоматически (рекомендуется) или вручную.

  1. Убедитесь, что устройство является компьютером Copilot+ (мы рекомендуем устройства, перечисленные в руководстве разработчика Copilot+ PCs).

  2. Выполните следующую команду в терминале 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 (выберите вкладку для предпочтительной платформы пользовательского интерфейса).

  1. В Visual Studio создайте новый проект WinUI, выбрав шаблон "Пустое приложение, упакованное (WinUI 3 для настольных ПК)".

    Снимок экрана: новый пользовательский интерфейс проекта Visual Studio с выбранным шаблоном WinUI.

  2. В обозревателе решений щелкните правой кнопкой мыши узел проекта, выберите "Свойства>Приложения>Общие", и убедитесь, что целевая платформа установлена на .NET 8.0, а целевая операционная система — 10.0.22621 или более поздней версии.

    Снимок экрана: область свойств проекта Visual Studio

  3. Измените файл 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" />
      
  4. Добавьте следующий код в файл WAPROJ, CSPROJ или .vcxproj. Этот шаг необходим для того, чтобы Visual Studio не переопределило протестированную максимальную версию.

    <AppxOSMinVersionReplaceManifestVersion>false</AppxOSMinVersionReplaceManifestVersion>
    <AppxOSMaxVersionTestedReplaceManifestVersion>false</AppxOSMaxVersionTestedReplaceManifestVersion>
    
  5. Щелкните правой кнопкой мыши узел проекта и выберите пункт "Управление пакетами NuGet...".

  6. В диспетчере пакетов NuGet установите флажок "Включить предварительную версию " и выберите пакет SDK для приложений Windows версии 1.8.250410001-experimental1. Нажмите кнопку "Установить " или "Обновить".

    Снимок экрана диспетчера пакетов NuGet в Visual Studio с выбранным Microsoft.WindowsAppSDK 1.8.250410001-experimental1.

  7. Убедитесь, что конфигурация сборки имеет значение ARM64.

    Снимок экрана: конфигурация сборки Visual Studio с параметром ARM64.

  8. Создайте и запустите приложение.

  9. Если приложение запускается успешно, перейдите к добавлению первого ИИ API. В противном случае см. раздел "Устранение неполадок".

Добавьте вашего первого ИИ API

При реализации функции с помощью Windows AI APIsприложение должно сначала проверить доступность модели ИИ, поддерживающей эту функцию.

В следующем фрагменте кода показано, как проверить доступность модели и создать ответ.

  1. В MainWindow.xaml добавьте TextBlock для отображения ответа LanguageModel .

    <TextBlock x:Name="OutputText" HorizontalAlignment="Center" VerticalAlignment="Center" />
    
  2. В верхней части MainWindow.xaml.cs добавьте следующую using Microsoft.Windows.AI директиву.

    using Microsoft.Windows.AI; 
    
  3. В MainWindow.xaml.cs, замените класс MainWindow следующим кодом, который подтверждает, что LanguageModel доступен, а затем отправляет запрос модели ответить с молекулярной формулой глюкозы.

    public sealed partial class MainWindow : Window
    {
        public MainWindow()
        {
            this.InitializeComponent();
            InitAI();
        }
    
        private async void InitAI()
        {
            OutputText.Text = "Loading..";
    
            if (LanguageModel.GetReadyState() == AIFeatureReadyState.EnsureNeeded)
            {
                var result = await LanguageModel.EnsureReadyAsync();
                if (result.Status != PackageDeploymentStatus.CompletedSuccess)
                {
                    throw new Exception(result.ExtendedError().Message);
                }
            }            
    
            using LanguageModel languageModel = 
               await LanguageModel.CreateAsync();
    
            string prompt = "Provide the molecular formula of glucose.";
            var result = await languageModel.GenerateResponseAsync(prompt);
            OutputText.Text = result.Response;
        }
    }
    
  4. Создайте и запустите приложение.

  5. Формула глюкозы должна появиться в текстовом блоке.

Продвинутые учебные материалы и APIs

Теперь, когда вы успешно проверили доступность модели, продолжите изучение APIs в различных учебных пособиях по ИИ Windows API.

Устранение неполадок

Если возникают ошибки, обычно это связано с оборудованием или отсутствием требуемой модели.

  • Метод GetReadyState проверяет, доступна ли модель, требуемая функцией ИИ, на устройстве пользователя. Этот метод необходимо вызвать перед любым вызовом модели.
  • Если модель недоступна на устройстве пользователя, можно вызвать метод EnsureReadyAsync для установки требуемой модели. Установка модели выполняется в фоновом режиме, и пользователь может проверить ход установки на странице параметров>обновления Windows.
  • Метод EnsureReadyAsync имеет параметр состояния, который может отображать пользовательский интерфейс загрузки. Если у пользователя имеется неподдерживаемое оборудование, то EnsureReadyAsync завершится с ошибкой.

См. статью об устранении неполадок и часто задаваемых вопросах по API Windows AI для получения дополнительной помощи.

См. также