Acelera el desarrollo con Gemini CLI

1. Descripción general

Este lab se enfoca en el uso de la CLI de Gemini, un agente de código abierto potenciado por IA en Google Cloud. Aprenderás a usar la CLI de Gemini para diversas tareas, como comprender bases de código existentes, generar documentación y pruebas de unidades, y refactorizar los componentes de IU y de backend de una aplicación web de Python.

Qué aprenderás

En este lab, aprenderás a realizar las siguientes tareas:

  • Cómo usar la CLI de Gemini para tareas comunes de desarrollo

Requisitos previos

  • Para este lab, se da por sentado que el usuario tiene conocimientos previos sobre los entornos de shell y la consola de Cloud.

2. Configuración y requisitos

Configuración del proyecto de Cloud

  1. Accede a Google Cloud Console y crea un proyecto nuevo o reutiliza uno existente. Si aún no tienes una cuenta de Gmail o de Google Workspace, debes crear una.

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • El Nombre del proyecto es el nombre visible de los participantes de este proyecto. Es una cadena de caracteres que no se utiliza en las APIs de Google. Puedes actualizarla cuando quieras.
  • El ID del proyecto es único en todos los proyectos de Google Cloud y es inmutable (no se puede cambiar después de configurarlo). La consola de Cloud genera automáticamente una cadena única. Por lo general, no importa cuál sea. En la mayoría de los codelabs, deberás hacer referencia al ID de tu proyecto (suele identificarse como PROJECT_ID). Si no te gusta el ID que se generó, podrías generar otro aleatorio. También puedes probar uno propio y ver si está disponible. No se puede cambiar después de este paso y se usa el mismo durante todo el proyecto.
  • Recuerda que hay un tercer valor, un número de proyecto, que usan algunas APIs. Obtén más información sobre estos tres valores en la documentación.
  1. A continuación, deberás habilitar la facturación en la consola de Cloud para usar las APIs o los recursos de Cloud. Ejecutar este codelab no costará mucho, tal vez nada. Para cerrar recursos y evitar que se generen cobros más allá de este instructivo, puedes borrar los recursos que creaste o borrar el proyecto. Los usuarios nuevos de Google Cloud son aptos para participar en el programa Prueba gratuita de $300.

Configuración del entorno

Abre el chat de Gemini.

bc3c899ac8bcf488.png

También puedes escribir "Pregúntale a Gemini" en la barra de búsqueda.

e1e9ad314691368a.png

Habilita la API de Gemini para Google Cloud:

636114fa6e5f0abf.png

Habilita la GCA en la siguiente pantalla.

8e234b2e282c4413.png

Haz clic en "Start chatting" y sigue una de las preguntas de ejemplo o escribe tu propia instrucción para probarlo.

ed120d672468b412.png

Instrucciones que puedes probar:

  • Explica Cloud Run en 5 puntos clave.
  • Eres el administrador de productos de Google Cloud Run y debes explicarle Cloud Run a un estudiante en 5 puntos clave breves.
  • Eres el administrador de productos de Google Cloud Run. Explícale Cloud Run a un desarrollador certificado de Kubernetes en 5 puntos clave breves.
  • Eres el gerente de productos de Google Cloud Run. Explícale a un desarrollador sénior en 5 puntos clave breves cuándo usarías Cloud Run en lugar de GKE.

Cuando termines, cierra la ventana de chat de Gemini Cloud Assist.

Consulta la Guía de instrucciones para obtener más información sobre cómo escribir mejores instrucciones.

Cómo Gemini for Google Cloud usa tus datos

Compromiso de Google con la privacidad

Google fue uno de los primeros en el sector en publicar un compromiso de privacidad con la IA y el AA, que describe nuestra creencia de que los clientes deben tener el nivel más alto de seguridad y control sobre sus datos que se almacenan en la nube.

Datos que envías y recibes

