Краткое руководство. Завершения для команд IntelliCode: основанные на искусственном интеллекте предложения завершений IntelliSense для кода

Visual Studio IntelliCode применяет машинное обучение для предоставления полезных и контекстно-зависимых предложений по завершению кода в процессе его написания.

Чтобы получить контекстные предложения IntelliCode, помеченные звездочками, для собственных типов или других типов, которые обычно не обнаруживаются в открытом коде, используйте завершения для команд. Завершения кода для команды разработчиков обучают модель только для вашей базы кода. Вы также можете передать их пользователям с доступом к вашему коду и автоматически обновлять их, включив задачу в свой конвейер сборки CI.

Получение завершений для команд

Получить завершения для команд в базе кода очень легко.

Если используется локальная модель, просто согласитесь обучить связанную с компьютером модель, приняв соответствующий запрос или установив флажок "Я принимаю эти условия". Мы побеспокоимся об остальном. Если вы хотите поделиться моделями с другими пользователями своего репозитория, автоматизируйте обучение в рамках своей сборки CI.

Обучение моделей завершений для команд

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

  1. Откройте репозиторий с решением, на основе которого необходимо выполнить обучение.

  2. Visual Studio отобразит запрос в уведомлении на "золотой панели", в котором вы можете предоставить согласие на обучение модели для такого репозитория. Вы можете сделать это прямо на "золотой панели".

  3. Если вы просто закрыли "золотую панель", вы можете создать модель, открыв окно IntelliCode для своего решения: выберите Вид > Другие окна > IntelliCode или выполните поиск по строке IntelliCode в поиске Visual Studio (CTRL+Q) и выберите "IntelliCode". После открытия такого окна установите флажок "Я принимаю эти условия и хочу обучить модели IntelliCode на открытой сейчас базе кода: ".

  4. После успешного создания модели она автоматически скачается в Visual Studio. Ход создания модели можно отслеживать, открыв окно вывода и выбрав IntelliCode в раскрывающемся списке.

Требования

  • Убедитесь, что эти параметры включены в меню Средства > Параметр > IntelliCode. Они включены по умолчанию в Visual Studio 2019 16.8 и более поздних версий.

    • Командные модели для завершения кода
    • Получать командные модели для завершений

    Примечание

    Если указанные выше параметры отсутствуют, убедитесь в том, что установлена версия не ниже Visual Studio 16.8.

После окончания обучения попробуйте написать код, используя классы и типы, характерные для вашего репозитория. Для наиболее распространенных случаев вы должны увидеть рекомендации, помеченные звездочками.

Если завершения для команд в репозитории вас устраивают, можно добавить задачу сборки IntelliCode, чтобы настроить автоматическое создание и повторное обучение завершений для команды в рамках конвейера непрерывной интеграции в Azure Pipelines.

Что происходит при обучении модели?

В начале обучения модели для завершений для команд:

  • Мы анализируем код локально.
  • Мы извлекаем файл сводки с метаданными по вашим типам и их использованию.
  • Мы безопасно отправляем его в службу IntelliCode и обучаем модель завершения, адаптированную к коду.
  • Модель завершения автоматически предоставляется пользователям, имеющим доступ к вашему репозиторию.

Вы увидите ход обучения в разделе IntelliCode в окне вывода Visual Studio. После завершения обучения вы сможете увидеть сводку и новую модель, адаптированную к коду. Затем попробуйте написать код, используя классы и типы, характерные для вашего репозитория. Для наиболее распространенных случаев вы должны увидеть рекомендации, помеченные звездочками.

Дополнительные сведения о том, какие данные используются и передаются в этом процессе, см. в разделе Данные и конфиденциальность IntelliCode.

Автоматизация повторного обучения модели

Чтобы поддерживать завершения в актуальном состоянии по мере изменения кода и предоставлять общий доступ к модели другим пользователям вашего репозитория, вы можете автоматизировать обучение модели в Azure DevOps с помощью задачи сборки CI в IntelliCode.

Прежде чем начать, убедитесь в том, что выполняются указанные ниже требования.

  • У вас есть разрешение на создание и изменение конвейеров для проекта. Или обратитесь к администратору CI.
  • В агенте сборки установлена минимальная требуемая версия Visual Studio:
    • Для репозиториев C#: Visual Studio 2017 или более поздних версий
    • Для репозиториев C++: Visual Studio 2019 с обновлением 4 или более поздних версий

Настройка

  1. В организации Azure DevOps или Azure DevOps Server установите задачу обучения модели для команды Visual Studio IntelliCode из Visual Studio Marketplace для автоматического повторного обучения завершений для команд при каждом изменении кода.
  2. Настройте подключение к службе IntelliCode. Это соединение используется для отправки обучающих данных для создания модели.
  3. В области настройки задачи введите ветвь, на основе которой необходимо обучить модель.
  4. В раскрывающемся списке выберите подключение к службе IntelliCode для этой задачи.
  5. Задача обучения модели IntelliCode должна выполняться после шага сборки.
  6. Сохраните и запустите конвейер, чтобы создать модель.
  7. Откройте соответствующий репозиторий из конвейера в Visual Studio, чтобы скачать созданную модель.
  8. Модель будет автоматически обновляться и публиковаться для совместной работы при каждой сборке CI.

См. также раздел