Desarrolla una app de Python con Gemini para obtener asistencia de Google Cloud

En este instructivo, se muestra cómo usar Gemini en Google Cloud, un colaborador potenciado por IA en Google Cloud, para explorar, crear, modificar, implementar y probar una app de Python de muestra.

En el siguiente ejemplo, considera que eres un desarrollador que forma parte de un equipo que desarrolla una app de inventario. Estás a cargo del prototipado de un servicio básico que contiene algunos métodos de API para funcionar como parte de la app de inventario. Quieres desarrollar la app en tu entorno local de VS Code y, luego, implementarla en Google Cloud. Sin embargo, no estás seguro de qué servicio de Google Cloud se ajusta mejor a tu caso de uso.

En este instructivo, usarás Gemini junto con Visual Studio Code como IDE para compilar una app de inventario de muestra que tenga dos métodos de API.

Este instructivo está dirigido a desarrolladores de cualquier nivel de experiencia que contribuyeron a la compilación de apps, pero es posible que no estén familiarizados con las tecnologías de la nube. Se da por sentado que tienes experiencia en el uso de VS Code como IDE y que estás familiarizado con Python y el framework de Flask.

Objetivos

  • Haz preguntas basadas en el contexto a Gemini para explorar varios servicios de Google que puedes usar para implementar una app.

  • Solicita a Gemini que proporcione plantillas que puedas usar para desarrollar una app básica de Python en Cloud Run.

  • Crear, explorar y modificar la app con Gemini para explicar y generar el código

  • Ejecuta y prueba la app de forma local y, luego, impleméntala en Google Cloud con Gemini para generar los pasos.

Productos de Google Cloud usados

En este instructivo, se usan los siguientes productos facturables de Google Cloud. Usa la calculadora de precios para estimar los costos según el uso previsto.

  • Cloud Run. Cloud Run es una plataforma de procesamiento administrada que permite ejecutar contenedores directamente en la infraestructura escalable de Google. Puedes implementar código escrito en cualquier lenguaje de programación en Cloud Run si puedes compilar una imagen de contenedor a partir de él. Para obtener información sobre los precios, consulta Cloud Run.

Además del producto mencionado anteriormente, en este instructivo también se usan los siguientes productos:

  • Gemini. Gemini es un colaborador siempre activo en Google Cloud que ofrece asistencia con tecnología de IA generativa a una amplia variedad de usuarios, incluidos desarrolladores y científicos de datos. Para ofrecer una experiencia de asistencia integrada, Gemini está incorporada en muchos productos de Google Cloud.

  • Extensión de Cloud Code para VS Code. Esta extensión es un complemento de IDE que proporciona compatibilidad con el ciclo de desarrollo de aplicaciones de Kubernetes y Cloud Run. Si deseas obtener más información sobre la extensión de Cloud Code, consulta Cloud Code para funciones de VS Code.

Antes de comenzar

  1. Si aún no lo hiciste, instala una copia local de VS Code.

  2. Instala la extensión de Cloud Code para VS Code.

    Sigue las instrucciones de la guía de instalación para instalar Python, Git y el cliente Docker. Además, sigue los pasos para crear un proyecto de Google Cloud.

  3. Asegúrate de que Gemini esté configurado para tu cuenta de usuario y tu proyecto de Google Cloud.
  4. Habilita Gemini para tu IDE.

    Sigue los pasos para conectarte a Google Cloud en tu IDE y seleccionar un proyecto configurado para Google Cloud.

Explora los servicios de Google Cloud

Si eres nuevo en Google Cloud, Gemini puede ayudarte a elegir los servicios de Google Cloud que cumplan con los requisitos de la arquitectura de tu aplicación.

En tu IDE, puedes chatear con Gemini para obtener ayuda. En el panel Gemini, puedes ingresar mensajes (preguntas o declaraciones que describan la ayuda que deseas), y Gemini mostrará respuestas. Los mensajes pueden incluir contexto de código existente que Google Cloud analiza para proporcionar respuestas más útiles o completas. Si quieres obtener más información sobre cómo escribir instrucciones para generar buenas respuestas, consulta Cómo escribir mejores instrucciones para Gemini.