Las preguntas que le haces a Gemini, incluida cualquier información de entrada o código que envíes a Gemini para que analice o complete, se denominan instrucciones. Las respuestas o las sugerencias de código que recibes de Gemini se denominan respuestas. Gemini no usa tus instrucciones ni sus respuestas como datos para entrenar sus modelos.

Encriptación de instrucciones

Cuando envías instrucciones a Gemini, tus datos se encriptan en tránsito como entrada al modelo subyacente en Gemini.

Datos del programa generados por Gemini

Gemini se entrena con código propio de Google Cloud y con código de terceros seleccionado. Eres responsable de la seguridad, las pruebas y la eficacia de tu código, incluida cualquier finalización, generación o análisis de código que te ofrezca Gemini.

Obtén más información sobre cómo Google maneja tus instrucciones.

3. Opciones para probar mensajes

Si quieres cambiar las instrucciones existentes, tienes varias opciones para hacerlo.

Vertex AI Studio forma parte de la plataforma Vertex AI de Google Cloud y está diseñado específicamente para simplificar y acelerar el desarrollo y el uso de modelos de IA generativa.

Google AI Studio es una herramienta basada en la Web para crear prototipos y experimentar con la ingeniería de instrucciones y la API de Gemini.

La app web de Google Gemini (gemini.google.com) es una herramienta basada en la Web diseñada para ayudarte a explorar y utilizar el poder de los modelos de IA de Gemini de Google.

4. Descarga y examina la aplicación

Para activar Cloud Shell, haz clic en el ícono que se encuentra a la derecha de la barra de búsqueda.

3e0c761ca41f315e.png

Si se te solicita autorización, haz clic en "Autorizar" para continuar.

6356559df3eccdda.png

En la terminal, ejecuta los siguientes comandos para clonar el repositorio de Git de forma local.

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

Inicia el "Editor de Cloud Shell".

18ca8f879206a382.png

Abre la carpeta "calendar-app-lab".

7cef847802b51038.png

Inicia una terminal nueva en el Editor de Cloud Shell.

3336bea9c0e999b9.png

Tu entorno debería verse similar a la siguiente captura de pantalla.

ae9475871b7d28a6.png

5. Introducción a Gemini CLI

La CLI de Gemini es un agente de IA de código abierto que se integra con los modelos de Gemini de Google Cloud. Permite que los desarrolladores realicen varias tareas directamente desde su terminal, como comprender bases de código, generar documentación y pruebas de unidades, y refactorizar código. El beneficio clave de Gemini CLI es su capacidad para optimizar los flujos de trabajo de desarrollo, ya que lleva el poder de la IA generativa directamente al entorno de línea de comandos del desarrollador, lo que reduce el cambio de contexto y mejora la productividad.

Este paso, que consiste en establecer la variable de entorno, no es necesario para el entorno de Qwiklabs. Continúa con el siguiente paso.

En tu entorno local, si usas una licencia pagada de Code Assist de tu organización, recuerda configurar el proyecto de Google Cloud en tu terminal. Más detalles.

export GOOGLE_CLOUD_PROJECT="YOUR_PROJECT_NAME"

Comprueba que estás en la raíz de la carpeta del proyecto:

cd ~/calendar-app-lab

Inicia Gemini CLI en la ventana de la terminal:

gemini

Tu entorno debería verse similar a la siguiente captura de pantalla.

Si sigues los pasos en tu entorno local, puedes habilitar la integración con tu IDE.

Puedes cambiar esta opción en cualquier momento con el comando /ide disable | enable.

eaee08868abb4ccd.png

Si ejecutas el lab en el entorno de Qwiklabs, selecciona "Use Cloud Shell user credentials".

De lo contrario, ejecuta el siguiente comando para autenticar Gemini CLI y selecciona "Login with Google":

/auth

Después de reiniciar la CLI, se te pedirá que autorices la aplicación siguiendo un vínculo proporcionado.

