Skip to main content

Ответственное использование чата GitHub Copilot в интегрированной среде разработки

Узнайте, как использовать GitHub Copilot Chat ответственно, понимая свои цели, возможности и ограничения.

Кто может использовать эту функцию?

Все пользователи с подпиской GitHub Copilot Pro или GitHub Copilot Free могут получить доступ к GitHub Copilot Chat в поддерживаемых идентификаторах и на веб-сайте GitHub .

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

О GitHub Copilot Chat

GitHub Copilot Chat — это интерфейс чата, который позволяет взаимодействовать с GitHub Copilot, задавать и получать ответы на вопросы, связанные с кодированием, на веб-сайте GitHub и поддерживаемых идентификаторов. Интерфейс чата предоставляет доступ к информации о кодировании и поддержке, не требуя навигации по документации или поиска на онлайн-форумах. Дополнительные сведения см. в разделе Что такое GitHub Copilot?.

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

Основной поддерживаемый язык для GitHub Copilot Chat — английский.

GitHub Copilot Chat работает с помощью сочетания обработки естественного языка и машинного обучения для понимания вашего вопроса и предоставления ответа. Этот процесс можно разбить на несколько шагов.

Обработка входных данных

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

Большая языковая модель будет принимать запрос, собирать дополнительный контекст (например, данные репозитория, хранящиеся в GitHub), и предоставлять ответ на основе запроса. Система предназначена только для реагирования на вопросы, связанные с программированием.

Анализ языковой модели

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

Создание ответов

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

Форматирование вывода

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

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

Варианты использования для GitHub Copilot Chat

GitHub Copilot Chat может предоставлять помощь по написанию кода в различных сценариях.

Создание модульных тестов

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

Copilot Chat также помогает создавать тестовые случаи для пограничных вариантов и условий границ, которые могут быть трудно определить вручную. Например, Copilot Chat может предложить тестовые случаи обработки ошибок, значений NULL или непредвиденных типов входных данных, помогая обеспечить надежность и устойчивость кода. Однако важно отметить, что созданные тестовые случаи могут не охватывать все возможные сценарии, а проверка кода вручную и проверка кода по-прежнему необходимы для обеспечения качества кода. Дополнительные сведения о создании модульных тестов см. в статье "Запрос GitHub Copilot Chat вопросов о коде.

Объяснение кода и предлагаемых улучшений

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

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

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

Предложение исправлений кода

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

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

Ответы на вопросы программирования

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

Ответ, созданный Copilot Chat, будет использовать набор обучающих данных модели для ответа на ваши вопросы.

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

Ограничения GitHub Copilot Chat

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

Ограниченная область

Copilot Chat был обучен на большом тексте кода, но по-прежнему имеет ограниченную область и может не иметь возможности обрабатывать более сложные структуры кода или неясные языки программирования. Для каждого языка качество получаемых предложений может зависеть от объема и разнообразия обучающих данных для этого языка. Например, JavaScript хорошо представлен в общедоступных репозиториях и является одним из наиболее поддерживаемых языков GitHub Copilot. Языки с меньшим представлением в общедоступных репозиториях могут быть более сложными для Copilot Chat для предоставления помощи. Кроме того, Copilot Chat может предлагать только код на основе контекста написанного кода, поэтому он может не идентифицировать более крупные проблемы проектирования или архитектуры.

Потенциальные смещения

Данные об обучении %% variables.product.prodname_copilot_short %}извлекается из существующих репозиториев кода, которые могут содержать предвзятые и ошибки, которые могут быть увековечены средством. Кроме того, Copilot Chat может быть предвзято к определенным языкам программирования или стилям программирования, что может привести к неоптимальным или неполным предложениям кода.

Угрозы безопасности

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

Совпадения с открытым кодом

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

Неточный код

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

Неточные ответы на темы, не относящиеся к кодированию

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

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

Дополнительные сведения об использовании GitHub Copilot Chatсм. в статье:

Дополнительные материалы