Ускорение разработки с помощью Gemini CLI

1. Обзор

Эта лабораторная работа посвящена использованию Gemini CLI, открытого агента на базе искусственного интеллекта в Google Cloud. Вы научитесь использовать Gemini CLI для решения различных задач, включая анализ существующих кодовых баз, генерацию документации и модульных тестов, а также рефакторинг как пользовательского интерфейса, так и серверной части веб-приложения на Python.

Что вы узнаете

В этой лабораторной работе вы научитесь выполнять следующие действия:

  • Как использовать Gemini CLI для выполнения распространенных задач разработчиков.

Предварительные требования

  • Для выполнения этой лабораторной работы предполагается знакомство со средами Cloud Console и Cloud Shell.

2. Настройка и требования

Настройка облачного проекта

  1. Войдите в консоль Google Cloud и создайте новый проект или используйте существующий. Если у вас еще нет учетной записи Gmail или Google Workspace, вам необходимо ее создать .

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • Название проекта — это отображаемое имя участников данного проекта. Это строка символов, не используемая API Google. Вы всегда можете его изменить.
  • Идентификатор проекта уникален для всех проектов Google Cloud и является неизменяемым (его нельзя изменить после установки). Консоль Cloud автоматически генерирует уникальную строку; обычно вам неважно, какая она. В большинстве практических заданий вам потребуется указать идентификатор вашего проекта (обычно обозначается как PROJECT_ID ). Если сгенерированный идентификатор вас не устраивает, вы можете сгенерировать другой случайный идентификатор. В качестве альтернативы вы можете попробовать свой собственный и посмотреть, доступен ли он. После этого шага его нельзя изменить, и он сохраняется на протяжении всего проекта.
  • К вашему сведению, существует третье значение — номер проекта , которое используется некоторыми API. Подробнее обо всех трех значениях можно узнать в документации .
  1. Далее вам потребуется включить оплату в консоли Cloud для использования ресурсов/API Cloud. Выполнение этого практического задания не потребует больших затрат, если вообще потребует. Чтобы отключить ресурсы и избежать дополнительных расходов после завершения этого урока, вы можете удалить созданные ресурсы или удалить проект. Новые пользователи Google Cloud имеют право на бесплатную пробную версию стоимостью 300 долларов США .

Настройка среды

Откройте чат Близнецов.

bc3c899ac8bcf488.png

Или введите "Спроси Близнецов" в строку поиска.

e1e9ad314691368a.png

Включите Gemini для Google Cloud API:

636114fa6e5f0abf.png

Включите GCA на следующем экране.

8e234b2e282c4413.png

Нажмите « Start chatting » и ответьте на один из примеров вопросов или введите свой собственный вопрос, чтобы попробовать.

ed120d672468b412.png

Варианты для выполнения:

  • Опишите Cloud Run в 5 ключевых пунктах.
  • Вы — менеджер по продукту Google Cloud Run, объясните студенту принцип работы Cloud Run в 5 кратких ключевых моментах.
  • Вы — менеджер по продукту Google Cloud Run. Объясните Cloud Run сертифицированному разработчику Kubernetes в 5 кратких ключевых моментах.
  • Вы — менеджер по продукту Google Cloud Run. Объясните старшему разработчику в 5 кратких ключевых моментах, когда следует использовать Cloud Run, а когда GKE.

После завершения закройте окно чата Gemini Cloud Assist.

Ознакомьтесь с руководством по составлению подсказок, чтобы узнать больше о том, как писать более эффективные подсказки.

Как Gemini для Google Cloud использует ваши данные

Обязательства Google в отношении конфиденциальности

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

Данные, которые вы предоставляете и получаете

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

Шифрование подсказок

При отправке запросов в Gemini ваши данные шифруются во время передачи и используются в качестве входных данных для базовой модели в Gemini.

Программные данные сгенерированы из Gemini

