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


Настройка ответов чата и настройка контекста

Вы можете попросить GitHub Copilot Chat предоставить вам предложения кода, объяснить код, создать модульные тесты и предложить исправления кода. Чат в Visual Studio может дать ответы и создать код, соответствующий вашим рекомендациям по программированию и требованиям к проекту, если вы даете ему правильный контекст. Вместо многократного добавления этих сведений в каждом запросе чата вы можете хранить этот контекст в файлах и автоматически включать их в каждый запрос чата.

В этой статье вы узнаете, как получить лучшие ответы, предоставив дополнительные сведения в Copilot Chat:

Дополнительные сведения о разработке ИИ в Visual Studio и использовании Copilot Chat в Visual Studio.

Необходимые условия

Чтобы приступить к работе с GitHub Copilot Chat в Visual Studio, вам потребуется:

Поддержка GitHub Copilot Chat предоставляется GitHub и доступна по адресу https://support.github.com.

Руководство по составлению запросов

Интерактивный чат в Visual Studio 17.12 и более поздних версиях помогает улучшить формулировку ваших запросов, чтобы прояснить контекст и получить более точные ответы. GitHub Copilot Chat теперь поможет вам с уточняющими вопросами, когда контекст неясный.

снимок экрана интерактивного взаимодействия с GitHub Copilot Chat.

снимок экрана интерактивного взаимодействия с GitHub Copilot Chat.

Использование пользовательских инструкций

Функция пользовательских инструкций позволяет автоматически добавлять предварительно заданные контекстные сведения в вопросы чата. Copilot Chat использует эти инструкции, адаптированные к конкретному контексту, например способ работы вашей команды, используемых средств или особенностей проекта при создании ответов.

Снимок экрана: файлы пользовательских инструкций, используемые Copilot в списке ссылок.

Снимок экрана: файлы пользовательских инструкций, используемые Copilot в списке ссылок.

Использование файла .github/copilot-instructions.md

Чтобы использовать .github/copilot-instructions.md файл:

  1. Создайте/добавьте файл пользовательских инструкций .github/copilot-instructions.md в корневой каталог вашего репозитория.
  1. Включите функцию в Visual Studio на панелипараметров>. Разверните раздел «Все настройки»>GitHub>Copilot>Chat и отметьте флажок «Включить пользовательские инструкции для загрузки из файлов .github/copilot-instructions.md и добавления их в запросы».
  1. Включите функцию в Visual Studio в диалоговом окне"Параметры>". Разверните раздел GitHub> и выберите флажок Включить загрузку пользовательских инструкций из файлов .github/copilot-instructions.md и добавление их к запросам в группе Copilot Chat.

Пользовательские инструкции не отображаются в представлении чата или встроенном чате. Однако при использовании Copilot файл.github/copilot-instructions.md отображается в списке ссылок ответа.

Воспоминания Copilot могут автоматически обнаруживать ваши предпочтения во время чата и добавлять их в файлы инструкций, поэтому их не нужно писать вручную.

Использование настроек уровня пользователя

Помимо пользовательских инструкций на уровне репозитория, можно определить предпочтения на уровне пользователя, которые применяются ко всем сеансам Copilot в проектах. Параметры уровня пользователя сохраняются в %USERPROFILE%/copilot-instructions.md.

Используйте предпочтения уровня пользователя для личных стандартов программирования, предпочитаемых шаблонов или соглашений о рабочих процессах, которые вы хотите, чтобы Copilot следовал независимо от репозитория, в который вы работаете. Инструкции .github/copilot-instructions.md на уровне репозитория по-прежнему применяются вместе с вашими предпочтениями на уровне пользователя, поэтому общие стандарты вашей команды также соблюдаются.

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

Использование файлов instructions.md

Вместо использования одного файла инструкций, который применяется ко всем запросам чата, можно создать несколько *.instructions.md файлов, которые применяются к определенным типам файлов или задачам. Например, можно создавать файлы инструкций для разных языков программирования, платформ или типов проектов.

