Обзор Gemini Code Assist для разработчиков

1. Введение

В этом лабораторном занятии вы будете использовать Gemini Code Assist, инструмент для совместной работы на базе искусственного интеллекта в Google Cloud. Вы познакомитесь с тем, как использовать Gemini Chat и встроенную помощь по коду для создания кода, понимания кода и многого другого.

Что ты сделаешь...

  • Вы будете использовать Cloud Shell IDE для загрузки существующего шаблона кода для веб-приложения.
  • Вы будете использовать Gemini Chat в Cloud Shell IDE, чтобы задавать общие вопросы о Google Cloud.
  • Вы будете использовать встроенную помощь по написанию кода Gemini Code Assist в Cloud Shell IDE для создания, обобщения и завершения кода.

Чему вы научитесь...

  • Как использовать Gemini Code Assist для решения некоторых задач разработчика, таких как генерация кода, завершение кода и обобщение кода.
  • Как использовать Gemini for Cloud, чтобы узнать о Google Cloud.

Что вам понадобится...

  • Веб-браузер Chrome
  • Учетная запись Gmail
  • Облачный проект с включенной оплатой
  • Gemini Code Assist включен для вашего облачного проекта

Эта лаборатория ориентирована на разработчиков всех уровней, включая новичков. Хотя пример приложения написан на языке Python, вам не обязательно быть знакомым с программированием на Python, чтобы понять, что происходит. Наше внимание будет сосредоточено на ознакомлении с возможностями Gemini Code Assist для разработчиков.

2. Настройка

В этом разделе описано все, что вам нужно сделать, чтобы начать работу с этой лабораторной работой.

Включите Gemini для облака в проекте Google Cloud

Теперь мы включим Gemini for Cloud в нашем проекте Google Cloud. Следуйте инструкциям ниже:

  1. Посетите https://console.cloud.google.com и убедитесь, что вы выбрали проект Google Cloud, с которым планируете работать для этой лабораторной работы. Нажмите на значок Open Gemini, который вы видите в правом верхнем углу.

28f084ec1e159938.png

  1. Окно чата Gemini for Cloud откроется в правой части консоли. Нажмите кнопку «Включить», как показано ниже. Если вы не видите кнопку «Включить» и вместо этого видите интерфейс чата, вполне вероятно, что вы уже включили Gemini for Cloud для проекта и можете сразу перейти к следующему шагу.

e8df9adc4ea43a37.png

  1. Как только он будет включен, вы сможете протестировать Gemini for Cloud, задав ему один или два запроса. Показаны несколько примеров запросов, но вы можете попробовать что-то вроде What is Cloud Run?

9859ea86a8310cb.png

Gemini for Cloud ответит на ваш вопрос. Вы можете нажать на f68286b2b2ea5c0a.png в правом верхнем углу, чтобы закрыть окно чата Gemini for Cloud.

Включите Gemini Code Assist в Cloud Shell IDE

Для остальной части кодовой лаборатории мы будем использовать Cloud Shell IDE, полностью управляемую среду разработки на основе Code OSS . Нам нужно включить и настроить Code Assist в Cloud Shell IDE, шаги приведены ниже:

  1. Посетите ide.cloud.google.com . Для появления IDE может потребоваться некоторое время, поэтому наберитесь терпения.
  2. Нажмите кнопку Cloud Code — Войти в нижней строке состояния, как показано на рисунке. Авторизуйте плагин согласно инструкциям. Если в строке состояния вы видите «Cloud Code — нет проекта» , выберите его, а затем выберите конкретный проект Google Cloud из списка проектов, с которыми вы планируете работать.

6f5ce865fc7a3ef5.png

  1. Нажмите кнопку «Близнецы» в правом нижнем углу, как показано, и в последний раз выберите правильный проект Google Cloud. Если вас попросят включить Cloud AI Companion API , сделайте это и продолжайте.
  2. Выбрав проект Google Cloud, убедитесь, что вы видите это в сообщении о состоянии Cloud Code в строке состояния и что у вас также включен Code Assist справа в строке состояния, как показано ниже:

709e6c8248ac7d88.png

Gemini Code Assist готов к использованию!

Необязательно: если вы не видите Gemini в строке состояния справа внизу, вам необходимо включить Gemini в Cloud Code. Прежде чем сделать это, убедитесь, что Gemini включен в IDE, перейдя в «Расширение Cloud Code» → «Настройки» , а затем введите текст Gemini, как показано ниже. Убедитесь, что флажок установлен. Вам следует перезагрузить вашу IDE. Это активирует Gemini в Cloud Code, и значок Gemini в строке состояния появится в вашей IDE.