390e8cbd9a32e8eb.png

Abre el vínculo y sigue los pasos para acceder con las credenciales de estudiante de Qwiklabs. 24c1671a3c14b61d.png

Copia el código de verificación y vuelve a la terminal para completar el proceso pegando el código.

Para verificar tu método de autenticación, ejecuta el siguiente comando:

/about

f15a4036437b84d5.png

6. Comprensión de la base de código

Puedes usar la CLI de Gemini para comprender rápidamente la base de código. Para ello, pídele que resuma el propósito de los archivos o directorios y que explique funciones o secciones de código complejas. Esto permite que los desarrolladores se incorporen rápidamente a proyectos nuevos o comprendan partes desconocidas del código existente sin necesidad de realizar una exploración manual profunda.

Para obtener más información sobre la base de código, envía la siguiente instrucción en la CLI de Gemini:

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

Revisa el resultado:

63b57c91fd0e90a8.png

7. Inicia la aplicación de forma local

La CLI de Gemini puede simplificar significativamente la ejecución local de tu aplicación de Python, ya que te ayuda a generar automáticamente archivos de configuración esenciales, como requirements.txt o un Dockerfile básico. Además, es excelente para administrar dependencias de Python y solucionar problemas, ya que puede explicar rápidamente los errores de seguimiento resultantes de la falta de paquetes o conflictos de versiones, y, a menudo, sugiere el comando pip install preciso para solucionar el problema.

Para iniciar la aplicación de forma local, ingresa la siguiente instrucción en la terminal de la CLI de Gemini:

Run this app locally

Sigue las indicaciones para comenzar la solicitud:

d1fefa449b733c15.png

Haz clic en el vínculo para obtener una vista previa de la aplicación:

695fc8a1abab0aa7.png

Resultado de muestra:

e9f986d9088b4419.png

d2bb703195b4f99.png

8. Agrega documentación

La CLI de Gemini es eficaz para la documentación y los comentarios, ya que te permite generar docstrings para funciones o clases de forma instantánea. También puedes aprovecharlo para agregar rápidamente comentarios intercalados explicativos a bloques de código complejos o desconocidos, lo que mejora significativamente la claridad y el mantenimiento de la base de código.

Para agregar comentarios a cada archivo de Python en la aplicación, usa la terminal de la CLI de Gemini y, luego, ingresa la siguiente instrucción:

Add docstrings to all files

Aprobar los cambios que se sugirieron Si la integración del IDE está habilitada, puedes aceptar y continuar con los controles de la IU o presionando Intro en la terminal. También puedes habilitar el modo de aprobación automática(YOLO) con "ctrl+y".

a41d76b77290cc10.png

Actualiza el archivo .gitignore con la siguiente instrucción:

update .gitignore and add __pycache__ folder

Cambia a la vista Control de código fuente y revisa los cambios que hiciste hasta el momento:

2c41f8b842573384.png

9. Cómo agregar pruebas de unidades

La CLI de Gemini es excelente para escribir pruebas de unidades, ya que permite a los desarrolladores generar funciones de prueba basadas en la firma y la lógica de una función existente, con aserciones iniciales y configuración de simulaciones. Sin embargo, los desarrolladores deben revisar y validar las pruebas generadas para asegurarse de que cubran de manera significativa todos los casos extremos requeridos y no solo la ejecución de rutas simplistas.

Usa la siguiente instrucción para generar pruebas de unidades:

Generate unit tests for @calendar.py

Acepta los cambios después de revisarlos.

6b59d78b83152a22.png

Instala dependencias nuevas y ejecuta las pruebas. La CLI de Gemini observará, corregirá y volverá a ejecutar el código generado en un bucle hasta que se aprueben las pruebas y se valide el código.

ec1a4fbb2d340384.png

10. Verifica si hay errores