Para solicitarle a Gemini sobre los servicios de Google Cloud, sigue estos pasos:

  1. En la barra de actividades del IDE, haz clic en spark Gemini.

    Para ubicar la barra de actividad de VS Code, consulta Interfaz de usuario.

  2. En el panel de Gemini, ingresa la siguiente instrucción y, luego, haz clic en Enviar:

    I am new to Google Cloud and I want to use the Cloud Code extension.
    Give me some examples of Google services that I can use to build and deploy a
    sample app using containers.
    

    Gemini responde con una lista de los servicios y las descripciones de Google Cloud.

    En este ejemplo, supongamos que Gemini sugiere Cloud Run y Cloud Functions como dos servicios de Google Cloud que pueden ayudarte a compilar y a implementar una app de ejemplo, pero necesitas más información sobre esos servicios.

    Gemini no usa tus mensajes ni sus respuestas como datos para entrenar sus modelos. Para obtener más información, consulta Cómo Gemini para Google Cloud usa tus datos.

  3. Ingresa una pregunta adicional como la siguiente:

    What is the difference between Cloud Run and Cloud Functions? Explain to me
    in simple terms as I am new to Google Cloud.
    

    Gemini responde con las diferencias detalladas entre los dos servicios de Google Cloud.

  4. Opcional: Para restablecer tu historial de chat, en el panel de Gemini, haz clic en borrar Restablecer chat.

Crea una app de Hello World en Python

Considera que deseas usar Cloud Run para crear e implementar una app básica de Python. Como eres nuevo en Cloud Run y Cloud Code, necesitas ayuda con los pasos para crear la app. En esta sección, le solicitas a Gemini ayuda para compilar una app de Hello World en Python en Cloud Run.

  1. Si aún no lo hiciste, inicia el IDE.

  2. En la barra de actividades del IDE, haz clic en spark Gemini.

  3. En el panel de Gemini, ingresa la siguiente instrucción y, luego, haz clic en Enviar:

    How to create a new Cloud Run app in Cloud Code using the command palette?
    What languages are supported?
    

    En la paleta de comandos de VS Code, se proporciona una lista de todos los comandos, incluidos los de Cloud Code.

    El resultado es similar al siguiente:

    To create a new Cloud Run app in Cloud Code using the command palette,
    follow these steps:
    1. Open the command palette (press Ctrl/Cmd+Shift+P or click View > Command Palette).
    2. Run the "Cloud Code: New Cloud Run App" command.
    ...
    

    Gemini también muestra los idiomas compatibles con la app de Cloud Run.

    En este ejemplo, eliges usar una plantilla de Cloud Run basada en Python para crear la app de muestra.

  4. Para aprender a crear una app de Python a partir de una plantilla de Cloud Run, ingresa el siguiente mensaje:

    How do I create a Python app from a Cloud Run template using the
    command palette? I am using Cloud Code.
    

    El resultado es similar al siguiente:

    To create a Python app from a Cloud Run template using the command palette,
    follow these steps:
    
    1. Open Cloud Code.
    
    2. Click the Command Palette
       (press Ctrl/Cmd+Shift+P or click View > Command Palette).
    
    3. Run the "Cloud Code: New Application" command.
    
    ...
    

    Completa los pasos que proporciona Gemini en su respuesta para crear una app de Hello World básica en Python en Cloud Run. También puedes consultar la siguiente sección para crear la app de Hello World en Python.

Pasos alternativos para crear una app de Hello World en Python

  1. Si aún no lo hiciste, inicia el IDE.

  2. Abre la paleta de comandos: presiona Comando + Mayús + P (en MacOS) o Control + Mayús + P (en Windows y Linux).

  3. En el campo de paleta de comandos, ingresa Cloud Code: New Application y, luego, haz clic en el resultado.

  4. En la lista de muestras disponibles, selecciona Cloud Run application.

  5. En la lista de plantillas disponibles, selecciona Python (Flask): Cloud Run.

  6. Guarda la app nueva en tu ubicación preferida.