228c9c9c6b956c8e.png

3. Создайте образец приложения.

Мы создадим пример приложения (приложение Python Flask), которое будем использовать для изучения функций Gemini Code Assist.

Выполните следующие действия:

  1. Нажмите на название проекта Google Cloud в строке состояния ниже.

f151759c156c124e.png

  1. Появится список опций. Нажмите «Новое приложение» из списка ниже.

91ea9836f38b7f74.png

  1. Выберите приложение Cloud Run .
  2. Выберите шаблон приложения Python (Flask): Cloud Run .
  3. Сохраните новое приложение в предпочитаемом вами месте.
  4. Уведомление подтверждает, что ваше приложение было создано, и открывается новое окно с загруженным приложением, как показано ниже. Откроется файл README.md . Вы можете закрыть это представление на данный момент.

ааа3725b17ce27cf.png

4. Общайтесь с Близнецами

Мы начнем с того, что научимся общаться с Близнецами. Gemini доступен в качестве помощника по чату в Cloud Shell IDE как часть расширения Cloud Code в VS Code. Вы можете вызвать его, нажав кнопку «Близнецы» на левой панели навигации. Найдите значок Близнецов. а489f98a34898727.png на левой панели инструментов навигации и щелкните по нему.

Откроется панель «Чат: Gemini» в Cloud Shell IDE, и вы сможете общаться с Gemini, чтобы получить помощь в Google Cloud.

14ad103efaa0ddaa.png

Давайте воспользуемся панелью чата Gemini, чтобы ввести подсказку и просмотреть ответ от Gemini. Введите следующую подсказку:

What is Cloud Run? 

Gemini должны ответить подробностями о Cloud Run. Подсказки — это вопросы или утверждения, описывающие необходимую вам помощь. Подсказки могут включать контекст из существующего кода, который Google Cloud анализирует, чтобы предоставить более полезные и полные ответы. Дополнительную информацию о написании подсказок для получения хороших ответов см. в разделе «Написание более эффективных подсказок для Gemini в Google Cloud» .

Попробуйте воспользоваться следующими примерами подсказок или любыми собственными, чтобы задать вопросы о Google Cloud:

  • What is the difference between Cloud Run and Cloud Functions?
  • What services are available on Google Cloud to run containerized workloads?
  • What are the best practices to optimize costs while working with Google Cloud Storage?

Обратите внимание на значок корзины вверху — это ваш способ сбросить контекст истории чата Code Assist. Также обратите внимание, что это взаимодействие в чате является контекстным для файлов, над которыми вы работаете в IDE.

5. Объяснение кода

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

Вы можете использовать Gemini Code Assist, чтобы понять части кода приложения. Вернитесь к приложению, которое мы создали на предыдущем шаге, и вы сможете использовать Gemini Code Assist, чтобы объяснить файлы и код, доступные в вашей IDE.

  1. Если файлы не видны, на панели активности IDE нажмите «Проводник» ( Меню Code OSS Explorer ).
  2. На панели «Проводник» выберите Dockerfile .
  3. Вы можете выделить любую часть содержимого файла, нажать на лампочку ( Лампа Code OSS Duet AI ), а затем нажмите «Близнецы: объясните это» . Например, выберите строку, начинающуюся с ENTRYPOINT , щелкните лампочку ( Лампа Code OSS Duet AI ), а затем нажмите «Близнецы: объясните это» . Gemini генерирует объяснение на естественном языке о конкретном разделе Dockerfile, о котором вам нужна дополнительная информация. Gemini отвечает подробностями об инструкции ENTRYPOINT . Вы узнаете, что с помощью этой инструкции Docker запустит файл app.py при запуске контейнера.
  4. Чтобы просмотреть содержимое файла app.py , на панели действий нажмите Проводник ( Меню Code OSS Explorer ), а затем выберите app.py .
  5. В определении функции hello() не стесняйтесь выбирать строки, о которых вы хотите получить дополнительную информацию. Затем нажмите на лампочку ( Лампа Code OSS Duet AI ), затем нажмите «Близнецы: объясните это» . В нашем примере мы выбрали следующие две строки кода, а затем запустили Gemini: Объясните это действие.

14d9c56af016b65d.png

  1. Gemini отвечает подробным объяснением этих двух переменных среды Cloud Run ( K_SERVICE, K_REVISION ) и того, как они используются в коде приложения. Обратите внимание, что Gemini, обладая знаниями Google Cloud и таких сервисов, как Cloud Run, не только объяснил код Python, но и дал контекст того, что означают эти переменные в Cloud Run.