Чтобы использовать .github/instructions/*.instructions.md файл:

  1. Создайте каталог .github/instructions, если он еще не существует.

  2. Добавьте один или несколько .github/instructions/*.instructions.md файлов.

  3. Добавьте свойство applyTo в раздел frontmatter файла инструкций. Используйте синтаксис glob, чтобы указать, к каким файлам или папкам применяются инструкции.

  4. Включите функцию в Visual Studio.

    В области "Параметры инструментов" разверните раздел Все параметры>GitHub>> и установите флажок Включить загрузку пользовательских инструкций из файлов .github/copilot-instructions.md и добавление к запросам.

    В диалоговом окне"Параметры>" разверните раздел GitHub>Copilot. В группе чата Copilot выберите флажок Включить пользовательские инструкции, загружаемые из файлов .github/copilot-instructions.md и добавляемые к запросам.

Формат файла инструкций

Целевые файлы инструкций .instructions.md используют расширение и имеют эту структуру:

  • Заголовок (необязательно): frontmatter YAML
    • description: описание, отображаемое при наведении указателя мыши в представлении чата
    • applyTo: шаблон glob, соответствующий файлам или папкам, к которым необходимо применить инструкции.
  • Текст: инструкции в формате Markdown

Example

Ниже приведен пример пользовательской инструкции C#:

## C# Instructions
---
applyTo: `**/*.cs`
---

- Write clear and concise comments for each function.
- Use PascalCase for component names, method names, and public members.
- Use camelCase for private fields and local variables.
- Add a newline before the opening curly brace of any code block  
  (such as after `if`, `for`, `while`, `foreach`, `using`, `try`, etc.).
- Ensure that the final `return` statement of a method is on its own line.

Скопируйте эти инструкции в .github/instructions/*.instructions.md файл для использования и автоматического применения к поведению Copilot.

Дополнительные примеры пользовательских инструкций см. в списке примеров инструкций на сайте GitHub.

Как работают файлы инструкций

При начале работы с Copilot он автоматически обнаруживает, какие файлы инструкций относятся к текущему контексту и присоединяет их в качестве ссылок. Это гарантирует, что предложения Copilot всегда соответствуют правилам проекта независимо от того, где вы работаете в базе кода.

Файлы инструкций, используемые Copilot, перечислены в списке ссылок ответа.

Используйте файлы подсказок

Теперь вы можете создавать повторно используемые файлы запросов в репозитории для выполнения или совместного использования часто используемых запросов.

Чтобы создать файл подсказки, выполните приведенные действия.

  1. Напишите ваши подсказки, как обычно, в поле ввода, используя # ссылки для включения определенных сведений из вашего решения, таких как методы, классы и файлы. Вы даже можете ссылаться на другие файлы с подсказками для общих инструкций.
  2. Скопируйте запрос в файл markdown и сохраните его с .prompt.md расширением в папке в .github/prompts корне репозитория.

Чтобы использовать файл запроса:

  1. Введите #prompt: входные данные чата, чтобы ссылаться на любые файлы запроса из .github/prompts папки, или щелкните ➕ значок в входных данных чата, чтобы добавить его в качестве контекста.
  2. Добавьте дополнительные сведения или просто введите запрос как есть.

Снимок экрана: использование файлов запроса в чате GitHub Copilot.

Создав файлы запроса, вы можете быстро вызвать их, введя / в поле ввода чата.

Вызов пользовательских запросов с помощью слэш-команд

Вы можете быстро вызывать избранные пользовательские запросы непосредственно из поля ввода чата с помощью слэш-команд.

Доступ к пользовательским запросам с помощью /

Введите / в поле ввода чата, чтобы увидеть ваши пользовательские подсказки в верхней части списка IntelliSense.

  • Настраиваемые запросы отображаются в верхней части списка со значком закладки
  • Системные команды (например /help, /savePrompt) отображаются ниже без значка

Снимок экрана: список IntelliSense с настраиваемыми запросами с значками закладки в верхней части экрана после ввода косой черты.

Создание пользовательских инструкций с помощью /generateInstructions

/generateInstructions Используйте команду для автоматического создания пользовательских инструкций на уровне репозитория для проекта. Эта команда анализирует структуру проекта и шаблоны кодирования, чтобы создать copilot-instructions.md файл, адаптированный к репозиторию.

Чтобы использовать /generateInstructions:

  1. Откройте чат Copilot в Visual Studio.
  2. Введите /generateInstructions в поле чата и нажмите Enter.
  3. Copilot анализирует структуру проекта и шаблоны кодирования.
  4. copilot-instructions.md Файл создается в .github папке.

Эта команда использует смарты проекта для обнаружения стилей и настроек кода, что упрощает настройку пользовательских инструкций без ручной разработки файла.

Сохраните запросы используя /savePrompt

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

Чтобы использовать /savePrompt:

  1. Введите запрос в чате Copilot, который вы хотите повторно использовать.
  2. После ответа Copilot введите /savePrompt в поле ввода чата и нажмите ВВОД.
  3. Выберите имя файла запроса.
  4. Запрос сохраняется в .github/prompts/[name].prompt.md.

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

Используйте слэш-команды для установки контекста распространённых задач.

Команды Slash в Copilot Chat помогают быстро задать намерение для распространенных задач разработки. Используя определенные слэш-команды для формирования вопроса, вы можете получить лучшие ответы без необходимости формулировать длинные вопросы.

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

Команда использование Окно чата встроенный чат
/док Добавьте комментарии для указанного или выбранного кода.
Примеры:
- /doc DeleteBasketAsync method in BasketService.cs
— выберите нужный код и введите /doc
Да Да
/объяснить Получите объяснение кода.

Примеры:
- /explain the AddItemToBasket method in BasketService.cs
— выберите нужный код и введите /explain
Да Да
/починить Предложить исправление проблем в выбранном коде.
Примеры:
- /fix the SetQuantities method in BasketService.cs
— выберите нужный код и введите /fix
Да Да
/сгенерировать Создайте код для ответа на указанный вопрос.
Пример: /generate code to add two numbers in Calculator.cs
Да Да
/generateInstructions Создайте пользовательские инструкции на уровне репозитория (copilot-instructions.md) на основе шаблонов кода и структуры проекта. Да нет
/Справка Получите справку по использованию Чата Copilot.
Пример: /help
Да Да
/оптимизировать Анализ и улучшение времени выполнения выбранного кода.
Примеры:
- /optimize the AddItemToBasket method in BasketService.cs
— выберите нужный код и введите /optimize
Да Да
/savePrompt Сохраните повторно используемый запрос из текущего чата в файл .prompt.md, находящийся в папке .github/prompts. Да нет
/Тесты Создайте модульные тесты для выбранного кода.
Пример: выберите нужный код и введите /tests using XUnit Framework
Для .NET рекомендуется GitHub Copilot Testing для .NET
Да Да

снимок экрана слэш-команд во встроенном представлении чата и в окнах чата.

Команда использование Окно чата встроенный чат
/док Добавьте комментарии для указанного или выбранного кода.
Примеры:
- /doc DeleteBasketAsync method in BasketService.cs
— выберите нужный код и введите /doc
Да Да
/объяснить Получите объяснение кода.

Примеры:
- /explain the AddItemToBasket method in BasketService.cs
— выберите нужный код и введите /explain
Да Да
/починить Предложить исправление проблем в выбранном коде.
Примеры:
- /fix the SetQuantities method in BasketService.cs
— выберите нужный код и введите /fix
Да Да
/сгенерировать Создайте код для ответа на указанный вопрос.
Пример: /generate code to add two numbers in Calculator.cs
Да Да
/Справка Получите справку по использованию Чата Copilot.
Пример: /help
Да Да
/оптимизировать Анализ и улучшение времени выполнения выбранного кода.
Примеры:
- /optimize the AddItemToBasket method in BasketService.cs
— выберите нужный код и введите /optimize
Да Да
/Тесты Создайте модульные тесты для выбранного кода.
Пример: выберите нужный код и введите /tests using XUnit Framework
Для .NET рекомендуется GitHub Copilot Testing для .NET
Да Да

снимок экрана слэш-команд во встроенном представлении чата и в окнах чата.

При использовании Visual Studio 2022 версии 17.13, когда пользователь вводит слэш-команду, команда расширяется естественным языком, отображая контекст для команды.

Использование действий Copilot

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

Снимок экрана: действия Copilot в контекстном меню.

Поведение каждого действия зависит от того, выбран ли код при открытии контекстного меню:

Действие Выбранный код Без выбранного кода
Объяснить Описание выбранного кода Объясняет код рядом с положением курсора
Оптимизация выбора Оптимизирует выбранный код для повышения производительности, удобства обслуживания, надежности и архитектуры Неприменимо
Создание комментариев Создает примечания для выбранного кода Сгенерировать комментарии для кода у курсора
Создание тестов Создает тесты для выбранного кода Создание тестов для кода рядом с положением курсора
Добавление в чат Добавляет выбранный код в чат в качестве ссылки Добавление всего файла в чат в качестве ссылки

При выборе любого действия, кроме Оптимизированный выбор, окно чата открывается автоматически и отправляет слэш-команду в Copilot с соответствующим контекстом. Затем вы можете просмотреть ответ Copilot и взаимодействовать с ним в окне чата.

Использование параметра "Оптимизация выбора" для улучшения кода

Выберите определенный раздел кода и выберите "Оптимизировать выделенный фрагмент", чтобы Copilot проанализировал и улучшил только этот фрагмент, а не весь файл.

Copilot проверяет выбранный код и его окружающий контекст для предоставления значимых, контекстных предложений. Оптимизация сохраняет существующий стиль кода, структуру и функциональные возможности, сохраняя упорядоченную и согласованную базу кода. В отличие от других действий, использующих панель чата, оптимизация выбора представляет предложения в виде встроенных дифф, которые можно напрямую просматривать, принимать или отклонять.

Copilot предоставляет предложения по оптимизации в следующих областях:

  • Производительность: Более быстрые алгоритмы, сокращение использования памяти, асинхронные шаблоны
  • Ремонтопригодность: Упрощенная логика, более четкая структура, лучшее именование
  • Надёжность: Обработка ошибок, очистка ресурсов, безопасность потоков
  • Архитектура: Внедрение зависимостей, улучшенные интерфейсы, модульный дизайн

Использование действий Copilot

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

Снимок экрана: действия Copilot в контекстном меню.

Поведение каждого действия зависит от того, выбран ли код при открытии контекстного меню:

Действие Выбранный код Без выбранного кода
Объяснить Описание выбранного кода Объясняет код рядом с положением курсора
Оптимизация выбора Оптимизирует выбранный код для повышения производительности, удобства обслуживания, надежности и архитектуры Неприменимо
Создание комментариев Создает примечания для выбранного кода Сгенерировать комментарии для кода у курсора
Создание тестов Создает тесты для выбранного кода Создание тестов для кода рядом с положением курсора
Добавление в чат Добавляет выбранный код в чат в качестве ссылки Добавление всего файла в чат в качестве ссылки

При выборе любого действия, кроме Оптимизированный выбор, окно чата открывается автоматически и отправляет слэш-команду в Copilot с соответствующим контекстом. Затем вы можете просмотреть ответ Copilot и взаимодействовать с ним в окне чата.

Использование параметра "Оптимизация выбора" для улучшения кода

Выберите определенный раздел кода и выберите "Оптимизировать выделенный фрагмент", чтобы Copilot проанализировал и улучшил только этот фрагмент, а не весь файл.

Copilot проверяет выбранный код и его окружающий контекст для предоставления значимых, контекстных предложений. Оптимизация сохраняет существующий стиль кода, структуру и функциональные возможности, сохраняя упорядоченную и согласованную базу кода. В отличие от других действий, использующих панель чата, оптимизация выбора представляет предложения в виде встроенных дифф, которые можно напрямую просматривать, принимать или отклонять.

Copilot предоставляет предложения по оптимизации в следующих областях:

  • Производительность: Более быстрые алгоритмы, сокращение использования памяти, асинхронные шаблоны
  • Ремонтопригодность: Упрощенная логика, более четкая структура, лучшее именование
  • Надёжность: Обработка ошибок, очистка ресурсов, безопасность потоков
  • Архитектура: Внедрение зависимостей, улучшенные интерфейсы, модульный дизайн

Дальнейшие действия