Получите лучшие ответы, задав контекст для чата GitHub Copilot в Visual Studio

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

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

Узнайте больше о разработке с помощью ИИ в Visual Studio и о том, как использовать Copilot Chat в Visual Studio.

Необходимые компоненты

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

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

Использование команд косой черты в Copilot Chat для распространенных задач

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

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

Command Использование Окно чата Встроенный чат
/doc Добавьте комментарии для указанного или выбранного кода.
Примеры:
- /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
Да Да
/help Получите справку по использованию Чата Copilot.
Пример: /help
Да Да
/optimize Анализ и улучшение времени выполнения выбранного кода.
Примеры:
- /optimize the AddItemToBasket method in BasketService.cs
— выберите нужный код и введите /optimize
Да Да
/Тесты Создайте модульные тесты для выбранного кода.
Пример: выберите нужный код и введите /tests using XUnit Framework
Да Да

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

Справочник. Область действия Copilot результаты для конкретного файла или всего решения

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

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

Ссылка на файл

Чтобы легко ссылаться на файл в GitHub Copilot Chat, просто добавьте # символ в начале имени файла. Например, если у вас есть файл с именем BasketService.cs, обратитесь к нему в чате как #BasketService.cs.

Снимок экрана: ссылки в Чате Copilot.

Ссылка на метод, класс или функцию

В Visual Studio 2022 версии 17.11 теперь можно ссылаться на определенный метод, класс или функцию в GitHub Copilot Chat.

Чтобы легко ссылаться на метод, класс или функцию в чате GitHub Copilot, просто добавьте # символ в начале метода, класса или имени функции. Например, если у вас есть метод с именем BasketAddItem, обратитесь к нему в чате как #BasketAddItem.

Снимок экрана: ссылки на методы в GitHub Copilot Chat в Visual Studio.

Ссылка на все решение

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

Снимок экрана: контекст решения для ссылки в Copilot Chat.

В Visual Studio 2022 версии 17.11 подписчики GitHub Copilot Enterprise теперь могут использовать @github в чате для включения контекста из всего репозитория и поиска в Интернете (если поиск включен администратором). Дополнительные сведения о коллекции навыков, относящихся к GitHub, которые Copilot может использовать для ответа на ваш вопрос при использовании @github, см. в разделе "Использование навыков GitHub для Copilot".

Снимок экрана: использование навыков GitHub в Copilot Chat.

Примеры использования

Ниже приведены некоторые примеры использования ссылок для элемента управления контекстом:

Пример Контекст, используемый Copilot для формирования вопроса
Какова цель #MyFile.cs: 66-72? Точный раздел файла
Где находятся тесты в #BasketService.cs? BasketService.cs
/объясните #AddItemToBasket в #BasketService.cs Метод AddItemToBasket в BasketService.cs
Есть ли в этом методе удаления корзины @workspace Текущее решение открыто в интегрированной среде разработки
У меня есть тестовый метод с именем #TestCalculator. Как убедиться, что он выполняется правильно? Метод TestCalculator
Можно ли объяснить различия между классами #BasketService и #OrderService? Класс BasketService и класс OrderService
В моем @workspace месте #AddItemToBasket? Текущее решение открыто в интегрированной среде разработки

Просмотр источников, используемых Copilot Chat

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

Снимок экрана: ссылки, используемые в раскрывающемся списке в Чате Copilot.

Упорядочение: изоляция чатов с Copilot в потоки

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

Новый поток чата

Вы можете запустить новый поток, выбрав "Создать новый поток " в окне чата.

Снимок экрана: значок создания потока в Copilot Chat.

Переключение потока чата

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

Снимок экрана: переключение между текущими потоками в Copilot Chat.

Повышение встроенного чата в окне чата

В Visual Studio 2022 версии 17.11 теперь можно сохранить историю встроенного чата, продвигая его в окно чата. Нажмите кнопку "Продолжить в окне чата", чтобы сохранить запись и контекст беседы, а затем продолжить в окне чата.

Снимок экрана: продвижение текущего потока в встроенном чате в окне чата.

Рекомендации

Copilot Chat использует журнал чата для получения контекста о запросе. Чтобы дать Copilot только соответствующую историю:

  • Используйте потоки для запуска новой беседы для новой задачи.
  • Запросы на удаление, которые больше не актуальны или которые не дали вам нужный результат.

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

Следующие шаги