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

1. Обзор

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

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

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

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

Предпосылки

  • Данная лабораторная работа предполагает наличие знаний о средах Cloud Console и Cloud Shell.

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

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

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

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

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

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

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

bc3c899ac8bcf488.png

Или введите «Спросите Gemini» в строке поиска.

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. Объясните старшему разработчику, когда вы используете 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) — это веб-инструмент, призванный помочь вам изучить и использовать возможности моделей искусственного интеллекта Gemini от Google.

4. Загрузите и изучите приложение.

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

3e0c761ca41f315e.png

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

6356559df3eccdda.png

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

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

Запустите «Cloud Shell Editor».

18ca8f879206a382.png

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

7cef847802b51038.png

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

3336bea9c0e999b9.png

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

ae9475871b7d28a6.png

5. Введение в Gemini CLI

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

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

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

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

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

390e8cbd9a32e8eb.png

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

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

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

/about

f15a4036437b84d5.png

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

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

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

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 эффективен для документирования и комментирования, позволяя мгновенно генерировать строки документации для функций и классов. Вы также можете использовать его для быстрого добавления пояснительных встроенных комментариев к сложным или незнакомым блокам кода, что значительно повышает ясность и удобство поддержки кода.

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

Add docstrings to all files

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

a41d76b77290cc10.png

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

update .gitignore and add __pycache__ folder

Перейдите в режим просмотра «Управление исходным кодом» и просмотрите изменения, которые вы внесли на данный момент:

2c41f8b842573384.png

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

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

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

Generate unit tests for @calendar.py

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

6b59d78b83152a22.png

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

ec1a4fbb2d340384.png

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

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

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

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

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

54ef65ded5462b34.png

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

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

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

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 CLI:

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 CLI:

/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 CLI, на основе ранее созданного плана.

Принимайте вызовы инструментов, например, для создания папки и сохранения файла. Вы можете включить режим автоматического одобрения инструментов ( 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 предоставляет агенту прямой контекстный доступ к вашим репозиториям, позволяя ему управлять PR, проводить сортировку проблем и анализировать кодовую базу, что значительно сокращает количество переключений контекста и повышает производительность на протяжении всего процесса разработки.

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

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

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

Поздравляем, вы завершили лабораторную работу!

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

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

Что дальше:

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

Уборка

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

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

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

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