Gemini обучается на собственном коде Google Cloud, а также на выбранном коде сторонних разработчиков. Вы несете ответственность за безопасность, тестирование и эффективность своего кода , включая любое автозавершение, генерацию или анализ кода, которые предлагает вам Gemini.

Узнайте больше о том, как Google обрабатывает ваши запросы.

3. Варианты для проверки подсказок.

Если вы хотите изменить существующие подсказки, у вас есть несколько вариантов для этого.

Vertex AI Studio — это часть платформы Vertex AI от Google Cloud, специально разработанная для упрощения и ускорения разработки и использования моделей генеративного искусственного интеллекта.

Google AI Studio — это веб-инструмент для прототипирования и экспериментирования с оперативной разработкой и API Gemini.

Веб-приложение Google Gemini (gemini.google.com) — это веб-инструмент, разработанный для того, чтобы помочь вам изучить и использовать возможности моделей искусственного интеллекта Google Gemini.

4. Скачайте и изучите приложение.

Активируйте Cloud Shell, нажав на значок справа от строки поиска.

3e0c761ca41f315e.png

Если появится запрос на авторизацию, нажмите «Авторизовать», чтобы продолжить.

6356559df3eccdda.png

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

git clone https://github.com/gitrey/calendar-app-lab
cd calendar-app-lab

Запустите "Редактор Cloud Shell".

18ca8f879206a382.png

Откройте папку " calendar-app-lab ".

7cef847802b51038.png

Откройте новый терминал в редакторе Cloud Shell.

3336bea9c0e999b9.png

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

ae9475871b7d28a6.png

5. Введение в интерфейс командной строки Gemini

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

Этот шаг, заключающийся в установке переменной среды, не требуется для среды Qwiklabs. Перейдите к следующему шагу.

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

export GOOGLE_CLOUD_PROJECT="YOUR_PROJECT_NAME"

Убедитесь, что вы находитесь в корневой папке проекта:

cd ~/calendar-app-lab

Запустите Gemini CLI в окне терминала:

gemini

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

Если вы выполняете эти шаги в локальной среде, вы можете включить интеграцию с вашей IDE.

Вы всегда можете изменить это, выполнив команду /ide disable | enable .

eaee08868abb4ccd.png

Если вы запускаете лабораторную работу в среде Qwiklabs, выберите « Use Cloud Shell user credentials ».

В противном случае выполните аутентификацию в Gemini CLI, запустив следующую команду и выбрав « Login with Google »:

/auth

После перезапуска интерфейса командной строки вам будет предложено авторизовать приложение, перейдя по предоставленной ссылке.

390e8cbd9a32e8eb.png

Откройте ссылку и следуйте инструкциям, чтобы войти в систему, используя учетные данные студента Qwiklabs. 24c1671a3c14b61d.png

Скопируйте проверочный код и вернитесь к терминалу, чтобы завершить процесс, вставив код.

Для проверки метода аутентификации выполните следующую команду:

/about

f15a4036437b84d5.png

6. Понимание кодовой базы

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

Чтобы узнать больше о коде, отправьте следующую команду в интерфейсе командной строки Gemini:

Don't suggest any changes. Explain this codebase to me.

Просмотрите результат:

63b57c91fd0e90a8.png

7. Запустите приложение локально.

Интерфейс командной строки Gemini может значительно упростить запуск вашего Python-приложения локально, помогая автоматически генерировать необходимые конфигурационные файлы, такие как requirements.txt или базовый Dockerfile. Кроме того, он отлично подходит для управления зависимостями Python и устранения неполадок, поскольку может быстро объяснить ошибки трассировки стека, возникающие из-за отсутствующих пакетов или конфликтов версий, и часто предлагает точную команду pip install для решения проблемы.

Для запуска приложения локально введите следующую команду в терминале Gemini CLI:

Run this app locally

Следуйте инструкциям, чтобы начать работу с приложением:

d1fefa449b733c15.png

Нажмите на ссылку, чтобы просмотреть приложение:

695fc8a1abab0aa7.png

Пример выходных данных:

e9f986d9088b4419.png

d2bb703195b4f99.png