Una notificación confirma que se creó la app. Se abrirá una vista previa del archivo README del servicio seleccionado en tu IDE, como se muestra en la figura 1:

captura de pantalla
Figura 1: Archivo README que se muestra para una app de Hello World en Python creada en Cloud Run.

Explora la app de Hello World en Python

Ahora que creaste tu app de Hello World en Cloud Run, puedes usar Gemini para explicar los archivos y fragmentos de código que se implementan en tu IDE. Para explorar el código de la app de ejemplo que creaste, sigue estos pasos:

  1. Inicia tu IDE.

  2. Abre el Explorador: presiona Comando + Mayús + E (en MacOS) o Control + Mayús + E (en Windows y Linux).

    Podrás ver los archivos relacionados con tu app de ejemplo.

  3. En la lista de archivos, haz clic en Dockerfile para mostrar su contenido.

  4. Selecciona todo el contenido de Dockerfile, haz clic en el ícono de bombilla y, luego, en Explain this, como se muestra en la Figura 2:

    captura de pantalla del Dockerfile
    Figura 2. La función de explicación del código está disponible cuando seleccionas código.

    Gemini genera una explicación en lenguaje natural sobre el contenido y la función de Dockerfile. Si no estás seguro sobre algunos puntos dentro de la respuesta, puedes hacer preguntas de seguimiento.

  5. Para obtener más información sobre el archivo app.py que se menciona en Dockerfile, en el panel de Gemini, ingresa el siguiente mensaje:

    What is the function of the app.py file in Dockerfile?
    

    Gemini genera una respuesta similar a la siguiente:

    The app.py file is the entrypoint for the container. It is the file that
    will be executed when the container is launched. In this case, the app.py
    file will run the Python code that is contained within it.
    

    Como alternativa, también puedes seleccionar el texto app.py en Dockerfile, hacer clic en el ícono de bombilla y, luego, en Explicar esto.

  6. Abre el Explorador: presiona Comando + Mayús + E (en MacOS) o Control + Mayús + E (en Windows y Linux).

  7. Abre el archivo app.py. Verás dos variables, K_SERVICE y K_REVISION.

  8. Para obtener más información sobre las variables en el archivo app.py, en el panel Gemini, ingresa el siguiente mensaje:

    What is the function of `K_SERVICE` and `K_REVISION` in the `app.py` file?
    

    Como alternativa, también puedes seleccionar el siguiente texto en Dockerfile, hacer clic en el ícono de bombilla y, luego, en Explain this:

    service = os.environ.get('K_SERVICE', 'Unknown service')
    revision = os.environ.get('K_REVISION', 'Unknown revision')
    

    La respuesta es similar al ejemplo a continuación:

    The code above is using the os.environ module to get the values of the
    K_SERVICE and K_REVISION environment variables. These variables are set by
    Cloud Run when it deploys the service, and they contain the name of the
    service and the revision number, respectively.
    ...
    

Genera datos de muestra para la app

Tienes una app de Flask básica creada en Cloud Run. Antes de que puedas agregar funcionalidades para compilar la app de inventario, necesitarás un archivo que contenga una lista de elementos de inventario de muestra. Si deseas usar Gemini para generar los datos de muestra relevantes, sigue estos pasos:

  1. Para mostrar los archivos relacionados con tu app de ejemplo, en tu IDE, haz clic en el ícono de Explorer.

  2. Haz clic en el ícono New file y crea un archivo llamado inventory.py.

  3. Para permitir que Gemini genere los datos de muestra, en el panel de Gemini, ingresa el siguiente mensaje:

    Create a variable called inventory which is a list of 3 JSON objects.
    Each JSON object has 2 attributes: productid and onhandqty.
    Both attributes are strings.
    

    Gemini genera un código de muestra para tres objetos JSON.

  4. En la respuesta, haz clic en addInsert in current file para insertar la muestra de código en el archivo inventory.py, como se muestra en la Figura 3:

    insertar código
    Figura 3: Puedes insertar código desde una respuesta de Gemini.

    El archivo inventory.py es similar al siguiente:

    inventory = [
       {
          "productid": "12345",
          "onhandqty": "10"
       },
       {
          "productid": "23456",
          "onhandqty": "20"
       },
       {
          "productid": "34567",
          "onhandqty": "30"
       }
    ]
    

    Creaste correctamente el archivo inventory.py, que incluye una lista de elementos de inventario.

