1. Обзор
Эта лабораторная работа посвящена использованию Gemini CLI, открытого агента на базе искусственного интеллекта в Google Cloud. Вы научитесь использовать Gemini CLI для решения различных задач, включая анализ существующих кодовых баз, генерацию документации и модульных тестов, а также рефакторинг как пользовательского интерфейса, так и серверной части веб-приложения на Python.
Что вы узнаете
В этой лабораторной работе вы научитесь выполнять следующие действия:
- Как использовать Gemini CLI для выполнения распространенных задач разработчиков.
Предварительные требования
- Для выполнения этой лабораторной работы предполагается знакомство со средами Cloud Console и Cloud Shell.
2. Настройка и требования
Настройка облачного проекта
- Войдите в консоль Google Cloud и создайте новый проект или используйте существующий. Если у вас еще нет учетной записи Gmail или Google Workspace, вам необходимо ее создать .



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

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

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

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

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

Варианты для выполнения:
- Опишите 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.
- Веб-приложение Gemini (gemini.google.com)
Веб-приложение Google Gemini (gemini.google.com) — это веб-инструмент, разработанный для того, чтобы помочь вам изучить и использовать возможности моделей искусственного интеллекта Google Gemini.
- Мобильное приложение Google Gemini для Android и приложение Google для iOS.
4. Скачайте и изучите приложение.
Активируйте Cloud Shell, нажав на значок справа от строки поиска.

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

В терминале выполните следующие команды, чтобы клонировать репозиторий Git локально.
git clone https://github.com/gitrey/calendar-app-lab
cd calendar-app-lab
Запустите "Редактор Cloud Shell".

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

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

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

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 .

Если вы запускаете лабораторную работу в среде Qwiklabs, выберите « Use Cloud Shell user credentials ».
В противном случае выполните аутентификацию в Gemini CLI, запустив следующую команду и выбрав « Login with Google »:
/auth
После перезапуска интерфейса командной строки вам будет предложено авторизовать приложение, перейдя по предоставленной ссылке.

Откройте ссылку и следуйте инструкциям, чтобы войти в систему, используя учетные данные студента Qwiklabs. 
Скопируйте проверочный код и вернитесь к терминалу, чтобы завершить процесс, вставив код.
Для проверки метода аутентификации выполните следующую команду:
/about

6. Понимание кодовой базы
С помощью Gemini CLI можно быстро разобраться в коде, запросив у него краткое описание назначения файлов или каталогов, а также объяснение сложных функций или разделов кода. Это позволяет разработчикам быстро осваивать новые проекты или понимать незнакомые части существующего кода без необходимости глубокого ручного изучения.
Чтобы узнать больше о коде, отправьте следующую команду в интерфейсе командной строки Gemini:
Don't suggest any changes. Explain this codebase to me.
Просмотрите результат:

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

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

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


8. Добавление документации
Интерфейс командной строки Gemini эффективен для документирования и комментирования, позволяя мгновенно генерировать docstring-строки для функций или классов. Вы также можете использовать его для быстрого добавления поясняющих встроенных комментариев к сложным или незнакомым блокам кода, значительно повышая ясность и удобство сопровождения кода.
Чтобы добавить комментарии ко всем файлам Python в приложении, используйте терминал командной строки Gemini и введите следующую команду:
Add docstrings to all files
Подтвердите предложенные изменения. Если включена интеграция с IDE, вы можете принять изменения и продолжить, используя элементы управления пользовательского интерфейса или нажав Enter в терминале. Вы также можете включить режим автоматического подтверждения (YOLO) с помощью комбинации клавиш " ctrl+y ".

Обновите файл .gitignore , используя следующую команду:
update .gitignore and add __pycache__ folder
Переключитесь в режим просмотра «Управление версиями» и просмотрите внесенные вами изменения:

9. Добавление модульных тестов
Интерфейс командной строки Gemini отлично подходит для написания модульных тестов, позволяя разработчикам генерировать тестовые функции на основе сигнатуры и логики существующей функции, включая первоначальные утверждения и настройку моков. Однако разработчикам все равно необходимо проверять и подтверждать сгенерированные тесты, чтобы убедиться, что они охватывают все необходимые граничные случаи, а не только упрощенное выполнение пути.
Для генерации модульных тестов используйте приведенную ниже подсказку:
Generate unit tests for @calendar.py
После ознакомления с изменениями, примите их.

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