La CLI de Gemini puede ayudarte a detectar errores en la lógica, ya que te permite pedirle que revise y analice fragmentos de código, y que identifique posibles fallas lógicas, errores de "por uno" o un control condicional incorrecto. Si explicas el comportamiento previsto del código y le pides a la CLI que detecte discrepancias, puedes detectar rápidamente defectos sutiles antes de ejecutar el código.

Para verificar si hay errores en la lógica de conversión, envía la siguiente instrucción en la CLI de Gemini:

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

Revisa los cambios sugeridos y acéptalos en el chat:

54ef65ded5462b34.png

11. Refactorización de la IU

La CLI de Gemini puede ayudar significativamente en la refactorización de la IU, ya que te permite traducir patrones de IU más antiguos (como los componentes de clase) en paradigmas funcionales más nuevos y modernos (como los hooks en React) o sugerir mejoras estructurales para un mejor mantenimiento. Puedes usarlo para analizar y refactorizar el código de la IU existente en componentes más modulares y reutilizables, lo que garantiza un diseño de interfaz más limpio y estandarizado.

Para refactorizar la IU con la biblioteca de Bootstrap, envía la siguiente instrucción a la CLI de Gemini:

Refactor UI to use Bootstrap library

Revisa y acepta los cambios:

16e6ca14e703127.png

Para comenzar, inicia la aplicación. Si ya se está ejecutando, simplemente vuelve a cargar la página.

python3 main.py

Vuelve a cargar la página y verifica los cambios.

b52a709e902040e3.png

54664e527bcd9227.png

Implementa el control de errores para garantizar que se muestre una página de error cuando surjan problemas.

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

Actualiza la página para ver las actualizaciones.

Envía un número negativo para confirmar la página de error.

82e16d4cf25933db.png

12. Refactorización del backend

La CLI de Gemini es eficaz para la refactorización del backend, ya que ayuda a migrar el código del framework heredado a alternativas modernas o a reestructurar los servicios monolíticos en componentes de microservicios más fáciles de administrar. Puede analizar la lógica del servidor para sugerir patrones de consultas de bases de datos mejorados o diseños de extremos de API más eficientes, lo que garantiza que se mantenga o mejore el rendimiento y la escalabilidad.

Modifica el backend para guardar las solicitudes de conversión en la memoria.

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

Revisa y acepta los cambios en el chat:

19cfa20552fb3a01.png

Envía varias solicitudes a la aplicación y, luego, revisa la página del historial.

ac5639d18b341b0a.png

Revisa el historial de solicitudes de conversión.

9ca680e193510640.png

Para actualizar el archivo README.md con el estado actual de la base de código, envía esta instrucción a través de la CLI de Gemini:

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

Revise el resultado. Si habilitaste la integración de Cloud Shell, puedes usar el control de la IU para acceder a los cambios o hacerlo desde la terminal.

13. Herramientas integradas en la CLI de Gemini

La CLI de Gemini incluye herramientas integradas que el modelo de Gemini usa para interactuar con tu entorno local, acceder a información y realizar acciones. Estas herramientas mejoran las capacidades de la CLI, lo que le permite ir más allá de la generación de texto y ayudar con una amplia variedad de tareas.

Envía esta instrucción en la CLI de Gemini para ver las herramientas disponibles:

/tools

Revise el resultado.

e5ef2d9b81f6c10.png

Gemini CLI selecciona de forma inteligente las herramientas integradas más adecuadas según la tarea que proporciones, lo que le permite ejecutar operaciones complejas aprovechando su comprensión de tu solicitud y las funcionalidades disponibles. Obtén más información sobre las herramientas integradas.

14. Comando repo init de Gemini CLI

La CLI de Gemini incluye un comando para analizar el proyecto y crear un archivo GEMINI.md personalizado.

Para generar el archivo GEMINI.md, envía la siguiente instrucción con la CLI de Gemini:

/init

Revise el resultado. Este comando creará un archivo GEMINI.md, que resume el propósito, las tecnologías, las instrucciones de compilación y ejecución, y las convenciones de desarrollo del proyecto para el contexto futuro.