Попробуйте следующие дополнительные способы получить объяснение кода:

  1. Сохраните app.py как текущий открытый файл в IDE. Перейдите на панель чата Gemini на левой панели навигации в VS Code и введите приглашение Объясните этот файл . Это рассмотрит весь файл и объяснит его вам.
  2. Вы также можете выбрать любую часть файла, а затем использовать панель чата Gemini слева и ввести приглашение «Объясните это» . Это объяснит только выбранную часть файла. Это похоже на то, как если бы вы щелкнули лампочку( Лампа Code OSS Duet AI ), а затем нажмите «Близнецы: объясните это».
  3. Вы также можете выделить часть текста и щелкнуть Gemini: Smart Actions в правом верхнем углу IDE, как показано ниже, чтобы получить список действий, которые можно выполнить с выделенным текстом. Одним из этих вариантов будет Объяснить это действие:

adeb72acd708174.png

6. Сгенерируйте код с подсказками

В этом разделе показано, как использовать Gemini Code Assist для создания кода из комментариев.

Давайте попробуем эти функции. Следуйте инструкциям ниже:

  1. Создайте новый файл с именем utils.py .
  2. В новом файле кода в новой строке введите # Function to print a list of blobs in a Google Cloud Storage bucket , а затем нажмите Enter (для Windows и Linux) или Return (для MacOS). Gemini может попытаться сгенерировать код по мере его ввода, но не примет его. На следующем этапе мы специально активируем генерацию кода.
  3. Чтобы запустить генерацию кода, нажмите Control+Enter (для Windows и Linux) или Control+Return (для MacOS). Рядом с текстом приглашения в файле Python Gemini Code Assist генерирует код в виде призрачного текста. Он предоставит вам одно или несколько предложений по коду с помощью панели инструментов, с помощью которой вы можете переходить от одного предложения кода к другому (в случае наличия нескольких предложений). Вы даже можете принять любое предложение кода через панель инструментов. Если вы не видите панель инструментов или она исчезает, наведите курсор на сгенерированный код, чтобы он появился снова.
  4. Необязательно: Чтобы принять сгенерированный код, нажмите Tab . Если предложений несколько, вы можете нажать клавишу Tab несколько раз, чтобы перейти от одного предложенного фрагмента кода к другому.

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

d6d7915885c5e74b.png

Обратите внимание на волнистую линию вокруг кода. Это цитирование Кодекса в действии. Если вы наведете курсор на любую из строк, отобразится атрибуция кода и другая соответствующая информация о лицензировании. Пример показан ниже:

c7473cadcf15d887.png

Затем вы можете игнорировать предупреждение о цитировании, нажав «Быстрое исправление…» . Появится предлагаемое быстрое исправление, образец которого показан ниже:

10f4672830954c90.png

Вы можете выбрать « Игнорировать предупреждение о цитировании», если согласны принять лицензию на код.

(Необязательно) Вот еще несколько советов по генерации кода, которые стоит попробовать:

  1. Вы также можете использовать функцию чата Gemini, чтобы задать тот же запрос и получить ответ в окне чата. Затем в интерфейсе чата отображаются параметры копирования кода или вставки в текущий файл.
  2. Попробуйте использовать собственные подсказки для примера кода, который вам нужен. Ниже приведены несколько предложений (при условии, что вы находитесь в одном из файлов Python): или выберите один из подсказок, приведенных ниже:
  • Напишите код Python для публикации сообщения в Google Cloud Pub/Sub.
  • Напишите код Python для инициализации клиента BigQuery.
  • Напишите код Python для подключения моего приложения к Cloud SQL.

7. Получайте встроенные предложения по коду во время написания кода.

Пока вы пишете код, Gemini Code Assist предлагает встроенные предложения по коду, которые вы можете принять или проигнорировать. Чтобы опробовать эту функцию, мы изменим файл utils.py , который мы создали в предыдущем разделе:

  1. Откройте файл utils.py как текущий файл в Cloud Shell IDE.
  2. Одна из вещей, которые мы можем сделать, — это предоставить правильные операторы import , если их нет в сгенерированном коде.
  3. Начните вводить слово import , и вы увидите Gemini Code Assist, предлагающий код в виде призрачного текста. Чтобы принять предложение кода от Gemini Code Assist, нажмите Tab . В противном случае, чтобы проигнорировать это предложение, нажмите Esc или продолжите писать код. На примере экрана ниже предлагается импортировать класс storage , поскольку он используется в коде. Нажмите Tab , чтобы принять предложенный код. Также предлагается оператор import os , но поскольку он не нужен, мы можем его удалить.