Modifica la app de Hello World para Python

Después de crear el archivo inventory.py, debes ingresar algunos métodos de API en el archivo app.py que pueden operar en los datos de inventario. Para completar este objetivo, puedes usar la función de generación de código en Gemini.

  1. Para mostrar los archivos relacionados con tu app de ejemplo, en tu IDE, haz clic en el ícono del Explorador.

  2. Para mostrar el contenido, haz clic en el archivo app.py.

  3. Edita las sentencias de importación para que el archivo app.py incluya el archivo inventory.py:

    import os
    from flask import Flask, render_template
    from inventory import inventory
    
  4. A fin de permitir que Gemini genere el código para el primer método de API, en el archivo app.py, ingresa el siguiente comentario y presiona Control + Intro:

     # Generate an app route to display a list of inventory
     # items in the JSON format from the
     # inventory.py file. Use the GET method.
    
    

    Gemini genera una respuesta en el archivo app.py.

    Según la configuración del sistema, la combinación de teclas para generar código con Gemini puede ser diferente de la combinación Control + Intro que se usa en este instructivo.

  5. Mantén el puntero sobre cualquier parte de la respuesta.

    Se muestra una barra de herramientas de Gemini.

    Gemini puede generar más de una respuesta. En la barra de herramientas, puedes desplazarte por cada respuesta con las teclas < y >. En el siguiente ejemplo, Gemini genera solo una respuesta, como se muestra en la figura 4:

    aceptar código
    Figura 4: Puedes aceptar una sugerencia de código de Gemini.
  6. Para aceptar la muestra de código sugerida, haz clic en Accept en la barra de herramientas.

    El resultado es similar al siguiente:

    # Generate an App route to display a list of inventory
    # items in the JSON format from the
    # inventory.py file. Use the GET method.
    @app.route('/inventory', methods=['GET'])
    def get_inventory():
        """Return a list of inventory items."""
        return jsonify(inventory)
    
  7. Opcional: Para obtener más información sobre la función jsonify(inventory), destaca el término y pídele a Gemini que te explique el código.

  8. Edita las sentencias de importación para que el archivo app.py incluya la función jsonify:

    import os
    from flask import Flask, render_template, jsonify
    from inventory import inventory
    
  9. Para agregar otro método de API, en el archivo app.py, ingresa la siguiente instrucción y, luego, presiona Control + Intro:

    # Generate an App route to get an inventory item
    # given the productid. Use the GET method.
    # If there is an invalid productid,
    # display a 404 error.
    

    Gemini genera una respuesta en el archivo app.py.

  10. Mantén el puntero sobre cualquier parte de la respuesta.

    Se muestra una barra de herramientas de Gemini.

  11. Para aceptar una de las muestras de código sugeridas, haz clic en Accept en la barra de herramientas.

    El resultado es similar al siguiente:

    # Generate an App route to get an inventory item
    # given the productid. Use the GET method.
    # If there is an invalid productid,
    # display a 404 error.
    @app.route('/inventory/<productid>', methods=['GET'])
    def get_inventory_item(productid):
        """Return an inventory item given the productid."""
        for item in inventory:
            if item["productid"] == productid:
               return jsonify(item)
        return jsonify({"error": "Item not found"}), 404
    

    Agregaste correctamente dos métodos de API para crear tu app de inventario.

Ejecuta la app de manera local desde tu IDE