Para comprender qué instrucciones o contexto incluir en el archivo GEMINI.md de tu proyecto, un buen punto de partida es revisar el archivo GEMINI.md que se encuentra en el gemini-cli repositorio.

15. Comandos personalizados de Gemini CLI

Puedes optimizar tu flujo de trabajo de desarrollo y mantener la coherencia usando comandos personalizados en Gemini CLI. Estos comandos actúan como atajos personales para las instrucciones que más usas. Tienes la flexibilidad de crear comandos específicos para un solo proyecto o hacer que estén disponibles de forma global en todos tus proyectos.

El repositorio incluye varios comandos personalizados ubicados en la carpeta .gemini/commands.

Comando personalizado para crear un diagrama

Envía esta instrucción en Gemini CLI para generar un diagrama de flujo de solicitudes en formato Mermaid.

Aceptar llamadas a herramientas, como crear una carpeta y guardar un archivo

/diagram:new request flow for this app

Revise el resultado.

a85a31f482a2cc7d.png

Si quieres obtener una vista previa del diagrama, instala la extensión Mermaid Chart desde Marketplace.

22d4a002e2137b55.png

Abre el archivo y selecciona la vista previa en el menú contextual.

bccf0ae8ac46415f.png

c669fcd96c34662.png

Comando personalizado para crear una baraja

Envía esta instrucción en la CLI de Gemini para generar una presentación con los puntos clave en formato Marp.

Aceptar llamadas a herramientas, como crear una carpeta y guardar un archivo

/deck:new key points and details for this app

Revise el resultado.

c9aa767796204c7c.png

Este paso no es compatible con Cloud Shell, ya que la extensión de Marp requiere la instalación de un navegador web.

Instala la extensión Marp para VS Code desde Marketplace para guardar la presentación.

a9d339718cbfcd9.png

De lo contrario, abrirías el archivo generado en el editor y, desde la paleta de comandos, seleccionarías "Marp: Export Slide Deck".

91143fe81f7f5d71.png

Comando personalizado para planificar la implementación de una función nueva

Envía esta instrucción en Gemini CLI para refactorizar la IU.

Aceptar llamadas a herramientas, como crear una carpeta y guardar un archivo

/plan:new refactor UI to use Materialize CSS

Revise el resultado.

552dbe189a493f91.png

Inicia el proceso de refactorización de la IU enviando esta instrucción a través de la CLI de Gemini, según el plan generado anteriormente.

Aceptar llamadas a herramientas, como crear una carpeta y guardar un archivo Puedes habilitar el modo de aprobación automática de herramientas(YOLO mode) con "ctrl+y".

/plan:impl implement the plan to refactor the app

a3ceec7146f285e0.png

Inicia o vuelve a cargar la aplicación y revisa el resultado:

fd0675f713d361e4.png

7352b93acabfb5be.png

16. Modo no interactivo de la CLI de Gemini

Cuando ejecutas la CLI de Gemini en un modo no interactivo dentro de una canalización de CI/CD, puedes automatizar varias tareas pasando instrucciones y comandos directamente a la CLI sin necesidad de intervención manual. Esto permite una integración perfecta en flujos de trabajo automatizados para el análisis de código, la generación de documentación y otras tareas de desarrollo.

Abre una terminal nueva o cierra la sesión existente de la CLI de Gemini y ejecuta este comando.

gemini -p "Explain the architecture of this codebase"

Revise el resultado.

Si tu tarea requerirá la aprobación de herramientas, puedes habilitar el modo YOLO con la marca -y.

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

Revise el resultado.

Si aprovechas la CLI de Gemini en modo no interactivo, puedes mejorar significativamente las capacidades de automatización de tus canalizaciones de CI/CD, lo que genera ciclos de desarrollo más eficientes y una mejor calidad del código.

