Skip to main content

Ответственное использование чата GitHub Copilot в GitHub

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

О GitHub Copilot Чат в GitHub

GitHub Copilot Чат в GitHub — это чат-интерфейс, который позволяет взаимодействовать с GitHub Copilot, чтобы задавать и получать ответы на вопросы, связанные с кодированием, внутри GitHub.

Чат-интерфейс предоставляет access к информации о программировании и поддержке без необходимости просматривать документацию или искать на онлайн-форумах.

Примечание.

Копилот Чат также доступен в Visual Studio Code, Visual Studioи наборе идентификаторов JetBrains. Однако функции, доступные в этих IDE, отличаются от функций, доступных на GitHub.

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

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

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

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

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

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

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

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

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

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

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

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

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

Варианты использования для Копилот Чат

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

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

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

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

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

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

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

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

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

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

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

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

Планирование задач программирования

Копилот Чат может считывать проблему GitHub и суммировать ее, ответить на вопросы или предложить дальнейшие действия. Это может быть полезно, если у вас длинная, сложная проблема с множеством комментариев, и вы хотите быстро её понять или понять, что to делать дальше.

Однако важно отметить, что Копилот Чатответы и сводки могут не всегда быть точными или полными, поэтому вам потребуется просмотреть Копилот Чатдля точности.

Сведения о выпусках, обсуждениях и фиксациях

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

Повышение производительности для Копилот Чат

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

Сохранение запросов в разделе

Копилот Чат предназначен для решения запросов, связанных исключительно с программированием. Поэтому ограничение запроса на кодирование вопросов или задач может повысить качество выходных данных модели.

Использование Копилот Чат в качестве средства, а не замены

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

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

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

Предоставление отзыва

Примечание.

Возможность предоставления обратной связи GitHub о Краткое описание pull request Copilot зависит от параметров предприятия. Дополнительные сведения см. в разделе Управление политиками и функциями GitHub Copilot в вашем предприятии.

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

Получайте актуальные новости

Копилот Чат — это новая технология и, скорее всего, будет развиваться с течением времени. Для GitHub Copilot Чат в GitHub у вас всегда будет access актуального опыта продукта. Вы должны оставаться в курсе любых новых рисков безопасности или рекомендаций, которые могут возникнуть.

Ограничения GitHub Copilot Чат

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

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

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

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

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

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

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

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

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

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

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

Неточный код

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

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

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

Использование веб-поиска для ответа на вопрос

В зависимости от вашего вопроса, GitHub Copilot Чат может по желанию использовать поиск Bing для ответа на ваш вопрос. Copilot будет использовать Bing для запросов о недавних событиях, новых тенденциях или технологиях, очень специфических темах, либо когда пользователь явно запрашивает веб-поиск. Ваш администратор GitHub Enterprise может включить Bing для всего вашего предприятия или делегировать это решение администратору организации. Дополнительные сведения см. в разделе Управление политиками и функциями GitHub Copilot в вашем предприятии.

При использовании Bing Copilot будет использовать содержимое вашего запроса, а также дополнительный доступный контекст, чтобы сгенерировать Bing поисковый запрос от вашего имени, который отправляется в Bing Search API. Copilot предоставит ссылку на результаты поиска с его ответом. Поисковый запрос, отправленный Bing, регулируется Заявлением о конфиденциальности Microsoft.

Использование Bring Your Own Key (BYOK) с GitHub Copilot

Когда вы используете Bring Your Own Key с GitHub Copilot Чат, вы можете подключить чат к крупным языковым моделям от поддерживаемых провайдеров, выходящих за рамки стандартной Copilot. Примеры поддерживаемых провайдеров включают Anthropic, AWS Bedrock, Google AI Studio, Microsoft Foundry, OpenAI, совместимые с OpenAI и xAI. Вы добавляете свой API для выбранного провайдера напрямую в настройках Copilot.

Когда BYOK активен:

  •         **Область функции**: выбранная вами модель используется в GitHub Copilot Чат. В режиме агента основной диалог осуществляется BYOK, но некоторые действия, такие как код-аппликация или другие вызовы инструментов, всё равно могут использовать GitHub-ориентированные модели, оптимизированные для этих задач. Эти встроенные модели не работают через вашего поставщика BYOK.
    
  •         **Процессы безопасности**: независимо от активного провайдера, ответы всё равно проходят через системы безопасности GitHub, включая фильтрацию контента, прежде чем результаты будут показаны вам.
    
  •         **Вопросы качества**: рекомендации могут различаться в зависимости от сильных сторон и покрытия обучения выбранного вами специалиста.
    
  •         **Обработка данных**: При использовании BYOK ваши запросы и ответы передаются выбранному провайдеру и могут подчиняться политикам хранения данных и конфиденциальности этого провайдера. GitHub временно обрабатывает эти данные для фильтрации безопасности, но не сохраняет содержимое разговоров BYOK дольше длительности сессии.
    
  •         **Ваши обязанности**: Вы несёте ответственность за следующее:
    
    • Безопасность ключа API провайдера
    • Затраты на использование или квоты
    • Валидация выходных данных
    • Оценка соответствия выбранной вами модели вашим требованиям по безопасности и качеству
    • Соблюдение условий выбранного вами провайдера
    • Определение соответствия выбранной вами модели применимым законам
    • Обеспечение того, чтобы человек проверял любой результат перед тем, как использовать их для принятия решений, влияющих на людей
  •         **Ограничения на экспорт**: Некоторые модели ИИ могут подвергаться экспортному контролю. Убедитесь, что выбранный вами поставщик и модель разрешены для использования в вашей юрисдикции.
    

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

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

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

  •         [AUTOTITLE](/enterprise-cloud@latest/copilot/github-copilot-chat/copilot-chat-in-github/using-github-copilot-chat-in-githubcom) в документации GitHub Enterprise Cloud. 
    

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

  •         [автозаголовок](/free-pro-team@latest/site-policy/github-terms/github-copilot-pre-release-terms)
    
  •         [GitHub Copilot Trust Center](https://copilot.github.trust.page/)