Интегрированные среды разработки
Как защитить свой код от Gemini in Android Studio
Хотя это и полезная функция, если вы работаете над проприетарной или важной кодовой базой, возможно, вы не захотите делиться своим кодом с Google.
Если вы используете Android Studio Jellyfish или более позднюю версию, вы можете использовать Gemini in Android Studio (ранее Studio Bot). Вы можете задать ему множество различных вопросов прямо в IDE. Инструмент очень умный и способен использовать код вашего проекта в IDE, чтобы улучшить ответы, которые он вам выдает, а также предоставляет интеллектуальное автодополнение кода. Хотя это и полезная функция, если вы работаете над проприетарной или (коммерчески или иным образом) важной кодовой базой, возможно, вы не захотите делиться своим кодом с Google. Google четко объясняет, как используются данные, в своей Политике конфиденциальности и документации по данным и конфиденциальности, но даже если лично вас все устраивает, многие организации придерживаются более строгой политики в отношении своей интеллектуальной собственности (например, кода).
Вы можете контролировать общий доступ к своему коду прямо в настройках Android Studio. Можно выбрать: разрешить использовать код всех проектов, разрешить определенные проекты или не использовать никакой код.
Затем вы можете принять решение о разрешении только определенных проектов, выбрав опцию Ask to decide per project
и установив соответствующий флажок только для тех проектов, которые вы хотите разрешить.
И хотя вы, возможно, знаете о рисках, связанных с обменом конфиденциальным кодом, и приняли осознанное решение, все остальные, кто также использует вашу кодовую базу в Android Studio, могут этого не знать и случайно включить параметр Use context from your project to improve responses
. Вам все равно нужно защищать свою кодовую базу, и это может быть утомительно — постоянно проверять настройки у большой команды разработчиков, поэтому лучше всего обеспечить защиту кода прямо из системы контроля исходных кодов.
Исключение кода для Gemini Studio Bot
Чтобы исключить весь каталог, достаточно поместить файл с именем .aiexclude
в главный каталог (обратите внимание на предшествующую точку). Он имеет ту же грамматику и семантику, что и файлы .gitignore
, поэтому для рекурсивного исключения всех файлов и подкаталогов он должен содержать *
(также можно добавить комментарии, начинающиеся с #
).
Тогда ко всем файлам в каталоге и всем подкаталогам будет применён блок.
Отправьте этот файл в систему контроля кода (git и т.д.), и он будет подхвачен всеми вашими разработчиками и применит эту настройку (скрытую — она не изменит настройки Android Studio на экране настроек, но вы увидите изменение значка Gemini в правом нижнем углу — см. ниже), когда они попытаются использовать Gemini Studio Bot. Разработчики по-прежнему смогут использовать его как инструмент, чтобы задавать вопросы об общих концепциях, но код не будет доступен искусственному интеллекту, чтобы обеспечивать контекст для ответов. Теоретически другие разработчики могут удалить этот файл перед использованием Gemini, но это будет преднамеренным решением поделиться кодом (эквивалентно загрузке кода в публичный репозиторий, например).
Если вы хотите немного больше контроля над тем, что вы исключаете (например, когда только часть вашего кода должна быть защищена), вы можете обращаться с этим файлом .aiexclude
так же, как с файлом .gitignore,
с теми же правилами. Вы можете просто поместить файл с символом *
в начало каталога, который хотите защитить, или добавить в него имена файлов или расширения с подстановочными знаками для более тонкого контроля.
Тестирование
Вы можете спросить, как я проверил (помимо доверия к официальной документации), что это будет работать?
Чтобы проверить это, я включил опцию Use context from your project to improve responses
и опцию Enable AI-based inline code completions
и начал модифицировать пример приложения. Как и ожидалось, Gemini Studio Bot подсказал, что я могу использовать.
Когда я добавил файл .aiexclude
и попробовал выполнить тот же тест, завершение кода не появилось, что указывает на то, что эта функция была отключена.
Вы также можете проверить настройку в правом нижнем углу Android Studio, информация об ИИ-дополнении кода подскажет вам, доступно оно или нет:
Даже при наличии файла .aiexclude
я все равно смог задать Gemini общие вопросы, не связанные с конкретной кодовой базой.
Теперь, когда появились эти замечательные инструменты, помогающие ускорить разработку, нам нужно убедиться, что мы используем их правильно. Надеюсь, другие создатели генеративного ИИ будут использовать аналогичный (а в идеале — тот же самый!) метод предотвращения проникновения ИИ, чтобы мы могли использовать эти замечательные инструменты, не беспокоясь о том, что они могут нарушить интеллектуальную собственность.