Запрос — это запрос, который GitHub Copilotвы делаете. Например, можно задать вопрос, описать задачу или написать фрагмент кода для Copilot завершения. В дополнение к запросу используется контекст, Copilot например код в текущем файле и журнал бесед для создания ответа.
Вы взаимодействуете со Copilot многими поверхностями, включая GitHub Copilot appGitHub Copilot CLI, в интегрированной среде разработки (Visual Studio Code, , Visual StudioJetBrains IDEsEclipse и Xcode), а также на GitHub веб-сайте.
GitHub Copilot app GitHub На веб-сайте вы также можете запустить Copilot cloud agentагент, который работает над задачей, вместо интерактивной работыCopilot.
Советы, приведенные в этой статье, применяются к поверхностям Copilot , чтобы помочь вам создавать запросы, которые создают лучшие ответы.
Начните с общих тем, затем перейдите к подробному.
При написании запроса Copilotсначала предоставьте Copilot широкое описание цели или сценария. Затем укажите все определенные требования. Сначала поместите наиболее важные требования. Copilot дает дополнительный вес инструкциям в начале и конце запроса.
Рассмотрим пример.
Write a JavaScript function that tells me if a number is prime The function should take an integer and return true if the integer is prime The function should error if the input is not a positive integer
Write a JavaScript function that tells me if a number is prime The function should take an integer and return true if the integer is prime The function should error if the input is not a positive integer
Write a JavaScript function that tells me if a number is prime
The function should take an integer and return true if the integer is prime
The function should error if the input is not a positive integer
Примеры
Используйте примеры, чтобы понять Copilot , что вы хотите. Можно указать примеры входных данных, примеры выходных данных и примеры реализации.
Рассмотрим пример.
Write a Go function that finds all dates in a string and returns them in an array. Dates can be formatted like:
* 05/02/24
* 05/02/2024
* 5/2/24
* 5/2/2024
* 05-02-24
* 05-02-2024
* 5-2-24
* 5-2-2024
Example:
findDates("I have a dentist appointment on 11/14/2023 and book club on 12-1-23")
Returns: ["11/14/2023", "12-1-23"]
Write a Go function that finds all dates in a string and returns them in an array. Dates can be formatted like:
* 05/02/24
* 05/02/2024
* 5/2/24
* 5/2/2024
* 05-02-24
* 05-02-2024
* 5-2-24
* 5-2-2024
Example:
findDates("I have a dentist appointment on 11/14/2023 and book club on 12-1-23")
Returns: ["11/14/2023", "12-1-23"]
Write a Go function that finds all dates in a string and returns them in an array. Dates can be formatted like:
* 05/02/24
* 05/02/2024
* 5/2/24
* 5/2/2024
* 05-02-24
* 05-02-2024
* 5-2-24
* 5-2-2024
Example:
findDates("I have a dentist appointment on 11/14/2023 and book club on 12-1-23")
Returns: ["11/14/2023", "12-1-23"]
Модульные тесты также могут служить примерами. Перед написанием функции используйте Copilot для записи модульных тестов для функции. Затем попросите Copilot написать функцию, описанную этими модульными тестами.
Разорвать сложные задачи на более простые задачи
Если вы хотите Copilot выполнить сложную или большую задачу, разорвать задачу на несколько простых, небольших задач.
Например, вместо запроса Copilot создать головоломку поиска слов, разорвать процесс до небольших задач и попросить Copilot выполнить их по одному:
- Напишите функцию для создания сетки размером 10 на 10 из букв.
- Напишите функцию, чтобы найти все слова в сетке букв, учитывая список допустимых слов.
- Напишите функцию, которая использует предыдущие функции для создания 10 к 10 сетке букв, содержащих по крайней мере 10 слов.
- Обновите предыдущую функцию, чтобы распечатать сетку букв и 10 случайных слов из сетки.
Избегайте неоднозначности
Избегайте неоднозначных терминов. Например, не спрашивайте " что делает это", если "этот" может быть текущим файлом, последним Copilot ответом или определенным блоком кода. Вместо этого будьте конкретными:
- Что делает
createUserфункция? - Что делает код в последнем ответе?
Неоднозначность также может применяться к библиотекам:
- Если вы используете необычную библиотеку, опишите, что делает библиотека.
- Если вы хотите использовать определенную библиотеку, задайте инструкции импорта в верхней части файла или укажите нужную библиотеку.
Правила и требования состояния напрямую, а не как мета-инструкции. Например, напишите "Возвращать результат в формате JSON" вместо "Не забывайте всегда возвращать JSON".
Укажите соответствующий контекст
Copilot использует контекст, доступный для его понимания запроса. Способ предоставления этого контекста зависит от используемой поверхности.
- Завершение кода в интегрированной среде разработки: откройте все соответствующие файлы и закройте ненужные. Copilot использует открытые файлы для понимания запроса.
- Copilot в интегрированной среде разработки или на GitHub веб-сайте: выделите код, на который нужно Copilot ссылаться, и используйте ключевые слова для присоединения контекста. Например, введите
@запрос на присоединение таких элементов, как файлы, проблемы, запросы на вытягивание или репозитории. Некоторые идентификаторы также поддерживают команды косой черты (например/fix``/tests, и ), переменные и другие варианты улучшения взаимодействия Copilot . - GitHub Copilot CLI: присоединение файла репозитория с
@pathпомощью запроса или ссылки на GitHub проблему или запрос#numberна вытягивание. Для контекста репозитория, который требуется повторно использовать, добавьте пользовательские инструкции, такие как.github/copilot-instructions.mdфайл, файлы инструкций для конкретного пути илиAGENTS.mdфайл. - Copilot cloud agent: задайте область задачи, выбрав репозиторий и базовую ветвь, а затем опишите цели, условия принятия и соответствующие файлы. Прикрепите снимки экрана или макеты, когда имеет значение визуального контекста. Запустите задачу из сеанса чата, когда существующее обсуждение должно выполняться в задачу; в противном случае включите этот фон в запрос задачи. Сохраняйте устойчивые рекомендации в репозитории, файлах инструкций по пути или агента.
Экспериментируйте и повторяйте
Если вы не получите нужный результат, измените запрос и попробуйте снова.
Если вы используете Copilot для получения предложений в коде, вы можете полностью удалить предложение и начать работу. Кроме того, вы можете сохранить предложение и запросить изменения.
При использовании Copilot Chatможно ссылаться на предыдущий ответ в следующем запросе. Кроме того, можно удалить предыдущий ответ и начать работу.
Поддерживайте актуальность истории
Поверхности беседы (GitHub Copilot appGitHub Copilot CLICopilotв интегрированной среде разработки или интегрированной GitHubсреде разработки и ) Copilot cloud agentиспользуют журнал бесед в качестве контекста. Чтобы дать Copilot только соответствующую историю, выполните следующие действия.
- Запустите новую беседу или сеанс при запуске новой задачи.
- Где ваша поверхность поддерживает его, удалите или откат поворотов, которые больше не актуальны. Например, GitHub Copilot CLI можно запустить свежий сеанс, удалить сеансы и перемотка в более ранний запрос с
/undoили/rewind. Позволяет Copilot cloud agent запускать новую задачу и останавливать или архивировать сеанс, но не позволяет удалять сеанс или перемотка отдельных поворотов.
Просмотр Copilotвыходных данных
Проверьте созданный ИИ код и ответы так же, как вы просмотрите работу коллеги: оценку, тестирование и подтверждение правильности, прежде чем полагаться на нее. Это относится ко всем Copilot поверхностям. Дополнительные сведения см. в разделе Проверка кода, созданного искусственным интеллектом.
Следуйте рекомендациям по написанию кода
Если вы не получаете ответы, которые вы хотите получить при запросе Copilot предложений или объяснений в базе кода, убедитесь, что существующий код следует рекомендациям и легко читать. Рассмотрим пример.
- Используйте согласованный стиль и шаблоны кода.
- Используйте описательные имена для переменных и функций.
- Закомментируйте код.
- Структурируйте код в модульные, ограниченные компоненты.
- Включите модульные тесты.
Совет
Используйте Copilot , чтобы помочь коду следовать рекомендациям. Например, попросите Copilot добавить комментарии или разбить большую функцию на небольшие функции.
Дополнительные материалы
- Шпаргалка для чатов GitHub Copilot
- Использование GitHub Copilot: запросы, советы и варианты использования в блоге GitHub
- Использование GitHub Copilot в интегрированной среде разработки: советы, рекомендации и рекомендации в блоге GitHub
- Руководство разработчика по запросу инженерии и LLM в блоге GitHub
- Запрос на Copilot Chat GitHub стать вашим личным помощником по искусственному интеллекту для специальных возможностей в блоге GitHub