17. Modo Shell de Gemini CLI

Si bien los LLM manejan tareas complejas, los comandos directos son más eficientes para acciones sencillas. El ! prefix permite cambiar sin problemas entre la IA y las interfaces de línea de comandos tradicionales.

!ls

Revise el resultado. Presiona Escape para salir del modo de shell.

18. Compatibilidad con MCP de la CLI de Gemini

La CLI de Gemini, a través del Protocolo de contexto del modelo (MCP), se puede integrar con sistemas de terceros, como Jira, Confluence o GitHub. Esto se logra a través de integraciones de herramientas personalizadas del servidor de MCP, lo que permite que la CLI de Gemini cree o actualice tickets de JIRA, recupere información de páginas de Confluence, cree solicitudes de extracción, etcétera.

Ejecuta este comando en la terminal para crear el archivo de configuración o usar el modo de shell.

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

Inicia la sesión de Gemini CLI:

gemini

Verifica los servidores de MCP configurados:

/mcp

Revisa el resultado

c80d95544cc3436a.png

Envía la instrucción para probar el servidor de MCP configurado:

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

Aprueba las herramientas y revisa el resultado.

b51db5af09bd3f02.png

19. Ejemplo de configuración de servidores de MCP para tu entorno local

Puedes configurar varios servidores de MCP en tu entorno local con la siguiente configuración.

{
    "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": "******"
            }
        }
    }
}

Los servidores de MCP en esta configuración transforman tu agente de la CLI de Gemini en una herramienta dinámica de desarrollo y colaboración, ya que proporcionan acceso estandarizado a sistemas externos. Específicamente, el servidor de Snyk Security Scanner permite que el agente verifique el código y las dependencias en busca de vulnerabilidades sin salir de tu espacio de trabajo actual, mientras que el servidor de Atlassian se conecta a Jira y Confluence, lo que permite que la CLI de Gemini cree, busque y actualice problemas o documentación con lenguaje natural. Además, el servidor de Playwright otorga al agente capacidades de automatización del navegador, lo que le permite navegar e interactuar con la Web para tareas como pruebas o extracción de datos. Por último, el servidor de GitHub le brinda al agente acceso contextual y directo a tus repositorios, lo que le permite administrar solicitudes de extracción, priorizar problemas y analizar la base de código, lo que reduce significativamente los cambios de contexto y aumenta la productividad en todo tu flujo de trabajo de desarrollo.

20. Conclusión de la CLI de Gemini

En conclusión, Gemini CLI se destaca como un agente de IA de código abierto potente y versátil que se integra a la perfección con los modelos de Gemini de Google Cloud, lo que mejora significativamente la productividad de los desarrolladores. A lo largo de este lab, exploramos sus capacidades para optimizar varias tareas de desarrollo comunes, desde comprender bases de código complejas y generar documentación esencial y pruebas de unidades hasta refactorizar de manera eficiente los componentes de frontend y backend de una aplicación web de Python. Con la CLI de Gemini, los desarrolladores pueden reducir el cambio de contexto, automatizar procesos repetitivos y, en última instancia, entregar código de mayor calidad con mayor eficiencia. Su capacidad para llevar el poder de la IA generativa directamente a la línea de comandos revoluciona el flujo de trabajo de desarrollo.

21. ¡Felicitaciones!

¡Felicitaciones! Completaste el codelab.

Temas abordados:

  • Usa la CLI de Gemini para tareas comunes de desarrollo

Pasos siguientes:

  • ¡Pronto habrá más sesiones prácticas!

Limpia

Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos usados en este instructivo, borra el proyecto que contiene los recursos o conserva el proyecto y borra los recursos individuales.

Borra el proyecto

La manera más fácil de eliminar la facturación es borrar el proyecto que creaste para el instructivo.

©2024 Google LLC Todos los derechos reservados. Google y el logotipo de Google son marcas de Google LLC. El resto de los nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que están asociados.