cb3dfff74172959d.png

  1. Перейдите в конец файла utils.py и добавьте строку для вызова функции, если она не указана. В данном случае это функция print_blobs . Вы можете просто начать вводить имя функции, и завершение кода поможет вам завершить оператор.
  2. Вам нужно будет указать Bucket_name, и вы можете использовать следующее общедоступное имя Bucket: gemini-codeassist-bucket . Пример вызова функции показан ниже. Обратите внимание, что вы можете увидеть незначительные различия в именах функций и т. д.

print_blobs(bucket_name="gemini-codeassist-bucket")

(Необязательно) Запустите пример кода

Поскольку мы написали код для перечисления больших двоичных объектов в корзине Google Cloud Storage, нам нужно будет установить библиотеку Python google-cloud-storage .

Перейдите в файл requirements.txt и добавьте новую строку с зависимостью google-cloud-storage как показано ниже. Образец файла requirements.txt показан ниже.

Flask==2.3.3
requests==2.31.0
debugpy # Required for debugging.
google-cloud-storage

Сохраните файл requirements.txt .

Чтобы увидеть код в действии, нам нужно будет запустить новый сеанс терминала из Cloud Shell IDE через значок меню в левом верхнем углу. Нажмите на значок меню, а затем Терминал → Новый терминал, как показано ниже:

289173c68f1addb5.png

В сеансе терминала установите зависимости Python с помощью следующей команды:

pip3 install -r requirements.txt

Наконец, вы можете запустить файл utils.py с помощью следующей команды:

python utils.py

Это должно отобразить большие двоичные объекты, которые присутствуют в общедоступной корзине Google Cloud Storage. В идеале вы должны увидеть в выводе два больших двоичных объекта ( file1.txt и file2.txt ).

Поиск неисправностей

Если вы получаете ошибку «доступа» при отображении объектов в указанном выше общедоступном сегменте, вы можете создать свой собственный сегмент Google Cloud Storage и использовать его вместо gemini-codeassist-bucket . В следующем разделе показано, как это сделать.

(Необязательно) Создайте свой собственный сегмент облачного хранилища.

Давайте воспользуемся помощью Gemini, чтобы предоставить нам команды для создания корзины, сделать ее общедоступной и загрузить в нее образцы объектов.

Начните со следующего запроса: «Какая команда gcloud позволяет создать общедоступную корзину в Google Cloud Storage?»

Это должно предоставить вам команду gcloud для создания корзины. Точная команда показана ниже:

gcloud storage buckets create gs://<BUCKET_NAME>

Выберите уникальное имя для <BUCKET_NAME> и выполните команду в терминале.

Теперь, когда мы создали корзину, нам бы хотелось, чтобы она была общедоступной. Давайте запросим у Gemini команду для этого, используя следующую подсказку: «Как сделать корзину облачного хранилища Google общедоступной?»

Это должно предоставить вам команду gcloud, чтобы сделать ее общедоступной. Ответ должен быть примерно таким:

gcloud storage buckets add-iam-policy-binding gs://<BUCKET_NAME> --member=allUsers --role=roles/storage.objectViewer

Замените <BUCKET_NAME> именем корзины, которое вы использовали ранее, и выполните команду.

Наконец, мы хотели бы загрузить в корзину несколько образцов файлов. Выполните следующие команды в терминале (не забудьте заменить переменную <BUCKET_NAME> именем вашего сегмента.

touch f1.txt
touch f2.txt

gcloud storage cp f1.txt gs://<BUCKET_NAME>
gcloud storage cp f2.txt gs://<BUCKET_NAME>

Теперь вы можете выполнить файл utils.py , используя <BUCKET_NAME> вместо gemini-codeassist-bucket .

Очистка

Если вы создали свой собственный сегмент Google Cloud Storage, мы настоятельно рекомендуем удалить его, чтобы избежать каких-либо расходов и потенциальных угроз безопасности.

Вы можете удалить корзину с помощью команды, приведенной ниже:

gcloud storage buckets delete gs://<BUCKET_NAME>

8. Поздравляем!

Поздравляем! Вы успешно поработали с Gemini Code Assist над примером проекта, чтобы понять, как он может помочь с генерацией кода, завершением кода и суммированием кода, а также помочь вам получить ответы на вопросы о Google Cloud.

Справочная документация