1. Обзор
Эта лабораторная работа посвящена использованию Gemini CLI — агента с открытым исходным кодом на базе искусственного интеллекта в Google Cloud. Вы научитесь использовать Gemini CLI для решения различных задач, включая анализ существующих кодовых баз, создание документации и модульных тестов, а также рефакторинг компонентов пользовательского интерфейса и бэкенда веб-приложений Python.
Чему вы научитесь
В этой лабораторной работе вы научитесь делать следующее:
- Как использовать Gemini CLI для решения типичных задач разработчика.
Предпосылки
- Данная лабораторная работа предполагает наличие знаний о средах Cloud Console и Cloud Shell.
2. Настройка и требования
Настройка облачного проекта
- Войдите в Google Cloud Console и создайте новый проект или используйте существующий. Если у вас ещё нет учётной записи Gmail или Google Workspace, вам необходимо её создать .
- Название проекта — отображаемое имя участников проекта. Это строка символов, не используемая API Google. Вы можете изменить её в любой момент.
- Идентификатор проекта уникален для всех проектов Google Cloud и неизменяем (нельзя изменить после установки). Cloud Console автоматически генерирует уникальную строку; обычно вам не важно, какой именно. В большинстве практических работ вам потребуется указать идентификатор проекта (обычно обозначаемый как
PROJECT_ID
). Если вам не нравится сгенерированный идентификатор, вы можете сгенерировать другой случайный идентификатор. Вы также можете попробовать использовать свой собственный идентификатор и посмотреть, доступен ли он. После этого шага его нельзя будет изменить, и он останется на протяжении всего проекта. - К вашему сведению, существует третье значение — номер проекта , который используется некоторыми API. Подробнее обо всех трёх значениях можно узнать в документации .
- Далее вам нужно включить биллинг в Cloud Console для использования облачных ресурсов/API. Выполнение этой лабораторной работы не потребует больших затрат, если вообще потребует. Чтобы отключить ресурсы и избежать списания средств за пределами этого руководства, вы можете удалить созданные вами ресурсы или удалить проект. Новые пользователи Google Cloud могут воспользоваться бесплатной пробной версией стоимостью 300 долларов США .
Настройка среды
Откройте чат Близнецов.
Или введите «Спросите Gemini» в строке поиска.
Включить 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. Объясните старшему разработчику, когда вы используете 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) — это веб-инструмент, призванный помочь вам изучить и использовать возможности моделей искусственного интеллекта Gemini от Google.
- Мобильное приложение Google Gemini для Android и приложение Google для iOS
4. Загрузите и изучите приложение.
Активируйте Cloud Shell, нажав на значок справа от строки поиска.
Если будет предложено авторизоваться, нажмите «Авторизовать», чтобы продолжить.
В терминале выполните команды ниже, чтобы клонировать репозиторий Git локально.
git clone https://github.com/gitrey/calendar-app-lab
cd calendar-app-lab
Запустите «Cloud Shell Editor».
Откройте папку « calendar-app-lab
».
Откройте новый терминал в Cloud Shell Editor.
Ваша среда должна выглядеть примерно так, как показано на снимке экрана ниже.
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
.
Если вы запускаете лабораторию в среде Qwiklabs, выберите « Use Cloud Shell user credentials
».
В противном случае выполните аутентификацию Gemini CLI, выполнив следующую команду и выбрав « Login with Google
»:
/auth
После перезапуска CLI вам будет предложено авторизовать приложение, перейдя по предоставленной ссылке.
Откройте ссылку и следуйте инструкциям по входу в систему, используя учетные данные студента Qwiklabs.
Скопируйте код подтверждения и вернитесь к терминалу, чтобы завершить процесс, вставив код.
Чтобы проверить метод аутентификации, выполните следующую команду:
/about
6. Понимание кодовой базы
Вы можете использовать Gemini CLI для быстрого понимания кодовой базы, запросив у него краткое описание назначения файлов или каталогов, а также объяснение сложных функций или фрагментов кода. Это позволяет разработчикам быстро приступать к новым проектам или осваивать незнакомые фрагменты существующего кода без глубокого ручного изучения.
Чтобы узнать больше о кодовой базе, отправьте следующую команду в Gemini CLI:
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 эффективен для документирования и комментирования, позволяя мгновенно генерировать строки документации для функций и классов. Вы также можете использовать его для быстрого добавления пояснительных встроенных комментариев к сложным или незнакомым блокам кода, что значительно повышает ясность и удобство поддержки кода.
Чтобы добавить комментарии к каждому файлу Python в приложении, используйте терминал Gemini CLI и введите следующую команду:
Add docstrings to all files
Одобрите предложенные изменения. Если интеграция с IDE включена, вы можете принять их и продолжить, используя элементы управления пользовательского интерфейса или нажав Enter в терминале. Вы также можете включить режим автоматического одобрения (YOLO) сочетанием ctrl+y
.
Обновите файл .gitignore
, выполнив следующую команду:
update .gitignore and add __pycache__ folder
Перейдите в режим просмотра «Управление исходным кодом» и просмотрите изменения, которые вы внесли на данный момент:
9. Добавление модульных тестов
Gemini CLI отлично подходит для написания модульных тестов, позволяя разработчикам генерировать тестовые функции на основе существующей сигнатуры и логики функции, вместе с начальными утверждениями и фиктивной настройкой. Разработчикам по-прежнему необходимо просматривать и проверять сгенерированные тесты, чтобы убедиться, что они покрывают все требуемые граничные случаи, а не просто представляют собой упрощенный путь выполнения.
Используя приведенную ниже подсказку, сгенерируйте модульные тесты:
Generate unit tests for @calendar.py
Примите изменения после их ознакомления.
Установите новые зависимости и запустите тесты. Gemini CLI будет отслеживать, исправлять и повторно запускать сгенерированный код в цикле, пока тесты не пройдут успешно, а код не будет проверен.
10. Проверка на наличие ошибок
Интерфейс командной строки Gemini может помочь в поиске ошибок в логике, позволяя вам запрашивать у него возможность просматривать и анализировать фрагменты кода, выявляя потенциальные логические изъяны, ошибки с несоответствием или некорректную обработку условий. Объясняя предполагаемое поведение кода и поручая интерфейсу командной строки выявлять несоответствия, вы можете быстро обнаружить незначительные дефекты до запуска кода.
Чтобы проверить наличие ошибок в логике преобразования, отправьте следующую команду в Gemini CLI:
Are there any bugs in the conversion logic? Check if negative numbers are handled properly.
Ознакомьтесь с предложенными изменениями и примите их в чате:
11. Рефакторинг пользовательского интерфейса
Gemini CLI может существенно помочь в рефакторинге пользовательского интерфейса, помогая транслировать старые шаблоны пользовательского интерфейса (например, компоненты-классы) в новые, более современные функциональные парадигмы (например, хуки в React) или предлагая структурные улучшения для повышения удобства поддержки. Вы можете использовать его для анализа и рефакторинга существующего кода пользовательского интерфейса в более модульные, повторно используемые компоненты, обеспечивая более чистый и стандартизированный дизайн интерфейса.
Выполните рефакторинг пользовательского интерфейса с помощью библиотеки Bootstrap, отправив следующий запрос в Gemini CLI:
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 CLI:
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 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
Просмотрите вывод.
Если вы хотите предварительно просмотреть диаграмму, установите расширение 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 CLI, на основе ранее созданного плана.
Принимайте вызовы инструментов, например, для создания папки и сохранения файла. Вы можете включить режим автоматического одобрения инструментов ( 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 предоставляет агенту прямой контекстный доступ к вашим репозиториям, позволяя ему управлять 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. Все остальные названия компаний и продуктов могут быть товарными знаками соответствующих компаний, с которыми они связаны.