8. Добавление документации

Интерфейс командной строки Gemini эффективен для документирования и комментирования, позволяя мгновенно генерировать docstring-строки для функций или классов. Вы также можете использовать его для быстрого добавления поясняющих встроенных комментариев к сложным или незнакомым блокам кода, значительно повышая ясность и удобство сопровождения кода.

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

Add docstrings to all files

Подтвердите предложенные изменения. Если включена интеграция с IDE, вы можете принять изменения и продолжить, используя элементы управления пользовательского интерфейса или нажав Enter в терминале. Вы также можете включить режим автоматического подтверждения (YOLO) с помощью комбинации клавиш " ctrl+y ".

a41d76b77290cc10.png

Обновите файл .gitignore , используя следующую команду:

update .gitignore and add __pycache__ folder

Переключитесь в режим просмотра «Управление версиями» и просмотрите внесенные вами изменения:

2c41f8b842573384.png

9. Добавление модульных тестов

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

Для генерации модульных тестов используйте приведенную ниже подсказку:

Generate unit tests for @calendar.py

После ознакомления с изменениями, примите их.

6b59d78b83152a22.png

Установите новые зависимости и запустите тесты. Gemini CLI будет отслеживать, исправлять и повторно запускать сгенерированный код в цикле, пока тесты не пройдут успешно и код не будет проверен.

ec1a4fbb2d340384.png

10. Проверьте наличие ошибок.

Интерфейс командной строки Gemini может помочь в проверке логики, позволяя вам запросить у него просмотр и анализ фрагментов кода, выявляя потенциальные логические ошибки, ошибки типа «на единицу» или некорректную обработку условий. Объяснив предполагаемое поведение кода и попросив интерфейс командной строки выявить несоответствия, вы можете быстро обнаружить скрытые дефекты до запуска кода.

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

Are there any bugs in the conversion logic? Check if negative numbers are handled properly.

Ознакомьтесь с предложенными изменениями и примите их в чате:

54ef65ded5462b34.png

11. Рефакторинг пользовательского интерфейса

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

Для рефакторинга пользовательского интерфейса с использованием библиотеки Bootstrap отправьте следующую команду в интерфейс командной строки Gemini:

Refactor UI to use Bootstrap library

Просмотрите и примите изменения:

16e6ca14e703127.png

Для начала запустите приложение. Если оно уже запущено, просто обновите страницу.

python3 main.py

Перезагрузите страницу и проверьте изменения.

b52a709e902040e3.png

54664e527bcd9227.png

Внедрите обработку ошибок, чтобы при возникновении проблем отображалась страница с сообщением об ошибке.

Implement error handling to display an error page when issues occur.

Пожалуйста, обновите страницу, чтобы увидеть обновления.

Для подтверждения страницы с ошибкой отправьте отрицательное число.

82e16d4cf25933db.png

12. Рефакторинг бэкенда

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

Измените серверную часть, чтобы сохранять запросы на конвертацию в памяти.

Store requests in memory and create a page to display conversion history. Add links on all pages to view the history.

Просмотрите и подтвердите изменения в чате:

19cfa20552fb3a01.png

Отправьте несколько запросов в приложение, затем просмотрите страницу истории.

ac5639d18b341b0a.png

Просмотрите историю запросов на конвертацию.

9ca680e193510640.png

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

analyze README.md file and update it with latest codebase state

Просмотрите результат. Если вы включили интеграцию с Cloud Shell, вы можете использовать элементы управления пользовательского интерфейса для доступа к изменениям или сделать это из терминала.

13. Встроенные инструменты Gemini CLI

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

Отправьте этот запрос в Gemini CLI, чтобы просмотреть доступные инструменты:

/tools

Просмотрите результат.

e5ef2d9b81f6c10.png

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

14. Команда инициализации репозитория Gemini CLI

В состав Gemini CLI входит команда для анализа проекта и создания специализированного файла GEMINI.md.

Для создания файла GEMINI.md отправьте следующую команду через интерфейс командной строки Gemini:

/init

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

Чтобы понять, какие инструкции или контекст следует включить в файл GEMINI.md вашего проекта, хорошей отправной точкой является изучение файла GEMINI.md, который находится в репозитории gemini-cli .

15. Пользовательские команды Gemini CLI

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

В репозитории содержится несколько пользовательских команд, расположенных в папке .gemini/commands .

Пользовательская команда для создания диаграммы

Отправьте этот запрос в Gemini CLI, чтобы сгенерировать диаграмму потока запросов в формате Mermaid.

Принимайте вызовы инструментов, например, для создания папки и сохранения файла.

/diagram:new request flow for this app

Просмотрите результат.

a85a31f482a2cc7d.png

Чтобы предварительно просмотреть диаграмму, установите расширение Mermaid Chart из Marketplace.

22d4a002e2137b55.png

Откройте файл и выберите пункт «Предварительный просмотр» в контекстном меню.

bccf0ae8ac46415f.png

c669fcd96c34662.png

Пользовательская команда для создания колоды

Отправьте этот запрос в Gemini CLI, чтобы сгенерировать презентацию с ключевыми моментами в формате Marp.

Принимайте вызовы инструментов, например, для создания папки и сохранения файла.

/deck:new key points and details for this app

Просмотрите результат.

c9aa767796204c7c.png

Этот шаг несовместим с Cloud Shell, поскольку для расширения Marp требуется установленный веб-браузер.

Установите расширение Marp для VS Code из Marketplace, чтобы сохранить презентацию.

a9d339718cbfcd9.png

В противном случае вам нужно будет открыть сгенерированный файл в редакторе и в палитре команд выбрать " Marp: Export Slide Deck ".

91143fe81f7f5d71.png

Пользовательская команда для планирования внедрения новой функции

Отправьте этот запрос в Gemini CLI для рефакторинга пользовательского интерфейса.

Принимайте вызовы инструментов, например, для создания папки и сохранения файла.

/plan:new refactor UI to use Materialize CSS

Просмотрите результат.

552dbe189a493f91.png

Запустите процесс рефакторинга пользовательского интерфейса, отправив это сообщение через интерфейс командной строки Gemini на основе ранее сгенерированного плана.

Принимайте вызовы инструментов, например, создание папки и сохранение файла. Вы можете включить режим автоматического одобрения инструментов ( YOLO mode ), используя комбинацию клавиш " ctrl+y ".

/plan:impl implement the plan to refactor the app

a3ceec7146f285e0.png

Запустите/перезагрузите приложение и просмотрите результат:

fd0675f713d361e4.png

7352b93acabfb5be.png

16. Неинтерактивный режим Gemini CLI

При использовании Gemini CLI в неинтерактивном режиме в рамках конвейера CI/CD вы можете автоматизировать различные задачи, передавая подсказки и команды непосредственно в CLI без необходимости ручного вмешательства. Это обеспечивает бесшовную интеграцию в автоматизированные рабочие процессы для анализа кода, создания документации и других задач разработки.

Откройте новое окно терминала или закройте существующую сессию Gemini CLI и выполните эту команду.

gemini -p "Explain the architecture of this codebase"

Просмотрите результат.

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

gemini -p "Explain the architecture of this codebase and save the file in the markdown format in the docs folder" -y

Просмотрите результат.

Используя Gemini CLI в неинтерактивном режиме, вы можете значительно расширить возможности автоматизации ваших конвейеров CI/CD, что приведет к повышению эффективности циклов разработки и улучшению качества кода.

17. Режим командной строки Gemini CLI

Хотя LLM-ы справляются со сложными задачами, прямые команды более эффективны для простых действий. ! prefix позволяет плавно переключаться между интерфейсами ИИ и традиционной командной строки.

!ls

Просмотрите вывод. Нажмите Escape , чтобы выйти из режима командной строки.

18. Поддержка Gemini CLI MCP

