О GitHub Copilot встроенные предложения
Copilot встроенные предложения - это предложения в стиле автозаполнения, сгенерированные встроенными GitHub Copilot. Copilot встроенные предложения создают опыт работы с парным программистом на основе искусственного интеллекта, автоматически предлагая предложения для завершения вашего кода. Кроме того, он может предложить комментарии кода, тесты и многое другое. Он предоставляет эти предложения непосредственно в поддерживаемых редакторах при написании кода, и он может работать с широким спектром языков программирования и платформ. Дополнительные сведения см. в разделе Что такое GitHub Copilot?.
Предложения Copilotмогут быть завершением текущей строки, но иногда будет целым новым блоком кода. Вы можете принять все или часть предложения, закрыть предложение или сохранить ввод и игнорировать предложения.
Copilot встроенные предложения работают с использованием комбинации обработки естественного языка и машинного обучения, чтобы понимать окружающий код (относительно положения курсора) и предоставлять вам предложения. Этот процесс можно разбить на несколько шагов.
Обработка входных данных
Окружающий код от курсора пользователя предварительно обрабатывается встроенной системой подсказок Copilot, объединяется с контекстной информацией (например, фрагментами кода из открытых вкладок в редакторе) и отправляется в большую языковую модель в виде подсказки. Сведения о хранении данных см. в разделе GitHub Copilot Центра управления безопасностью.
Затем большая языковая модель принимает запрос и предоставляет ответ на основе запроса. Система предназначена только для оказания помощи в кодировании.
Анализ языковой модели
Большая языковая модель, обрабатывающая вводимые запросы, — это тонко настроенная языковая модель для встроенных предложений, которая представляет собой нейронную сеть, обученную на большом объеме данных кода, специализированных для предоставления встроенных предложений.
Вы можете изменить модель, используемую для встроенных предложений. См . раздел AUTOTITLE.
Создание ответов
Языковая модель создает ответ на основе анализа входного запроса и контекста, предоставленного ему. Этот ответ принимает форму созданного кода и примечания обычного текста, начиная от завершения текущей строки до всего нового блока кода.
Форматирование вывода
Ответ, сгенерированный Copilot, форматируется как "призрачный текст", который визуально отличается от окружающего кода и представляется пользователю в виде предложения. Он добавляется только в файл или базу кода, если пользователь явно принимает предложение. Пользователи могут принять все или часть предложения, закрыть предложение или сохранить ввод и игнорировать предложения в этом случае.
GitHub Copilot встроенные предложения предназначены для предоставления вам наиболее актуальных и полезных предложений по коду для дополнения вашего существующего кода. Однако он может не всегда предоставлять ответы, которые вы ищете. Пользователи Copilot отвечают за проверку и проверку ответов, созданных системой перед их принятием, чтобы убедиться, что они точны и соответствующие. Кроме того, в рамках процесса разработки продукта мы проводим работу с красными командами, чтобы понять и повысить безопасность встроенных предложений Copilot. Сгенерированные предложения также пропускаются через фильтры содержимого. Система фильтрации содержимого обнаруживает и блокирует Copilot от вывода любого вредного или оскорбительного содержимого или небезопасного кода. Кроме того, в зависимости от настроек пользователя на GitHub фильтр также блокирует или комментирует предложения, содержащие совпадения с общедоступным кодом.
Примеры использования GitHub Copilot встроенных предложений
GitHub Copilot встроенные предложения могут помочь в программировании в различных сценариях.
Создание кода на основе ваших инструкций
Помимо использования Copilot для предоставления предложений, можно использовать примечания кода для указания Copilot о коде, который вы ожидаете следовать за комментарием. Например, можно использовать комментарии, такие как "использование рекурсии" или "использование единого шаблона", чтобы указать тип алгоритма Copilot должен предложить. Кроме того, можно использовать примечания, чтобы сообщить Copilot, какие методы и свойства добавляются в класс.
Создание модульных тестов
Встроенные предложения Copilot могут помочь вам написать сценарии модульного тестирования, генерируя фрагменты кода на основе окружающего кода, введенного в редакторе. Это может помочь вам тратить меньше времени на повторяющиеся задачи написания тестовых случаев. Например, если вы пишете тестовый случай для конкретной функции, можно использовать Copilot для предложения возможных входных параметров и ожидаемых выходных значений на основе подписи и текста функции. Встроенные предложения также могут предлагать утверждения, которые обеспечивают правильную работу функции на основе контекста и семантики кода.
Встроенные предложения Copilot также могут помочь создать тестовые случаи для пограничных случаев и граничных условий, которые может быть трудно определить вручную. Например, Copilot может предложить тестовые случаи обработки ошибок, значений NULL или непредвиденных типов входных данных, помогая обеспечить надежность и устойчивость кода. Однако важно отметить, что созданные тестовые случаи могут не охватывать все возможные сценарии, а проверка кода вручную и проверка кода по-прежнему необходимы для обеспечения качества кода.
Это может быть полезным инструментом для программистов, так как он может предоставлять рекомендации и поддержку распространенных задач программирования и проблем.
Повышение производительности для GitHub Copilot встроенных предложений
Copilot встроенные предложения могут генерировать предложения кода в ряде различных контекстов, с различными метриками производительности и качества. Чтобы повысить производительность и устранить некоторые ограничения встроенных предложений Copilot, можно принять различные меры. Дополнительные сведения об ограничениях встроенных предложений Copilot см. в разделе Ограничения встроенных предложений GitHub Copilot.
Сохранение запросов в разделе
Copilot предназначен исключительно для создания завершений, связанных с кодом или самим кодом. Таким образом, ограничение контекста содержимого в редакторе на код или информацию, связанную с программированием, может повысить качество выходных данных модели.
Используйте Copilot встроенные предложения в качестве инструмента, а не замены
Хотя Copilot может быть мощным инструментом для создания кода, важно использовать его в качестве инструмента, а не в качестве замены человеческого программирования. Перед принятием предложения следует всегда просматривать код, созданный Copilot, и далее проверять его после того, чтобы убедиться, что он соответствует вашим требованиям и не имеет ошибок или проблем безопасности.
Внимание
Пользователи принимают все риски, связанные с созданным кодом, включая уязвимости безопасности, ошибки и нарушение IP-адресов.
Использование безопасных методов написания кода и проверки кода
Хотя Copilot встроенные предложения могут генерировать синтаксически правильный код, они не всегда могут быть безопасными. Вы всегда должны следовать рекомендациям по безопасному кодированию, таким как избегание жестко запрограммированных паролей или уязвимостей SQL-инъекций, а также следовать рекомендациям по проверке кода, чтобы устранить ограничения Copilot.
Получайте актуальные новости
Copilot встроенные предложения все еще довольно новая технология и, вероятно, будут развиваться со временем. Вы должны оставаться в курсе любых обновлений или изменений в инструменте, а также любых новых рисков безопасности или рекомендаций, которые могут возникнуть. Автоматические обновления расширений включены по умолчанию в Visual Studio Code, Visual Studio и наборе УДОСТОверений JetBrains. Если вы включили автоматическое обновление, Copilot автоматически обновляется до последней версии при открытии интегрированной среды разработки. Дополнительные сведения о автоматических обновлениях в интегрированной среде разработки см. в документации для предпочтительного редактора интегрированной среды разработки или кода.
Ограничения встроенных предложений GitHub Copilot
В зависимости от таких факторов, как база кода и входные данные, вы можете испытывать разные уровни производительности при взаимодействии со встроенными предложениями Copilot. Следующие сведения призваны помочь вам понять системные ограничения и ключевые понятия о производительности, применительно к встроенным предложениям Copilot.
Ограниченная область
Copilot встроенные предложения обучаются на большом объеме кода, но все еще имеют ограниченную область применения и могут быть не в состоянии обрабатывать более сложные структуры кода или непонятные языки программирования. Для каждого языка качество получаемых предложений может зависеть от объема и разнообразия обучающих данных для этого языка. Например, JavaScript хорошо представлен в общедоступных репозиториях и является одним из наиболее поддерживаемых языков GitHub Copilot. Языки с меньшим представлением в общедоступных репозиториях могут быть более сложными для Copilot для помощи. Кроме того, Copilot встроенные предложения могут предлагать код только на основе контекста написанного кода, поэтому они могут не иметь возможности идентифицировать более крупные проблемы дизайна или архитектуры.
Наконец, Copilot встроенные предложения предназначены для генерации кода и связанных с ним выводов. Использование Copilot встроенных предложений не предназначено для создания выходных данных на естественном языке.
Потенциальные смещения
Данные об обучении %% variables.product.prodname_copilot_short %}извлекается из существующих репозиториев кода, которые могут содержать предвзятые и ошибки, которые могут быть увековечены средством. Кроме того, встроенные предложения Copilot могут быть смещены в сторону определенных языков программирования или стилей кодирования, что может привести к неоптимальным или неполным предложениям кода.
Угрозы безопасности
Copilot создает код на основе контекста написанного кода, который может потенциально предоставлять конфиденциальную информацию или уязвимости, если не используется тщательно. При использовании Copilot следует внимательно создавать код для приложений, чувствительных к безопасности, и всегда проверять созданный код тщательно.
Совпадения с открытым кодом
Copilot встроенные предложения способны генерировать новый код, что они и делают вероятностным образом. Хотя вероятность низка, Copilot может создавать предложения кода, соответствующие коду в наборе обучения.
Неточный код
Одним из ограничений Copilot является то, что он может создать код, который, как представляется, является допустимым, но на самом деле не может быть семантично или синтаксически правильно или не может точно отражать намерение разработчика. Чтобы снизить риск неточного кода, необходимо тщательно проверить созданный код, особенно при работе с критически важными или конфиденциальными приложениями. Кроме того, необходимо убедиться, что созданный код соответствует рекомендациям и шаблонам проектирования и соответствует общей архитектуре и стилю базы кода.
Юридические и нормативные рекомендации
Пользователям необходимо оценить потенциальные юридические и нормативные обязательства при использовании любых служб и решений ИИ, которые могут не подходить для использования в каждой отрасли или сценарии. Кроме того, службы или решения ИИ не предназначены для использования и не могут использоваться способами, запрещенными в применимых условиях обслуживания и соответствующих кодексах поведения.
Следующие шаги
Подробнее о том, как использовать встроенные предложения Copilot, см.:
-
[AUTOTITLE](/copilot/using-github-copilot/getting-code-suggestions-in-your-ide-with-github-copilot)
Дополнительные материалы
-
[AUTOTITLE](/free-pro-team@latest/site-policy/github-terms/github-terms-for-additional-products-and-features#github-copilot) -
[GitHub Copilot Центр управления безопасностью](https://copilot.github.trust.page/)