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

En este instructivo, se muestra cómo usar Gemini para Google Cloud en Google Cloud, una herramienta de de Google Cloud para explorar, crear, modificar, probar e implementar app de Python de muestra.

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

En este instructivo, usarás Gemini junto con Visual Studio Code como tu 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 tengan que contribuyeron a la creación de apps, pero es posible que no conozcas en la nube. Se supone que tienes experiencia en el uso de VS Code como tu IDE y que conozcas Python y el framework de Flask.

Objetivos

  • Explora diversos servicios de Google que puedes usar para implementar una app haciendo preguntas basadas en el contexto a Gemini.

  • Pídele a Gemini que te proporcione plantillas que puedas usar para lo siguiente: 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 usando 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 te permite ejecutar contenedores directamente sobre el backend de Google Cloud. 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 usa el los siguientes productos:

  • Gemini. Gemini es un colaborador siempre activo en Google Cloud que ofrece asistencia potenciada por IA generativa para una amplia gama de usuarios, incluidos desarrolladores y científicos de datos. Para brindar una experiencia de asistencia integrada, Gemini está incorporado en muchos productos de Google Cloud.

  • Cloud Code para la extensión VS Code. Esta extensión es un IDE que brinda asistencia para el ciclo de desarrollo de Kubernetes y aplicaciones de Cloud Run. Para obtener más información sobre el extensión de Cloud Code, consulta Cloud Code para funciones de VS Code.

Antes de comenzar

  1. Instala una copia local de VS Code. si aún no lo has hecho.

  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. También 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 es la primera vez que usas Google Cloud, Gemini puede ayudarte elegir los servicios de Google Cloud que cumplan con los requisitos de tu arquitectura de aplicaciones.

En tu IDE, puedes chatear con Gemini para obtener ayuda. Usando en el panel de Gemini, ingresarás instrucciones (preguntas o afirmaciones) que describen la ayuda que quieres) y Gemini devuelve respuestas. Mensajes pueden incluir contexto a partir del código existente que Google Cloud analiza para proporcionar respuestas más útiles o completas. Para más información sobre cómo escribir instrucciones para generar buenas respuestas, consulta Cómo escribir mejores instrucciones para Gemini.

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

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

    Para encontrar la barra de actividades de VS Code, consulta Interfaz de usuario.

  2. En el panel 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 Google Cloud servicios y descripciones.

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

    Descubre cómo y cuándo Gemini para Google Cloud usa tus datos.

  3. Ingresa una pregunta de seguimiento 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 entre los dos servicios de Google Cloud.

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

Crea una app de Hello World en Python

Supongamos que quieres usar Cloud Run para crear e implementar un 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 Hello World de Python en Cloud Run.

  1. Inicia tu IDE, si aún no lo hiciste.

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

  3. En el panel 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?
    

    La paleta de comandos de VS Code proporciona una lista de todos los comandos, incluidos los comandos para Cloud Code.

    El resultado es similar a este:

    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 los App de Cloud Run.

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

  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 a este:

    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 Gemini proporciona en su respuesta a Crear una app básica de Hello World de Python en Cloud Run También puedes consultar la siguiente sección para crear la app de Hello World App de Python.

Pasos alternativos para crear una app de Hello World en Python

  1. Inicia tu IDE si aún no lo hiciste.

  2. Abre la paleta de comandos: presiona Command+Shift+P (en MacOS) o Control + Mayúsculas + P (para 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 Aplicación de Cloud Run.

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

  6. Guarda la app nueva en la ubicación que prefieras.

La notificación confirma que se creó la app. Se abrirá una vista previa del archivo README para el 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 implementados en tu IDE. Para explorar el código de la app de ejemplo que creaste, sigue estos pasos:

  1. Inicia tu IDE.

  2. Abre Explorer: presiona Command + Mayúsculas + E (en macOS) o Control + Mayúsculas + E (en Windows y Linux)

    Puedes 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, Haz clic en Explain this, como se muestra en la figura 2:

    captura de pantalla de dockerfile
    Figura 2. La función de explicación de 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 tienes dudas puntos 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 la siguiente instrucción:

    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, haz clic el ícono de bombilla y, luego, haz clic en Explain this.

  6. Abre Explorer: presiona Command + Mayúsculas + E (en macOS) o Control + Mayúsculas + E (para 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 del archivo app.py, en el panel de Gemini, ingresa la siguiente instrucción:

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

    También puedes seleccionar el siguiente texto en Dockerfile: Haz clic en el ícono de la bombilla y, luego, haz clic 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 ti puedes agregar funcionalidad para compilar la app de inventario, necesitas un archivo contiene una lista de elementos de inventario de muestra. Para usar Gemini para lo siguiente: generar las muestras de datos relevantes, sigue estos pasos:

  1. Para visualizar los archivos relacionados con tu app de ejemplo, en tu IDE, haz clic en el Ícono de Explorador.

  2. Haz clic en el ícono de 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 la siguiente instrucción:

    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 código de muestra para tres objetos JSON.

  4. En la respuesta, haz clic en . AgregaInsertar en el archivo actual para insertar la muestra de código. el archivo inventory.py, como se muestra en la figura 3:

    insertar código
    Figura 3: Puedes insertar código de 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 un lista de elementos del inventario.

Modifica la app de Hello World en Python

Después de crear el archivo inventory.py, debes ingresar algunos métodos de API. en el archivo app.py, que puede 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 la app de ejemplo, en tu IDE, Haz clic en el ícono 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 elemento Archivo inventory.py:

    import os
    from flask import Flask, render_template
    from inventory import inventory
    
  4. Para permitir que Gemini genere el código para el primer método de la API, sigue estos pasos: En el archivo app.py, ingresa el siguiente comentario. 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 podría ser diferente del Control + Intro que se usa en este instructivo.

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

    Se mostrará una barra de herramientas de Gemini.

    Gemini podría generar más de una respuesta. En la barra de herramientas, puedes desplazarte por cada respuesta usando 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 término y pedirle a Gemini que te explique el código.

  8. Edita las sentencias de importación para que el archivo app.py incluya el elemento 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 el 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 mostrará 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 está todo listo para implementar la app de manera local desde VS Code. Para implementar la app, sigue estos pasos:

  1. Inicia tu IDE, si aún no lo hiciste.

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

  3. En el panel 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 indicados 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 un la app de ejemplo de Cloud Run de forma local en VS Code.

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

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

  1. Inicia tu IDE.

  2. Abre la paleta de comandos: presiona Command + Mayúsculas + P (en MacOS). o Control + Mayús + P (para 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, cuando termine la implementación, haz clic en la URL de la Panel Output. Para una copia local de VS Code, si especificaste localhost 8080, Tu app de ejemplo está 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 apps 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, usa la función @app.route('/inventory', methods=['GET']) está en uso.

  3. Para mostrar un elemento de inventario específico filtrado por el atributo productid, haz lo siguiente: 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 según el elemento atributo productid, la función @app.route('/inventory/<productid>', methods=['GET']) está en uso.

Implementa una app de Cloud Run en Google Cloud

Ahora puedes implementar la app de Cloud Run en Google Cloud. Puedes indicarle a Gemini que te dé los pasos o puedes sigue estos pasos:

  1. Abre la paleta de comandos: presiona Command + Mayúsculas + P (en MacOS). o Control + Mayús + P (para 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, establece 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 tu a Cloud Run.

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

    También puedes seguir los mismos pasos que se encuentran en Prueba los dos métodos de la API para ver la app de ejemplo en en Google Cloud. Ajuste sus URL 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 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?