Gemini CLI, используя протокол контекста модели (MCP), может интегрироваться со сторонними системами, такими как Jira, Confluence или GitHub. Это достигается за счет интеграции пользовательских инструментов с сервером MCP, что позволяет Gemini CLI создавать или обновлять задачи в JIRA, получать информацию со страниц Confluence, создавать запросы на слияние и т. д.

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

echo '{
    "mcpServers": {
        "context7": {
            "httpUrl": "https://mcp.context7.com/mcp"
        }
    }
}' > .gemini/settings.json

Запустите сессию Gemini CLI:

gemini

Проверьте настроенные серверы MCP:

/mcp

Просмотрите результат.

c80d95544cc3436a.png

Отправьте приглашение на настроенный для тестирования сервер MCP:

use context7 tools to look up how to implement flex grid in react mui library 

Утвердите инструменты и проверьте результаты.

b51db5af09bd3f02.png

19. Пример конфигурации серверов MCP для вашей локальной среды.

В локальной среде можно настроить несколько серверов MCP, используя следующую конфигурацию.

{
    "mcpServers": {
        "Snyk Security Scanner": {
            "command": "snyk",
            "args": [
                "mcp",
                "-t",
                "stdio",
                "--experimental"
            ],
            "env": {}
        },
        "atlassian": {
            "command": "npx",
            "args": [
                "-y",
                "mcp-remote",
                "https://mcp.atlassian.com/v1/sse"
            ]
        },
        "playwright": {
            "command": "npx",
            "args": [
                "@playwright/mcp@latest"
            ]
        },
        "github": {
            "command": "npx",
            "args": [
                "-y",
                "@modelcontextprotocol/server-github"
            ],
            "env": {
                "GITHUB_PERSONAL_ACCESS_TOKEN": "******"
            }
        }
    }
}

В этой конфигурации серверы MCP превращают ваш агент Gemini CLI в динамичный инструмент разработки и совместной работы, предоставляя стандартизированный доступ к внешним системам. В частности, сервер Snyk Security Scanner позволяет агенту проверять код и зависимости на наличие уязвимостей, не покидая текущее рабочее пространство, а сервер Atlassian подключается к Jira и Confluence, позволяя Gemini CLI создавать, искать и обновлять задачи или документацию, используя естественный язык. Кроме того, сервер Playwright предоставляет агенту возможности автоматизации браузера, позволяя ему перемещаться по сети и взаимодействовать с ней для таких задач, как тестирование или извлечение данных. Наконец, сервер Github предоставляет агенту прямой контекстный доступ к вашим репозиториям, позволяя ему управлять запросами на слияние, сортировать задачи и анализировать кодовую базу, значительно сокращая переключение контекста и повышая производительность всего рабочего процесса разработки.

20. Заключение по Gemini CLI

В заключение, Gemini CLI выделяется как мощный и универсальный агент искусственного интеллекта с открытым исходным кодом, который легко интегрируется с моделями Gemini в Google Cloud, значительно повышая производительность разработчиков. В ходе этой лабораторной работы мы изучили его возможности в оптимизации различных распространенных задач разработки, от понимания сложных кодовых баз и генерации необходимой документации и модульных тестов до эффективной рефакторизации как фронтенд-, так и бэкенд-компонентов веб-приложения на Python. Используя Gemini CLI, разработчики могут сократить переключение контекста, автоматизировать повторяющиеся процессы и, в конечном итоге, создавать более качественный код с большей эффективностью. Его способность внедрять возможности генеративного ИИ непосредственно в командную строку действительно революционизирует рабочий процесс разработки.

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

Поздравляем, вы завершили практическое занятие!

Что мы рассмотрели:

  • Использование Gemini CLI для решения распространенных задач разработчиков.

Что дальше:

  • Впереди еще больше практических занятий!

Уборка

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

Удаление проекта

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

©2024 Google LLC. Все права защищены. Google и логотип Google являются товарными знаками Google LLC. Все остальные названия компаний и продуктов могут являться товарными знаками соответствующих компаний, с которыми они связаны.