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


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

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

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

  • Используйте команды косой черты для быстрого указания обычных задач, таких как /explain, чтобы получить объяснения кода.
  • Используйте управляемый чат и пользовательские инструкции для уточнения контекста в Visual Studio 17.12 или более новых версий.
  • Ограничьте чат конкретными файлами, используя ссылки .
  • Просмотрите источник , используемый Copilot, чтобы создать ответ.
  • Используйте разные нити обсуждения для каждого чата Copilot, чтобы поддерживать своеобразные контексты в каждом из них.

Дополнительные сведения о разработке ИИ в 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.

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

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

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

  1. Создайте/добавьте файл пользовательских инструкций .github/copilot-instruction.md в корневой каталог вашего репозитория.
  2. Включите функцию в Visual Studio с помощью инструментов >параметров>GitHub>Copilot> выберите , (предварительная версия) Включите пользовательские инструкции для загрузки из файлов .github/copilot-instructions.md и добавления в запросы..

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

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

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

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

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

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

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

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

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

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

Чтобы легко ссылаться на файл в чате GitHub Copilot, просто добавьте символ # в начале имени файла. Например, если у вас есть файл с именем 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теперь можно сохранить историю встроенного чата, продвигая его в окно чата . Выберите Продолжить в окне чата... для сохранения записи и контекста беседы и продолжения в окне чата.

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

Лучшие практики

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

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

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

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