Практическое руководство по Gemini CLI

1. Введение

В этой лабораторной работе вы познакомитесь с Gemini CLI — ИИ-агентом с открытым исходным кодом, который позволяет использовать возможности Gemini непосредственно в вашем терминале.

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

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

  1. Установка и настройка Gemini CLI
  2. Изучение инструментов, встроенных команд и настройка серверов MCP в Gemini CLI
  3. Настройка Gemini CLI через файл GEMINI.md
  4. Изучение нескольких вариантов использования Gemini CLI

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

Эту лабораторную работу можно полностью запустить в Google Cloud Shell, в котором предварительно установлен Gemini CLI.

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

Вам понадобится следующее:

  • веб-браузер Chrome
  • Аккаунт Gmail

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

2. Прежде чем начать

Создать проект

  1. В консоли Google Cloud на странице выбора проекта выберите или создайте проект Google Cloud.
  2. Убедитесь, что для вашего облачного проекта включена функция выставления счетов. Узнайте, как проверить, включена ли функция выставления счетов для проекта .
  1. Вы будете использовать Cloud Shell — среду командной строки, работающую в Google Cloud и предустановленную вместе с bq. Нажмите «Активировать Cloud Shell» в верхней части консоли Google Cloud.

Изображение кнопки «Активировать Cloud Shell»

  1. После подключения к Cloud Shell вы проверяете, что вы уже прошли аутентификацию и что проекту присвоен ваш идентификатор проекта, с помощью следующей команды:
gcloud auth list
  1. Выполните следующую команду в Cloud Shell, чтобы подтвердить, что команда gcloud знает о вашем проекте.
gcloud config list project
  1. Если ваш проект не настроен, используйте следующую команду для его настройки:
gcloud config set project <YOUR_PROJECT_ID>

3. Установка

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

Создайте папку-образец ( gemini-cli-projects ) и перейдите к ней с помощью команд, показанных ниже. Если вы предпочитаете использовать другое имя папки, пожалуйста, сделайте это.

mkdir gemini-cli-projects

Давайте перейдем в эту папку:

cd gemini-cli-projects

Вы можете запустить Gemini CLI напрямую с помощью команды gemini .

Перейдите сразу к следующему разделу (настройка Gemini CLI через settings.json).

Если вы хотите установить Gemini CLI локально, следуйте приведенным ниже инструкциям.

Первым шагом является установка Node 20+ на ваш компьютер. После этого вы можете установить и запустить Gemini CLI одним из следующих способов:

  1. Сначала вы можете установить Gemini CLI глобально в своей системе. Для этого вам могут потребоваться права администратора.
# option 1: install Gemini CLI

npm install -g @google/gemini-cli

# .. and then run
gemini
  1. Запустите его с помощью следующей команды:
# option 2: run without installing Gemini CLI

npx https://github.com/google-gemini/gemini-cli

Вы можете убедиться, что CLI установлен, выполнив:

gemini --version

Если вы запустили Gemini CLI любым из описанных выше способов, вы увидите следующий экран с предложением выбрать тему. Выберите понравившуюся тему:

9b02bd0bf1c670d.png

После выбора этого варианта система запросит метод аутентификации. В этой лабораторной работе рекомендуется использовать личный аккаунт Google, а не аккаунты, не относящиеся к Google или Google Workspace. Эта бесплатная лицензия даёт вам доступ к Gemini 2.5 Pro и его контекстному окну в 1 миллион токенов. Бесплатный тариф позволяет бесплатно выполнять 60 запросов к моделям в минуту и ​​1000 запросов в день.

Если текущая бесплатная квота, выделенная для аккаунтов Google, исчерпана, вы можете использовать ключ Gemini API или даже Google Cloud Vertex AI, для чего вам потребуется указать идентификатор проекта и название локации. Если вы планируете использовать другие методы аутентификации, ознакомьтесь с разделом «Аутентификация» в документации.

afce8d90e20adb6.png

Нажмите Enter. В браузере откроется страница аутентификации Google. Пройдите аутентификацию с помощью своего аккаунта Google, примите условия. После успешной аутентификации вы увидите, что интерфейс командной строки Gemini готов к работе и ждёт вашей команды. Пример скриншота ниже:

ffd8ddfede565612.png

4. Конфигурация Gemini CLI через settings.json

Если вы выбираете Cloud Shell для запуска Gemini, тема по умолчанию для Gemini CLI и метод аутентификации уже выбраны и настроены.

Если вы установили Gemini CLI на свой компьютер и запустили его в первый раз, вы выбрали тему, а затем метод аутентификации.

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

Настройки применяются в следующем порядке (Cloud Shell делает доступными только пользовательские настройки):

  1. Система: /etc/gemini-cli/settings.json (применяется ко всем пользователям, переопределяет настройки пользователя и рабочего пространства).
  2. Рабочее пространство: .gemini/settings.json (переопределяет пользовательские настройки).
  3. Пользователь: ~/.gemini/settings.json .

Пользователь Windows : %USERPROFILE%.gemini\settings.json (обычно расширяется до C:\Users&lt;YourUsername>.gemini\settings.json)

Система : %ProgramData%\gemini-cli\settings.json (обычно расширяется до C:\ProgramData\gemini-cli\settings.json)

Пользователь Mac : ~/.gemini/settings.json (который расширяется до /Users/<YourUsername>/.gemini/settings.json)

Система : /etc/gemini-cli/settings.json

Если вы помните, при выборе темы вы выбрали сохранение настроек в настройках пользователя. Поэтому зайдите в ~/.gemini folder и найдите файл settings.json .

Мой файл settings.json показан ниже. Если бы вы выбрали другую тему, вы бы увидели её название.

{
  "theme": "Default",
  "selectedAuthType": "oauth-personal" or "cloud-shell"
}

5. Наше первое взаимодействие с Gemini CLI

Давайте начнем с Gemini CLI и введите ваш первый запрос, как показано ниже:

Give me a famous quote on Artificial Intelligence and who said that?

Ожидаемый ответ показан ниже:

4dc0961206c1b568.png

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

Быстрый способ понять Gemini CLI и различные команды, которые он поддерживает, — ввести /help (косая черта), и вы увидите множество команд и сочетаний клавиш, как показано ниже:

d333742310905dcc.png

Давайте пока выйдем из Gemini CLI. Это можно сделать командой /quit или дважды нажав Ctrl-C в интерактивном сеансе терминала Gemini CLI.

6. Gemini CLI — параметры команды

При запуске Gemini CLI можно указать несколько параметров командной строки. Чтобы получить полный список параметров, используйте опцию --help как показано ниже.

gemini --help

Здесь должен быть представлен полный набор доступных опций. Рекомендуем вам ознакомиться с документацией здесь .

Давайте рассмотрим несколько из них. Первый — настроить Gemini CLI на использование модели Pro или Flash. На момент написания этой лабораторной работы поддерживаются только эти две модели. По умолчанию используется модель Gemini 2.5 Pro, но если вы хотите использовать модель Flash, это можно сделать при запуске Gemini CLI с помощью параметра -m как показано ниже:

gemini -m "gemini-2.5-flash"

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

6e662d03b61b2b3f.png

Неинтерактивный режим

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

gemini -p "What is the gcloud command to deploy to Cloud Run"

Имейте в виду, что продолжение диалога с дополнительными вопросами невозможно. Этот режим также не позволяет авторизовать инструменты (включая WriteFile) или выполнять команды оболочки.

7. Gemini CLI — встроенные инструменты

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

Чтобы получить список текущих встроенных инструментов, вызовите команду /tools как показано ниже:

39939257e3f3818e.png

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

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

Давайте воспользуемся подсказкой, которая заставит Gemini CLI выбрать один из встроенных инструментов для выполнения, и это даст вам хорошее представление о том, как все это работает.

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

Search for the latest headlines today in the world of finance and save them in a file named finance-news-today.txt

Представьте на мгновение, что он должен делать. В идеале ему нужно выполнить поиск в Google, чтобы получить новости из релевантных источников финансовой информации. Затем ему нужно создать файл с именем finance-news-today.txt (операция записи в вашей локальной системе, требующая вашего разрешения) со своим содержимым.

Давайте посмотрим, что произойдет (вам следует сделать то же самое на своем компьютере).

Первое, что он делает, — вызывает инструмент GoogleSearch для поиска в Интернете.

122e6e4b01d05e69.png

После завершения поиска данные извлекаются, как показано ниже:

b721f40e6f643318.png

После этого он будет готов записать данные в файл, используя инструмент WriteFile . Однако, поскольку это конфиденциальная операция ( запись ), запросит ваше разрешение. Вы можете выбрать тип разрешения, например, «разрешить один раз», «разрешить всегда» и т. д. Выберите «разрешить один раз» на данный момент.

e92f3a4774dc1e7.png

После этого информация будет записана в файл, и ниже показано сообщение об успешном завершении:

33c6afdb89033c35.png

Как проверить, записан ли файл? Вы можете использовать @file , чтобы запросить чтение содержимого. При вводе @ отображается список файлов в текущей папке, включая только что созданный файл. Выберите его и отправьте запрос. Мой запрос показан ниже:

read the contents of @finance-news-today.txt

В результате вызываются необходимые инструменты (ReadManyFiles, ReadFile) и отображается содержимое, как показано ниже:

6f214cd743646f44.png

8. Gemini CLI — режим оболочки

Сейчас самое время научиться работать с оболочкой непосредственно из Gemini CLI. Перейти в режим оболочки можно, нажав ! в окне сообщения. Это переключит вас в режим оболочки. Вернуться обратно можно, снова нажав ! или нажав клавишу ESC .

В режиме оболочки вы увидите ! в начале приглашения, как показано ниже:

9e239408835a3acd.png

Вы можете напрямую проверить это, используя стандартные команды, такие как pwd и ls , как показано ниже. Обратите внимание, что команды предполагают использование ОС типа Linux. Если вы используете другую операционную систему (Windows), используйте эквивалентные команды, такие как ( cd , dir и type ). Обратите внимание, что вывод этих вызовов отображается в контекстном окне модели.

2f5d53d3c77fc8e2.png

Вы можете распечатать содержимое файла уже сегодня с помощью команды cat .

2249b5c80e3ae2c0.png

Упражнение : Вот короткое упражнение для пробы. Выберите RSS-канал по вашему выбору. Дайте Gemini CLI запрос на загрузку содержимого RSS-канала и форматирование результатов определённым образом. Это хороший способ автоматизировать что-либо в начале дня. Вы даже можете попросить Gemini CLI определить, есть ли RSS-канал для определённой области, например, для заметок о выпуске Google Cloud Platform.

Пример подсказки показан ниже:

Get the latest release notes for Google Cloud from its RSS Feed and display the key points in a well-formatted list.

В идеале этот запрос должен сначала вызвать инструмент GoogleSearch для поиска RSS-канала Google Cloud Platform, а затем использовать инструмент WebFetch для получения содержимого RSS-канала и его отображения.

9. Настройка серверов протокола контекста модели (MCP)

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

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

Gemini CLI поддерживает настройку MCP-серверов для обнаружения и использования пользовательских инструментов. Если Gemini CLI запущен, вы можете проверить настроенные MCP-серверы с помощью команды /mcp , как показано ниже:

255a14eb31529370.png

Если вы не настроили ни одного сервера MCP, запустится документация по серверу MCP Gemini CLI.

Вы можете настроить MCP-серверы на глобальном уровне в файле ~/.gemini/settings.json или в корневом каталоге вашего проекта. Создайте или откройте файл .gemini/settings.json . В этот файл необходимо добавить блок конфигурации mcpServers , как показано ниже:

"mcpServers": {
    "server_name_1": {},
    "server_name_2": {},
    "server_name_n": {}
 }

Каждая конфигурация сервера поддерживает следующие свойства ( Справочная документация ):

Обязательно (одно из следующего)

  • команда (строка) : путь к исполняемому файлу для транспорта Stdio
  • url (строка) : URL конечной точки SSE (например, «http://localhost:8080/sse»)
  • httpUrl (строка) : URL-адрес конечной точки потоковой передачи HTTP

Необязательный

  • args (string[]): Аргументы командной строки для транспорта Stdio
  • Заголовки (объект) : Пользовательские заголовки HTTP при использовании URL или httpUrl
  • env (объект) : переменные среды для серверного процесса. Значения могут ссылаться на переменные среды, используя синтаксис $VAR_NAME или ${VAR_NAME}.
  • cwd (строка) : рабочий каталог для транспорта Stdio
  • timeout (число) : время ожидания запроса в миллисекундах (по умолчанию: 600 000 мс = 10 минут)
  • trust (логическое значение) : если true, обходит все подтверждения вызова инструментов для этого сервера (по умолчанию: false)
  • includeTools (string[]) : список инструментов для включения с этого сервера MCP. Если указано, с этого сервера будут доступны только перечисленные здесь инструменты (поведение белого списка). Если не указано, по умолчанию включены все инструменты с сервера.
  • excludeTools (string[]) : список названий инструментов, которые следует исключить из этого сервера MCP. Перечисленные здесь инструменты не будут доступны модели, даже если они предоставлены сервером. Примечание: excludeTools имеет приоритет над includeTools — если инструмент присутствует в обоих списках, он будет исключён.

Давайте настроим один из ключевых MCP-серверов, который может вам понадобиться при работе с Github. У вас, вероятно, возникнет вопрос: если в вашей системе уже установлен Git и другие сопутствующие инструменты, нужен ли вам Gitub MCP-сервер?

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

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

  • Инструменты Git (это означает, что вы можете выполнять такие команды, как git init , git add и т. д. в своей системе)
  • gh : Это GitHub в командной строке. Он выводит запросы на извлечение, проблемы и другие элементы GitHub в терминал рядом с тем местом, где вы уже работаете с Git и своим кодом. Установите его отсюда и проверьте настройки с помощью нескольких команд, особенно касающихся аутентификации на GitHub с вашего компьютера.

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

Сервер Github MCP

Официальный MCP-сервер на Github предоставляет достаточно документации по инструментам, которые он предоставляет, а также по их настройке. Вы можете выбрать локальный или удалённый запуск, поскольку Gemini CLI также поддерживает удалённые MCP-серверы.

В этом руководстве демонстрируется возможность использования удалённого сервера MCP в Github . Для этого вам сначала потребуется персональный токен доступа (PAT) от Github .

После этого вам нужно будет добавить объект MCP Server в файл settings.json . Полный файл settings.json в моей системе показан ниже. У вас могут быть дополнительные настройки, но объект mcpServers должен выглядеть так, как показано ниже:

{
  "theme": "Default",
  "selectedAuthType": "oauth-personal",
  "mcpServers": {
       "github": {
            "httpUrl": "https://api.githubcopilot.com/mcp/",
            "headers": {
                "Authorization": "GITHUB_PAT"
            },
            "timeout": 5000
       }
  }
}

Вы можете либо снова запустить Gemini CLI, либо выполнить команду /mcp refresh после обновления settings.json с конфигурацией сервера Github MCP. На снимке экрана ниже показан сервер Github MCP, настроенный на моём компьютере, и различные инструменты, которые теперь доступны Gemini CLI для работы с MCP.

e34f348129d448e9.png

Начнём с запроса, который вызовет один из инструментов сервера Github MCP. Введите следующий запрос:

da643d182ac3fca4.png

Обратите внимание, что он выберет правильный инструмент с сервера Github MCP, но, как и в случае с другими встроенными инструментами, для его вызова потребуется явное разрешение. Давайте посмотрим, что вы получите.

Теперь вам нужно работать с одним из ваших проектов на Github. Задавайте запросы на естественном языке, например:

  • Опишите мне <название-репо>?
  • Клонировать <имя-репо> на мою локальную машину.
  • Опишите @<имя-файла> или @<имя-каталога>/
  • Каковы различные компоненты этого репозитория?
  • Я внёс необходимые изменения. Можете ли вы отправить эти изменения на Github и использовать инструменты GitHub MCP Server для этого?

Подробное упражнение по работе с сервером Github MCP вы найдете далее в лабораторной работе.

Context7 MCP-сервер

Context7 предоставляет актуальную документацию для LLM и редакторов кода ИИ. Если вы хотите предоставить LLM-контекст с актуальной документацией по выбранному вами фреймворку, сервер Context7 MCP — отличный выбор для настройки.

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

Вот MCP-сервер, который вам нужно добавить в файл settings.json .

"context7": {
      "httpUrl": "https://mcp.context7.com/mcp"
    }

После настройки сервера MCP и успешной загрузки Gemini CLI вы сможете увидеть инструменты Context7, как показано ниже:

92f715d87989ff72.png

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

Вот пример запроса, в котором я хочу написать агента с помощью Agent Development Kit (ADK) от Google. В запросе я указываю, что нужно искать документацию по нему через Context7 MCP Server.

I am working on coding an Agent using the Agent Development Kit (ADK) from Google. I would like to know how to create the LLMAgent in Python. Use Context7 for the latest documentation on ADK and specifically use /google/adk-python, /google/adk-docs and adk.wiki 

Вот полученный результат:

fe79972a61372d59.png

Сервер MCP для Google Презентаций

Проект Github по адресу https://github.com/matteoantoci/google-slides-mcp предоставляет MCP-сервер для взаимодействия с API Google Slides. Он позволяет программно создавать, читать и изменять презентации Google Slides.

Шаги по настройке сервера MCP описаны в проекте. Вам потребуется среда Node.js , в которой вы развернёте сервер, настроите проект Google Cloud и токены OAuth 2.0, а затем настроите сервер MCP в файле settings.json .

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

  • Извлеките последнюю информацию из «web_url», обобщите ее в ключевые моменты и создайте презентацию под названием «my_presentation».

Попробуйте!

Больше MCP-серверов

Вот дополнительный список MCP-серверов, которые могут вас заинтересовать:

  1. Сервер Firebase MCP
  2. Медиа-сервисы Google Gen AI (Imagen, Veo, Lyria)
  3. MCP Toolbox for Databases (работа с базами данных Firestore, BigQuery, Google Cloud)
  4. Google Workspace MCP Server (работа с Документами, Таблицами, Календарем, Gmail)

Инструкции по настройке вышеуказанных серверов MCP опубликованы в этом блоге .

10. Настройка Gemini CLI с помощью GEMINI.md

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

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

Введите GEMINI.md . Это файл контекста (по умолчанию GEMINI.md , но его можно настроить с помощью свойства contextFileName в файле settings.json ), который критически важен для настройки контекста инструкций (также называемого «памятью»), предоставляемого модели Gemini. Этот файл позволяет предоставлять ИИ инструкции, специфичные для проекта, руководства по стилю кодирования или любую другую необходимую справочную информацию, делая его ответы более персонализированными и точными в соответствии с вашими потребностями.

Файл GEMINI.md имеет формат markdown и загружается в иерархическом порядке, объединяя данные из нескольких мест.

Порядок загрузки:

  1. Глобальный контекст: ** ~/.gemini/GEMINI.md ** (для инструкций, применимых ко всем вашим проектам).
  2. Контекст проекта/предка: CLI выполняет поиск файлов GEMINI.md , начиная с текущего каталога и до корня проекта.
  3. Контекст подкаталога: CLI также сканирует подкаталоги на наличие файлов GEMINI.md , что позволяет выполнять инструкции, специфичные для компонентов.

Вы можете использовать команду /memory show , чтобы увидеть окончательный объединенный контекст, отправляемый в модель.

Как выглядит GEMINI.md ? Мы создали его на основе официальной документации:

# Project: My Awesome TypeScript Library

## General Instructions:

- When generating new TypeScript code, please follow the existing coding style.
- Ensure all new functions and classes have JSDoc comments.
- Prefer functional programming paradigms where appropriate.
- All code should be compatible with TypeScript 5.0 and Node.js 20+.

## Coding Style:

- Use 2 spaces for indentation.
- Interface names should be prefixed with `I` (e.g., `IUserService`).
- Private class members should be prefixed with an underscore (`_`).
- Always use strict equality (`===` and `!==`).

## Specific Component: `src/api/client.ts`

- This file handles all outbound API requests.
- When adding new API call functions, ensure they include robust error handling and logging.
- Use the existing `fetchWithRetry` utility for all GET requests.

## Regarding Dependencies:

- Avoid introducing new external dependencies unless absolutely necessary.
- If a new dependency is required, please state the reason.

Вы заметите, что он содержит как общие, так и весьма конкретные инструкции по стилю кодирования, управлению зависимостями и т. д. Хотя это всего лишь пример файла GEMINI.md для проектов TypeScript, вы можете написать свой собственный, соответствующий вашему языку программирования, фреймворку, стилю кодирования и другим предпочтениям.

Вы можете попробовать использовать собственный файл GEMINI.md . Он взят из опубликованного руководства, демонстрирующего использование Gemini CLI только в режиме Plan . Файл можно найти здесь:

# Gemini CLI Plan Mode
You are Gemini CLI, an expert AI assistant operating in a special 'Plan Mode'. Your sole purpose is to research, analyze, and create detailed implementation plans. You must operate in a strict read-only capacity.

Gemini CLI's primary goal is to act like a senior engineer: understand the request, investigate the codebase and relevant resources, formulate a robust strategy, and then present a clear, step-by-step plan for approval. You are forbidden from making any modifications. You are also forbidden from implementing the plan.

## Core Principles of Plan Mode
*   **Strictly Read-Only:** You can inspect files, navigate code repositories, evaluate project structure, search the web, and examine documentation.
*   **Absolutely No Modifications:** You are prohibited from performing any action that alters the state of the system. This includes:
    *   Editing, creating, or deleting files.
    *   Running shell commands that make changes (e.g., `git commit`, `npm install`, `mkdir`).
    *   Altering system configurations or installing packages.

## Steps
1.  **Acknowledge and Analyze:** Confirm you are in Plan Mode. Begin by thoroughly analyzing the user's request and the existing codebase to build context.
2.  **Reasoning First:** Before presenting the plan, you must first output your analysis and reasoning. Explain what you've learned from your investigation (e.g., "I've inspected the following files...", "The current architecture uses...", "Based on the documentation for [library], the best approach is..."). This reasoning section must come **before** the final plan.
3.  **Create the Plan:** Formulate a detailed, step-by-step implementation plan. Each step should be a clear, actionable instruction.
4.  **Present for Approval:** The final step of every plan must be to present it to the user for review and approval. Do not proceed with the plan until you have received approval. 

## Output Format
Your output must be a well-formatted markdown response containing two distinct sections in the following order:

1.  **Analysis:** A paragraph or bulleted list detailing your findings and the reasoning behind your proposed strategy.
2.  **Plan:** A numbered list of the precise steps to be taken for implementation. The final step must always be presenting the plan for approval.

NOTE: If in plan mode, do not implement the plan. You are only allowed to plan. Confirmation comes from a user message.

Сохраните содержимое выше в файле GEMINI.md и сохраните его в папке ~/.gemini/GEMINI.md . Это та же папка, в которой вы создали файл settings.json. Вы также можете сохранить файл GEMINI.md в папке <current project folder>/.gemini или даже разместить несколько файлов GEMINI.md в подкаталогах, если у вас разные инструкции.

Дайте подсказку для создания приложения и посмотрите, как оно отреагирует.

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

Файл GEMINI.md является ключом к настройке Gemini CLI под ваши предпочтения. Рекомендуется ознакомиться с этой практической серией « Практический Gemini CLI », которая подробно рассматривает эту область, а также то, как можно автоматически сгенерировать файл для вашего проекта, настраивать даже системные подсказки и многое другое.

Обратите внимание, что вы также можете создать файл GEMINI.md непосредственно во время взаимодействия с Gemini CLI. В любой момент вы можете использовать команду /memory add <какая-то инструкция/правило> , и Gemini CLI добавит её в файл GEMINI.md . Вы даже можете использовать естественный язык, чтобы попросить Gemini CLI добавить данные в память, например, GEMINI.md с помощью подсказок типа « Запомнить <какую-то инструкция/правило> » или « Добавить в память <какая-то инструкция/правило> ».

11. Gemini CLI — пользовательские слэш-команды

Вы только что увидели, как настроить GEMINI.md для создания режима «План». В предыдущем разделе также были представлены ссылки на режим «Объяснение».

Что, если вы хотите настроить оба режима и указать Gemini CLI переходить в любой из них с помощью команд /plan или /explain ? Именно для этого и предназначены пользовательские команды Gemini CLI.

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

Давайте создадим пару пользовательских слэш-команд: /plan и /explain .

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

  1. Пользовательские команды (глобальные): находятся в ~/.gemini/commands/ . Эти команды доступны в любом проекте, над которым вы работаете.
  2. Команды проекта (локальные): находятся в папке <your-project-root>/.gemini/commands/ . Эти команды относятся к текущему проекту и могут быть добавлены в систему контроля версий для совместного использования с вашей командой.

Давайте выберем папку текущего проекта, из которой вы запустили Gemini CLI. Это будет папка <your-project-root>/.gemini/commands/ . Теперь создадим структуру папок.

Что нам нужно создать в этой папке? Нам понадобятся два файла TOML ( plan.toml и explain.toml ). Подробнее о пространствах имён и соглашениях об именовании можно прочитать здесь .

Каждый файл TOML должен содержать два поля: description и prompt . Убедитесь, что описание краткое и понятное, так как оно будет отображаться рядом с командой в Gemini CLI. Пример файла TOML ниже взят из официального блога «Пользовательские команды с косой чертой» .

Пример файла plan.toml представлен ниже. Обратите внимание, что в приглашении содержится специальный заполнитель . CLI заменит его на весь текст, введённый пользователем после имени команды.

description="Investigates and creates a strategic plan to accomplish a task."
prompt = """
Your primary role is that of a strategist, not an implementer.
Your task is to stop, think deeply, and devise a comprehensive strategic plan to accomplish the following goal: {{args}}

You MUST NOT write, modify, or execute any code. Your sole function is to investigate the current state and formulate a plan.

Use your available "read" and "search" tools to research and analyze the codebase. Gather all necessary context before presenting your strategy.

Present your strategic plan in markdown. It should be the direct result of your investigation and thinking process. Structure your response with the following sections:

1.  **Understanding the Goal:** Re-state the objective to confirm your understanding.
2.  **Investigation & Analysis:** Describe the investigative steps you would take. What files would you need to read? What would you search for? What critical questions need to be answered before any work begins?
3.  **Proposed Strategic Approach:** Outline the high-level strategy. Break the approach down into logical phases and describe the work that should happen in each.
4.  **Verification Strategy:** Explain how the success of this plan would be measured. What should be tested to ensure the goal is met without introducing regressions?
5.  **Anticipated Challenges & Considerations:** Based on your analysis, what potential risks, dependencies, or trade-offs do you foresee?

Your final output should be ONLY this strategic plan.
"""

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

Перезапустите Gemini CLI. Теперь вы увидите команду с косой чертой ( /plan ), как показано ниже:

8b0720ba31b6c251.png

12. Примеры использования для пробы

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

В каждом из этих случаев выводится запрос. Вы можете попробовать это в интерактивном или неинтерактивном режиме Gemini CLI, указав параметр -p при запуске Gemini CLI.

Кодирование Vibe с помощью Gemini CLI

Давайте используем Gemini CLI для создания кода приложения. В этом задании вам нужно будет сгенерировать приложение с помощью Gemini CLI, а затем загрузить его исходную версию в репозиторий Github.

Предпосылки

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

  • Гит
  • Gemini CLI с Github MCP Server (мы сделали это ранее) или если вы настроили gh ( инструмент Github CLI ), это тоже будет работать.
  • Знакомство с основами Git и небольшие знания в программировании

Предположим, вы запустили Gemini CLI в выбранной вами папке . Убедитесь, что серверы MCP успешно запущены, особенно сервер GitHub MCP.

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

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

Generate a website for a 1-day event filled with technical talks. There are going to be 6 talks in a single track of 1 hour each. Each talk has the following information: title, 1 or maximum of 2 speakers, category (1 or maximum of 3 keywords), duration and a description. The website has a single page where users can see the schedule for the entire day with the timings. There will be one lunch break of an hour and the event starts at 10:00 AM. Keep a 10 minute transition between talks. I would like to use Node.js on the server side and standard HTML, JavaScript and CSS on the front-end. The users should be able to search the talks based on category.

I would like you to proceed in the following way: 
1. Plan out how you would design and code this application.
2. Ask me for any clarifications along the way.
3. Once I am fine with it, do generate the code and provide me instructions to run and test locally. 

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

90232297f1e952f8.png

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

Например, если он предлагает выполнить команды, вы можете просто выйти и вывести сообщение, как показано ниже:

d74e235b0db77c51.png

Следуя инструкциям по запуску сервера и переходу на домашнюю страницу, мы получили пример сайта, как показано ниже (вы должны увидеть вариант похожего сайта, если использовали ту же подсказку):

71a0a6123a90e068.png

Вы можете продолжать вносить изменения с помощью Gemini CLI. Как только вы будете удовлетворены результатом, вы можете опубликовать его в репозитории Github.

Для начала давайте создадим файл .gitignore, и вы сможете воспользоваться помощью Gemini CLI.

Create a .gitignore file for this project.

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

Дайте подсказку, аналогичную приведенной ниже:

Great! I would now like to push all of this to a new repository in my Github account. I would like to name this repository <Your-Name>-event-talks-app

Здесь будет выполнено несколько команд:

  1. Создайте репозиторий.
  2. Он будет использовать несколько команд Git: init, add, commit для управления локальным репозиторием Git.
  3. Затем он настроит удаленный Git и выполнит отправку

Примечание: в некоторых случаях Gemini CLI может остановиться из-за тайм-аута или использовать неверное имя пользователя и т. д. Обратитесь к нему и предложите исправления.

Если всё пройдёт успешно, у вас должен появиться репозиторий на Github. Пример скриншота ниже:

35c2db48c39fb21a.png

Обратите внимание, что вы не создали README.md для этого проекта, и это хорошее упражнение для следующего раздела, где мы теперь будем работать с только что созданным вами репозиторием.

Использование Gemini CLI для работы с репозиторием Github

В этом случае вы должны использовать Gemini CLI для работы с репозиторием Github. Вы будете выполнять множество задач, среди которых:

  • Понимание кодовой базы
  • Создание документации
  • Реализация новой функции
  • Зафиксируйте и отправьте изменения обратно в репозиторий.
  • Работайте над проблемой Github и внедряйте предложенные изменения.

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

Предпосылки

Для выполнения задач данного раздела вам потребуется следующее:

  • Гит
  • Gemini CLI с сервером Github MCP (мы сделали это ранее) или если вы настроили gh ( инструмент Github CLI ), это тоже будет работать.
  • Знакомство с основами Git и некоторые знания программирования (в этом примере мы будем использовать Node.js, поскольку на вашем компьютере уже может быть готова среда, поскольку вы установили Gemini CLI). Но позже вы можете выбрать репозиторий по вашему выбору с другим языком программирования и платформой.
  • Вам следует заполнить предыдущий раздел и иметь под рукой репозиторий, в котором мы создали веб-сайт Event Talks.

Давайте продолжим использовать Gemini CLI из папки/каталога, который вы использовали для создания приложения Event Talks, или, если необходимо, вы можете клонировать репозиторий на свой локальный компьютер, а затем запустить Gemini CLI из этого каталога. Попробуйте следующие сценарии, перечисленные ниже:

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

  • Мне бы хотелось разобраться в этом проекте подробнее. Помогите мне понять основные функции, а затем разбить их на серверную и клиентскую часть. Возьмите пример потока и покажите мне, как работают запрос и ответ.
  • Объясните @server.js

Создание файла README

  • Создайте файл README для этого проекта.

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

В некоторых случаях он может даже предложить вам создать файл LICENSE . Вы можете решить, хотите ли вы это сделать. В зависимости от результата вы обнаружите, что файлы README и/или LICENSE были сгенерированы, а изменения были отправлены на Github.

d77239c8fae0aa8b.png

Реализация новой функции

  • Я хотел бы реализовать новую функцию, позволяющую пользователю осуществлять поиск по определенному докладчику. Сначала покажите мне план реализации этого изменения, а затем мы сможем сгенерировать код.

Он должен предоставить вам план, который вы можете утвердить. После одобрения Gemini CLI внесет эти изменения. Проверьте свои изменения и, если есть ошибки (вероятно), попросите Gemini CLI исправить их.

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

Генерировать проблемы на основе предлагаемых функций

Давайте попробуем здесь что-нибудь интересное. Вы собираетесь спросить Gemini CLI о том, как он может улучшить взаимодействие с пользователем этого приложения, и на основе своей оценки он может создать эти предложения как проблемы в том же репозитории Github. Он будет использовать инструмент create_issue с сервера Github MCP.

Попробуйте следующую подсказку:

  • Я хотел бы, чтобы вы оценили приложение с точки зрения пользовательского опыта. Простота использования, оперативность, полезные сообщения и многое другое. Пожалуйста, придумайте список улучшений, и я хотел бы, чтобы вы затем создали их как проблемы в репозитории Github.

В идеале он сначала поделится улучшениями с вами, а затем с вашего разрешения приступит к созданию проблем в репозитории Github. Вот пример скриншота нашего запуска:

495b0f7afab91ec6.png

Работайте над проблемой Github и внедряйте предложенные изменения.

Теперь вы можете взять одну из проблем, созданных ранее, и попросить Gemini CLI поработать и реализовать ее.

Пример возникшей проблемы показан ниже:

2e41f9f6eac3d1b.png

Возьмите весь URL-адрес проблемы и введите следующую подсказку:

  • Ознакомьтесь с проблемой: <YOUR_ISSUE_URL> и поймите, какие изменения необходимо внести. Сначала обсудите план, а затем покажите предлагаемые изменения в коде.

Не стесняйтесь одобрять изменения и отправлять их в репозиторий. Вы даже можете попросить его закрыть проблему.

cd3c89cf3d47723b.png

(Необязательно) Ежедневные задачи

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

Не стесняйтесь исследовать любые варианты использования, которые вам нравятся.

Организация файлов/папок

Вы можете использовать Gemini CLI для организации файлов в зависимости от типов в различных папках по мере необходимости. Перейдите в папку на своем компьютере, в которой есть несколько файлов .txt, .png, .jpg, .pdf, .mp4 и другие. Скорее всего, это ваш рабочий стол или папка «Загрузки».

Вот пример папки, ее содержимое показано ниже (у вас могут быть другие файлы):

e9d70be5bbea46d5.png

Перейдите в эту папку и запустите Gemini CLI. Сначала вы попросите Gemini CLI создать несколько папок: «Изображения», «Документы», «Видео», а затем попросите Gemini CLI упорядочить файлы в папках.

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

Create the following folders "Images","Documents","Videos"

Затем дайте следующую подсказку:

Go through all the files in this folder and then organize them by moving all the files ending with .jpg, .jpeg, .gif into the "Images" folder. Move all ".txt" files into the "Documents" folder. Move all the ".mp4" files in the "Videos" folder.

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

7e27d4c88416f62.png

Еще несколько сценариев организации (подсказки даны рядом с каждым сценарием):

  1. Подведение итогов. Для каждого документа в папке «Документы» создайте текстовый файл в той же папке с именем «summary_ORIGINAL_FILENAME.txt», содержащий краткое изложение основных моментов документа в трех предложениях.
  2. Классификация по типу: сканируйте все файлы PDF и DOCX в этом каталоге. Переместите все файлы со словом «счет-фактура» в названии или содержимом в папку «Финансы/Счета-фактуры». Переместите файлы с «квитанцией» в «Финансы/Квитанции». Любые другие файлы .docx попадают в «Отчеты».
  3. Извлечение ключевой информации (и «маркировка»): прочтите содержимое каждого PDF-файла в папке «Финансы/Счета». Если вы нашли дату, переименуйте файл, включив эту дату в формате ГГГГ-ММ-ДД, например, «invoice_2025-07-26_original_name.pdf».

Организация изображений

Давайте посмотрим, как вы можете организовать содержимое изображений на своем компьютере.

Чтобы попробовать это:

  • Вам понадобится каталог/папка с различными файлами изображений (.jpg, .png и т. д.). Включите некоторые из них с данными EXIF (большинство фотографий с камер/телефонов имеют такие данные).
  • Перейдите в этот каталог.
  • Запустите Gemini CLI.

Попробуйте любой из следующих сценариев (подсказки приведены рядом с каждым сценарием):

  • Переименовать по дате (данные EXIF) : переименуйте все файлы .jpg и .png в этом каталоге, включив дату их создания из данных EXIF в формате «ГГГГММДД_ЧЧММСС_оригинальное_имя.jpg». Если дата EXIF не найдена, используйте дату последнего изменения файла.
  • Создайте описания изображений. Для каждого изображения в этой папке опишите, что находится на изображении, и сохраните это описание в текстовом файле с именем «description_ORIGINAL_FILENAME.txt» в том же каталоге.
  • Определить дубликаты (концептуальный вариант, требует более сложной логики). Найдите в этой папке все повторяющиеся изображения на основе их визуального содержимого и перечислите имена их файлов. Не удаляйте их пока.

Обобщение статей (локальные файлы или Интернет)

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

Попробуйте любой из следующих сценариев (подсказки приведены рядом с каждым сценарием):

  • Подведите итог веб-статьи (один URL). Перейдите на https://medium.com/google-cloud/getting-started-with-gemini-cli-8cc4674a1371 и суммируйте три основных вывода из этой новостной статьи.
  • Обобщение нескольких веб-статей (например, из поиска). Найдите последние новостные статьи о «Gemini CLI» с помощью поиска Google. Для пяти наиболее релевантных статей суммируйте каждую в 2–3 предложениях и перечислите их URL-адреса.
  • Обобщить локальный текстовый файл: обобщить основные положения статьи в файле «my_research_paper.txt». Сосредоточьтесь на методологии и выводах.
  • Подведите итоги в локальном PDF-файле: прочитайте «financial_report_Q2_2025.pdf». Предоставьте краткое описание финансовых показателей и упомянутых ключевых проблем.

Извлечение конкретной информации (локальных файлов или Интернета)

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

Попробуйте любой из следующих сценариев (подсказки приведены рядом с каждым сценарием):

  • Извлечение объектов из местной статьи. В файле «biography.txt» перечислите всех названных лиц и связанные с ними важные даты.
  • Извлечение данных из таблицы в PDF-файле. В файле «quarterly_sales.pdf» извлеките данные из таблицы на странице 3, в которой показаны «Продажи продуктов по регионам», и представьте их в формате таблицы Markdown.
  • Извлечение заголовков новостей и источников с новостного веб-сайта. Перейдите на https://news.google.com/ (или аналогичный новостной сайт). Извлеките основные заголовки с главной страницы и соответствующих им источников новостей. Представьте их в виде маркированного списка.
  • Найдите спецификации продукта на странице электронной торговли: перейдите по адресу «https://www.amazon.in/Google-Cloud-Certified-Associate-Engineer/dp/1119871441» (пример для книги). Извлеките название книги, автора и другие данные. Представьте это в структурированном формате JSON.
  • Извлеките продолжительность видео в определенном формате (например, «2ч37м42с»).

Ответы на вопросы, основанные на содержании (поведение, подобное RAG)

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

Попробуйте любой из следующих сценариев (подсказки приведены рядом с каждым сценарием):

  • Вопросы и ответы по локальному документу: прилагаю user_manual.pdf. Каковы действия по устранению проблем с сетевым подключением?
  • Вопросы и ответы на веб-странице: Используя контент https://www.who.int/news-room/fact-sheets/detail/climate-change-and-health, каковы, по мнению ВОЗ, основные риски для здоровья, связанные с изменением климата?
  • Сравните информацию из нескольких источников: у меня есть две новостные статьи: «article1.txt» и «article2.txt», в обеих обсуждаются недавние изменения в экономической политике. Сравните и сопоставьте их взгляды на потенциальное влияние на малый бизнес.

Генерация контента на основе извлеченной информации

Для каждого из приведенных ниже сценариев вы можете изменить URL-адрес, интересующую тему и имена локальных файлов, если это применимо.

Попробуйте любой из следующих сценариев (подсказки приведены рядом с каждым сценарием):

  • Создайте краткий обзор новостей из статьи: прочитайте @tech_innovation_article.txt. Напишите короткий, увлекательный новостной обзор (около 150 слов), подходящий для информационного бюллетеня компании, освещающий новую технологию и ее потенциал.
  • Составьте электронное письмо с кратким описанием стенограммы собрания. Вот файл стенограммы собрания: @meeting_transcript.txt. Составьте электронное письмо для команды, в котором будут кратко изложены ключевые принятые решения и назначенные действия, включая ответственных за каждое из них.

Мультимодальная поддержка Gemini CLI

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

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

  • Создайте папку на своем компьютере и загрузите несколько счетов из следующего репозитория Github.
  • Запустите Gemini CLI из этой папки.

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

The current folder contains a list of invoice files in Image format. Go through all the files in this folder and extract the following invoice information in the form of a table: Invoice No, Invoice Date, Invoice Sent By, Due Date, Due Amount.

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

fb4183498d02229.png

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

list all files with .png extension in this folder. Extract the invoice information from it by reading them locally and display it in a table format containing the following column headers: : Invoice No, Invoice Date, Invoice Sent By, Due Date, Due Amount. Add a column at the end of the table that shows a red cross emoji in case the due date is in the past.

Это дает следующий результат:

f65f6ca8308c7053.png

Примените это к любому из ваших файлов, которые имеют формат, отличный от текстового.

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

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

Для выполнения этой задачи вы будете использовать SQLite3 . Вам потребуется установить SQLite3 и иметь образец базы данных Chinook .

Вот краткая инструкция по настройке SQLite3:

  1. macOS: SQLite3 поставляется предустановленным. Проверьте с помощью sqlite3 --version . При необходимости установите с помощью Homebrew: brew install sqlite3 .
  2. Windows: Загрузите предварительно скомпилированные двоичные файлы с веб-сайта SQLite . Извлеките файлы в каталог (например, C:\sqlite ). Добавьте этот каталог в переменную среды PATH вашей системы.
  3. Linux: Debian/Ubuntu: sudo apt update && sudo apt install sqlite3

Загрузите образец базы данных Chinook (вот прямая ссылка для ее скачивания).

Для запуска этих подсказок предлагается создать папку ( database-tasks ) в каталоге gemini-cli-projects . Скопируйте файл базы данных Chinook в эту папку. Убедитесь, что инструмент sqlite3 настроен в вашей системе и доступен по указанному пути, чтобы Gemini CLI мог его использовать. Запустите Gemini CLI.

Схема схемы базы данных показана ниже:

fb8e96c21ad57590.png

Предположим, вы находитесь в папке с именем database-tasks , а файл базы данных Chinook называется chinook.db .

Ниже приведены несколько подсказок, которые могут помочь вам в работе с базами данных. Давайте кратко рассмотрим первый, чтобы продемонстрировать, какое разрешение будет запрошено.

Начните с запроса на перечисление таблиц, присутствующих в базе данных, введите следующую подсказку:

What tables are present in the file: chinook.db 

Он использует инструмент для чтения файла, а затем хочет использовать утилиту sqlite3 , присутствующую в вашей системе, для выполнения необходимых действий:

b2a17ef60706c3f5.png

Предоставьте разрешение на его запуск один раз, чтобы получить ожидаемый результат:

8d40754b830f4697.png

Попробуйте использовать следующие подсказки или любые другие подсказки по вашему выбору:

  • Сколько сотрудников?
  • Какова схема таблицы счетов-фактур?
  • Каковы три самых крупных счета по общему количеству и какие клиенты выставили эти счета?

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

Использование Gemini CLI для генерации данных

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

Вот несколько подсказок, которые стоит попробовать:

Сгенерируйте данные JSON с образцами отзывов клиентов.

Generate a JSON array of 3 synthetic customer reviews for a new smartphone. Each review should have 'reviewId' (string, UUID-like), 'productId' (string, e.g., 'SMARTPHONE_X'), 'rating' (integer, 1-5), 'reviewText' (string, 20-50 words), and 'reviewDate' (string, YYYY-MM-DD format).

Генерация ответов Mock API (JSON)

Generate a JSON array representing 7 daily sales records for a mock API endpoint. Each record should include 'date' (YYYY-MM-DD, chronologically increasing), 'revenue' (float, between 5000.00 and 20000.00), 'unitsSold' (integer, between 100 and 500), and 'region' (string, either 'North', 'South', 'East', 'West').

Создание примеров операторов вставки базы данных (SQL)

Generate 5 SQL INSERT statements for a table named 'users' with columns: 'id' (INTEGER, primary key), 'username' (VARCHAR(50), unique), 'email' (VARCHAR(100)), 'password_hash' (VARCHAR(255)), 'created_at' (DATETIME, current timestamp). Ensure the password_hash is a placeholder string like 'hashed_password_X'.

Генерация данных CSV для загрузки/анализа данных

Generate 10 lines of CSV data, including a header row, for customer transactions. Columns should be: 'TransactionID' (unique string), 'CustomerID' (integer), 'ItemPurchased' (string, e.g., 'Laptop', 'Monitor', 'Keyboard'), 'Quantity' (integer, 1-3), 'UnitPrice' (float, between 100.00 and 1500.00), 'TransactionDate' (YYYY-MM-DD).

Создать файл конфигурации (YAML)

Generate a sample YAML configuration for a 'user_service'. Include sections for 'database' with 'host', 'port', 'username', 'password', 'database_name'. Also include a 'api_keys' section with 'payment_gateway' and 'email_service' placeholders. Use realistic default values.

Генерация тестовых данных для крайних случаев/проверки

Generate a JSON array of 8 email addresses for testing purposes. Include a mix of: 2 valid standard emails, 2 with missing '@', 2 with invalid domains (e.g., '.com1'), and 2 with special characters in the local part that are usually invalid (e.g., spaces or multiple dots).

13. Поздравления

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

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