10. Проверьте наличие ошибок.
Интерфейс командной строки Gemini может помочь в проверке логики, позволяя вам запросить у него просмотр и анализ фрагментов кода, выявляя потенциальные логические ошибки, ошибки типа «на единицу» или некорректную обработку условий. Объяснив предполагаемое поведение кода и попросив интерфейс командной строки выявить несоответствия, вы можете быстро обнаружить скрытые дефекты до запуска кода.
Чтобы проверить наличие ошибок в логике преобразования, отправьте следующую команду в интерфейсе командной строки Gemini:
Are there any bugs in the conversion logic? Check if negative numbers are handled properly.
Ознакомьтесь с предложенными изменениями и примите их в чате:

11. Рефакторинг пользовательского интерфейса
Gemini CLI может значительно помочь в рефакторинге пользовательского интерфейса, позволяя переводить старые шаблоны (например, классовые компоненты) в новые, более современные функциональные парадигмы (например, хуки в React) или предлагать структурные улучшения для повышения удобства сопровождения. Вы можете использовать его для анализа и рефакторинга существующего кода пользовательского интерфейса в более модульные, многократно используемые компоненты, обеспечивая более чистый и стандартизированный дизайн интерфейса.
Для рефакторинга пользовательского интерфейса с использованием библиотеки Bootstrap отправьте следующую команду в интерфейс командной строки Gemini:
Refactor UI to use Bootstrap library
Просмотрите и примите изменения:

Для начала запустите приложение. Если оно уже запущено, просто обновите страницу.
python3 main.py
Перезагрузите страницу и проверьте изменения.


Внедрите обработку ошибок, чтобы при возникновении проблем отображалась страница с сообщением об ошибке.
Implement error handling to display an error page when issues occur.
Пожалуйста, обновите страницу, чтобы увидеть обновления.
Для подтверждения страницы с ошибкой отправьте отрицательное число.

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.
Просмотрите и подтвердите изменения в чате:

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

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

Чтобы обновить файл README.md, указав текущее состояние кодовой базы, отправьте следующую команду через интерфейс командной строки Gemini:
analyze README.md file and update it with latest codebase state
Просмотрите результат. Если вы включили интеграцию с Cloud Shell, вы можете использовать элементы управления пользовательского интерфейса для доступа к изменениям или сделать это из терминала.
13. Встроенные инструменты Gemini CLI
Интерфейс командной строки Gemini включает в себя встроенные инструменты, которые модель Gemini использует для взаимодействия с локальной средой, доступа к информации и выполнения действий. Эти инструменты расширяют возможности интерфейса командной строки, позволяя ему выходить за рамки генерации текста и помогать в решении широкого спектра задач.
Отправьте этот запрос в Gemini CLI, чтобы просмотреть доступные инструменты:
/tools
Просмотрите результат.

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
Просмотрите результат.

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

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


Пользовательская команда для создания колоды
Отправьте этот запрос в Gemini CLI, чтобы сгенерировать презентацию с ключевыми моментами в формате Marp.
Принимайте вызовы инструментов, например, для создания папки и сохранения файла.
/deck:new key points and details for this app
Просмотрите результат.

Этот шаг несовместим с Cloud Shell, поскольку для расширения Marp требуется установленный веб-браузер.
Установите расширение Marp для VS Code из Marketplace, чтобы сохранить презентацию.

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

Пользовательская команда для планирования внедрения новой функции
Отправьте этот запрос в Gemini CLI для рефакторинга пользовательского интерфейса.
Принимайте вызовы инструментов, например, для создания папки и сохранения файла.
/plan:new refactor UI to use Materialize CSS
Просмотрите результат.

Запустите процесс рефакторинга пользовательского интерфейса, отправив это сообщение через интерфейс командной строки Gemini на основе ранее сгенерированного плана.
Принимайте вызовы инструментов, например, создание папки и сохранение файла. Вы можете включить режим автоматического одобрения инструментов ( YOLO mode ), используя комбинацию клавиш " ctrl+y ".
/plan:impl implement the plan to refactor the app

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


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
Просмотрите результат.

Отправьте приглашение на настроенный для тестирования сервер MCP:
use context7 tools to look up how to implement flex grid in react mui library
Утвердите инструменты и проверьте результаты.

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. Все остальные названия компаний и продуктов могут являться товарными знаками соответствующих компаний, с которыми они связаны.