Ya puedes implementar la app de forma local desde VS Code. Para implementar la app, sigue estos pasos:

  1. Si aún no lo hiciste, inicia el IDE.

  2. En la barra de actividades del IDE, haz clic en spark Gemini.

  3. En el panel de Gemini, ingresa la siguiente instrucción y, luego, haz clic en Enviar:

    How do I run a Cloud Run app locally within Cloud Code?
    Is there an emulator?
    

    Sigue los pasos que se indican en la respuesta de Gemini para ejecutar la app de forma local desde VS Code. También puedes consultar la siguiente sección para implementar una app de Cloud Run de muestra de forma local desde VS Code.

Pasos alternativos para ejecutar la app de manera local desde tu IDE

Si no seguiste los pasos de la respuesta de Gemini de la sección anterior, puedes seguir estos pasos para implementar la app de ejemplo:

  1. Inicia tu IDE.

  2. Abre la paleta de comandos: presiona Comando + Mayús + P (en MacOS) o Control + Mayús + P (en Windows y Linux).

  3. En el campo de paleta de comandos, ingresa Run on Cloud Run Emulator y, luego, haz clic en el resultado.

  4. En el archivo de entorno Build, conserva los valores predeterminados y haz clic en Ejecutar.

    En este instructivo, se usa Docker como la opción de compilador.

    En el panel Output de tu IDE, puedes ver el progreso de la compilación. El proceso de implementación real puede tardar un tiempo en completarse.

    Starting to run the app using configuration 'Cloud Run:
    Run/Debug Locally' from .vscode/launch.json...
    To view more detailed logs, go to Output channel : "Cloud Run: Run/Debug Locally - Detailed"
    Dependency check started
    Dependency check succeeded
    Starting minikube, this may take a while......
    ...
    

Para ver tu app activa, una vez que se complete la implementación, haz clic en la URL en el panel Resultado (Output). Para una copia local de VS Code, si especificaste localhost 8080, la app de muestra estará publicada en la URL http://localhost:8080.

Prueba los dos métodos de la API

Si tu app de ejemplo está activa, también puedes verificar si las dos rutas de tu app funcionan. En este ejemplo, supongamos que la URL de la app es http://localhost:8080.

  1. Para ver la página de destino de muestra de tu app, ve a http://localhost:8080.

  2. Para obtener una lista de todos los elementos del inventario, ve a http://localhost:8080/inventory.

    En el archivo app.py, para enumerar todos los elementos del inventario, se usa la función @app.route('/inventory', methods=['GET']).

  3. Para mostrar un elemento del inventario específico filtrado por el atributo productid, haz clic en http://localhost:8080/inventory/productid.

    Por ejemplo, http://localhost:8080/inventory/1, donde productid es igual a 1.

    En el archivo app.py, para mostrar un elemento de inventario específico mediante el atributo productid, se usa la función @app.route('/inventory/<productid>', methods=['GET']).

Implementa una app de Cloud Run en Google Cloud

Ahora puedes implementar la app de Cloud Run en Google Cloud. Puedes pedirle a Gemini que te proporcione los pasos o puedes seguirlos:

  1. Abre la paleta de comandos: presiona Comando + Mayús + P (en MacOS) o Control + Mayús + P (en Windows y Linux).

  2. En el campo de paleta de comandos, ingresa Cloud Code: Deploy to Cloud Run y, luego, haz clic en el resultado.

  3. En el panel de configuración Servicio, configura tu proyecto de Google Cloud.

  4. Acepta la configuración predeterminada restante y, luego, haz clic en Implementar.

  5. Cloud Code compila tu imagen, la envía al registro y, luego, implementa el servicio en Cloud Run.

  6. Para ver tu servicio en ejecución, abre la URL que se muestra en el diálogo Deploy to Cloud Run.

    También puedes usar los mismos pasos que se encuentran en Prueba los dos métodos de API para ver la app de ejemplo en Google Cloud. Ajusta tus URLs según corresponda.

Limpia

Para evitar que se apliquen cargos a la cuenta de Google Cloud por los recursos que se usaron en este instructivo, puedes borrar el proyecto de Google Cloud que creaste para este instructivo. Como alternativa, puedes borrar los recursos individuales.

  1. En la consola de Google Cloud, ve a la página Administrar recursos.

    Ir a Administrar recursos

  2. En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
  3. En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.

¿Qué sigue?