Desenvolva um app Python com o Gemini para receber assistência do Google Cloud

Neste tutorial, mostramos como usar o Gemini para Google Cloud no Google Cloud, um colaborador com tecnologia de IA no Google Cloud, para explorar, criar, modificar, testar e implantar um app Python de amostra.

Para o exemplo a seguir, considere que você faz parte de uma equipe que está desenvolvendo um app de inventário. Você é responsável pela prototipagem de um serviço básico com alguns métodos de API para operar como parte do app de inventário. Você quer desenvolver o app no ambiente local do VS Code e implantá-lo no Google Cloud. No entanto, você não tem certeza sobre qual serviço do Google Cloud é mais adequado ao seu caso de uso.

Neste tutorial, você vai usar o Gemini e o Visual Studio Code como seu ambiente de desenvolvimento integrado para criar um app de inventário de exemplo que tem dois métodos de API.

Este tutorial é destinado a desenvolvedores de qualquer nível de experiência que contribuíram para a criação de apps, mas podem não estar familiarizados com as tecnologias de nuvem. Pressupomos que você tenha alguma experiência com o VS Code como seu ambiente de desenvolvimento integrado e conheça Python e o framework Flask.

Objetivos

  • Conheça vários serviços do Google que podem ser usados para implantar um app fazendo perguntas baseadas em contexto ao Gemini.

  • Peça ao Gemini para fornecer modelos que podem ser usados para desenvolver um app Python básico no Cloud Run.

  • Crie, conheça e modifique o app usando o Gemini para explicar e gerar o código.

  • Execute e teste o app localmente. Depois, implante-o no Google Cloud usando o Gemini para gerar as etapas.

Produtos do Google Cloud usados

Neste tutorial, usamos os seguintes produtos faturáveis do Google Cloud. Use a Calculadora de preços para gerar uma estimativa de custo com base no uso previsto.

  • Cloud Run. O Cloud Run é uma plataforma de computação gerenciada que permite executar contêineres diretamente na infraestrutura escalonável do Google. É possível implantar código escrito em qualquer linguagem de programação no Cloud Run, basta criar uma imagem de contêiner a partir dele. Para informações sobre preços, consulte Cloud Run.

Além do produto mencionado anteriormente, este tutorial também usa os seguintes produtos:

  • Gemini. O Gemini é um colaborador sempre ativo no Google Cloud que oferece assistência com tecnologia de IA generativa para uma ampla gama de usuários, incluindo desenvolvedores e cientistas de dados. Para oferecer uma experiência de assistência integrada, o Gemini está incorporado em vários produtos do Google Cloud.

  • Extensão do Cloud Code para VS Code. Essa extensão é um plug-in de ambiente de desenvolvimento integrado que fornece suporte para o ciclo de desenvolvimento de aplicativos do Kubernetes e do Cloud Run. Para saber mais sobre a extensão do Cloud Code, consulte Recursos do Cloud Code para VS Code.

Antes de começar

  1. Instale uma cópia local do VS Code, se ainda não tiver feito isso.

  2. Instale a extensão do Cloud Code para VS Code.

    Siga as instruções no guia de instalação para instalar o Python, o Git e o cliente Docker. Além disso, siga as etapas para criar um projeto do Google Cloud.

  3. Verifique se o Gemini está configurado para sua conta de usuário e projeto do Google Cloud.
  4. Ative o Gemini para seu ambiente de desenvolvimento integrado.

    Siga as etapas para se conectar ao Google Cloud no seu ambiente de desenvolvimento integrado e selecionar um projeto configurado para o Google Cloud.

Conheça os serviços do Google Cloud

Se você ainda não conhece o Google Cloud, o Gemini pode ajudar você a escolher os serviços do Google Cloud que atendam aos requisitos da sua arquitetura de aplicativos.

No seu ambiente de desenvolvimento integrado, você pode conversar com o Gemini para receber ajuda. Usando o painel Gemini, você insere comandos (perguntas ou declarações que descrevem a ajuda que você quer) e o Gemini retorna respostas. Os comandos podem incluir contexto do código atual analisado pelo Google Cloud para fornecer respostas mais úteis ou completas. Para saber mais sobre como escrever comandos para gerar boas respostas, consulte Escrever comandos melhores para o Gemini.

Para fazer um comando do Gemini sobre os serviços do Google Cloud, siga estas etapas:

  1. Na barra de atividades do ambiente de desenvolvimento integrado, clique em spark Gemini.

    Para localizar a barra de atividades do VS Code, consulte Interface do usuário.

  2. No painel Gemini, digite o seguinte comando e clique em 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.
    

    O Gemini responde com uma lista de serviços e descrições do Google Cloud.

    Neste exemplo, suponha que o Gemini sugira o Cloud Run e o Cloud Functions como dois serviços do Google Cloud que podem ajudar você a criar e implantar um app de amostra, mas você precisa de mais informações sobre esses serviços.

    Saiba como e quando o Gemini para o Google Cloud usa seus dados.

  3. Digite uma pergunta complementar como a seguinte:

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

    O Gemini responde mostrando as diferenças detalhadas entre os dois serviços do Google Cloud.

  4. Opcional: para redefinir seu histórico de chat, no painel do Gemini, clique em Excluir Redefinir chat.

Criar um app Python "Hello World"

Considere que você quer usar o Cloud Run para criar e implantar um app Python básico. Como você ainda não conhece o Cloud Run e o Cloud Code, precisa de ajuda com as etapas de criação do app. Nesta seção, você vai solicitar ao Gemini ajuda para criar um app Python "Hello World" no Cloud Run.

  1. Inicie o ambiente de desenvolvimento integrado, caso ainda não tenha feito isso.

  2. Na barra de atividades do ambiente de desenvolvimento integrado, clique em spark Gemini.

  3. No painel Gemini, digite o seguinte comando e clique em Enviar:

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

    A paleta de comandos no VS Code fornece uma lista de todos os comandos, incluindo os do Cloud Code.

    O resultado será assim:

    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.
    ...
    

    O Gemini também exibe os idiomas compatíveis com o app Cloud Run.

    Neste exemplo, optamos por usar um modelo do Cloud Run baseado em Python para criar o aplicativo de amostra.

  4. Para aprender a criar um app Python a partir de um modelo do Cloud Run, insira o seguinte comando:

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

    O resultado será assim:

    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.
    
    ...
    

    Conclua as etapas que o Gemini fornece na resposta para criar um app Python básico "Hello World" no Cloud Run. Consulte também a seção a seguir para criar o app Hello World em Python.

Etapas alternativas para criar um app Python "Hello World"

  1. Inicie o ambiente de desenvolvimento integrado, caso ainda não tenha feito isso.

  2. Abra a paleta de comandos: pressione Command+Shift+P (no MacOS) ou Control+Shift+P (no Windows e Linux).

  3. No campo "Paleta de comandos", digite Cloud Code: New Application e clique no resultado.

  4. Na lista de amostras disponíveis, selecione Aplicativo do Cloud Run.

  5. Na lista de modelos disponíveis, selecione Python (Flask): Cloud Run.

  6. Salve o novo app no local de sua preferência.

Uma notificação confirma que seu app foi criado. Uma prévia do arquivo README para o serviço selecionado é aberta no ambiente de desenvolvimento integrado, conforme mostrado na Figura 1:

captura de tela
Figura 1, arquivo README exibido para um app Python Hello World criado no Cloud Run.

Conheça o app Python "Hello World"

Agora que você criou seu app Hello World no Cloud Run, use o Gemini para explicar os arquivos e snippets de código implantados no seu ambiente de desenvolvimento integrado. Para explorar o código do app de exemplo que você criou, siga estas etapas:

  1. Inicie o ambiente de desenvolvimento integrado.

  2. Abra o Explorer: pressione Command+Shift+E (no MacOS) ou Control+Shift+E (no Windows e Linux).

    Você pode ver os arquivos relacionados ao seu app de exemplo.

  3. Na lista de arquivos, clique em Dockerfile para exibir o conteúdo.

  4. Selecione todo o conteúdo de Dockerfile, clique no ícone de lâmpada e em Explain this, conforme mostrado na Figura 2:

    captura de tela do dockerfile
    Figura 2. O recurso de explicação de código fica disponível quando você seleciona o código.

    O Gemini gera uma explicação em linguagem natural sobre o conteúdo e a função de Dockerfile. Se você não tiver certeza sobre alguns pontos na resposta, faça perguntas de acompanhamento.

  5. Para saber mais sobre o arquivo app.py mencionado em Dockerfile, no painel Gemini, insira este comando:

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

    O Gemini gera uma resposta semelhante a esta:

    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, também é possível selecionar o texto app.py em Dockerfile, clicar no ícone de lâmpada e em Explicar isso.

  6. Abra o Explorer: pressione Command+Shift+E (no MacOS) ou Control+Shift+E (no Windows e Linux).

  7. Abra o arquivo app.py. Você verá duas variáveis, K_SERVICE e K_REVISION.

  8. Para saber mais sobre as variáveis no arquivo app.py, digite este comando no painel Gemini:

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

    Como alternativa, também é possível selecionar o texto a seguir no Dockerfile, clicar no ícone de lâmpada e, em seguida, em Explicar isto:

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

    A resposta é semelhante a:

    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.
    ...
    

Gerar dados de amostra para o app

Você criou um app Flask básico no Cloud Run. Antes de adicionar uma funcionalidade para criar o app de inventário, você precisa de um arquivo com uma lista de exemplos de itens de inventário. Para usar o Gemini para gerar os dados de amostra relevantes, siga estas etapas:

  1. Para exibir os arquivos relacionados ao app de exemplo, no ambiente de desenvolvimento integrado, clique no ícone Explorer.

  2. Clique no ícone New file e crie um arquivo com o nome inventory.py.

  3. Para permitir que o Gemini gere os dados de amostra, no painel Gemini, digite este comando:

    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.
    

    O Gemini gera um exemplo de código para três objetos JSON.

  4. Na resposta, clique em addInsert in current file para inserir o exemplo de código no arquivo inventory.py, conforme mostrado na Figura 3:

    inserir código
    Figura 3. Você pode inserir o código de uma resposta do Gemini.

    O arquivo inventory.py é semelhante ao seguinte:

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

    Você criou o arquivo inventory.py, que inclui uma lista de itens de inventário.

Modificar o app Python Hello World

Depois de criar o arquivo inventory.py, introduza alguns métodos de API no arquivo app.py que podem operar nos dados de inventário. Para concluir esse objetivo, você pode usar o recurso de geração de código no Gemini.

  1. Para exibir os arquivos relacionados ao app de exemplo, no seu ambiente de desenvolvimento integrado, clique no ícone do Explorer.

  2. Para mostrar o conteúdo, clique no arquivo app.py.

  3. Edite as instruções de importação para que o arquivo app.py inclua o arquivo inventory.py:

    import os
    from flask import Flask, render_template
    from inventory import inventory
    
  4. Para permitir que o Gemini gere o código para o primeiro método de API, no arquivo app.py, digite o seguinte comentário e pressione Control+Enter:

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

    O Gemini gera uma resposta no arquivo app.py.

    Dependendo da configuração do sistema, o atalho de teclado para gerar códigos usando o Gemini pode ser diferente da combinação Control + Enter usada neste tutorial.

  5. Mantenha o ponteiro sobre qualquer parte da resposta.

    Uma barra de ferramentas do Gemini é mostrada.

    O Gemini pode gerar mais de uma resposta. Na barra de ferramentas, é possível alternar entre cada resposta usando as teclas < e >. No exemplo abaixo, o Gemini gera apenas uma resposta, conforme mostrado na Figura 4:

    aceitar código
    Figura 4. Você pode aceitar uma sugestão de código do Gemini.
  6. Para aceitar o exemplo de código sugerido, clique em Aceitar na barra de ferramentas.

    A resposta será semelhante a:

    # 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 saber mais sobre a função jsonify(inventory), destaque o termo e peça que o Gemini explique o código para você.

  8. Edite as instruções de importação para que o arquivo app.py inclua a função jsonify:

    import os
    from flask import Flask, render_template, jsonify
    from inventory import inventory
    
  9. Para adicionar outro método de API, no arquivo app.py, digite o seguinte prompt e pressione Control+Enter:

    # 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.
    

    O Gemini gera uma resposta no arquivo app.py.

  10. Mantenha o ponteiro sobre qualquer parte da resposta.

    Uma barra de ferramentas do Gemini é mostrada.

  11. Para aceitar um dos exemplos de código sugeridos, clique em Aceitar na barra de ferramentas.

    A resposta será semelhante a:

    # 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
    

    Você adicionou dois métodos de API para criar seu app de inventário.

Executar o app localmente no ambiente de desenvolvimento integrado

Está tudo pronto para implantar o app localmente no VS Code. Para implantar o app, siga estas etapas:

  1. Inicie o ambiente de desenvolvimento integrado, caso ainda não tenha feito isso.

  2. Na barra de atividades do ambiente de desenvolvimento integrado, clique em spark Gemini.

  3. No painel Gemini, digite o seguinte comando e clique em Enviar:

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

    Siga as etapas na resposta do Gemini para executar o app localmente no VS Code. Consulte a seção a seguir para implantar um app de amostra do Cloud Run localmente no VS Code.

Etapas alternativas para executar o app localmente no ambiente de desenvolvimento integrado

Se você não seguiu as instruções da resposta do Gemini na seção anterior, siga estas etapas para implantar seu app de exemplo:

  1. Inicie o ambiente de desenvolvimento integrado.

  2. Abra a paleta de comandos: pressione Command+Shift+P (no MacOS) ou Control+Shift+P (no Windows e Linux).

  3. No campo "Paleta de comandos", digite Run on Cloud Run Emulator e clique no resultado.

  4. No arquivo de ambiente Build, mantenha os valores padrão e clique em Executar.

    Neste tutorial, o Docker é usado como opção do builder.

    No painel Output do seu ambiente de desenvolvimento integrado, você pode conferir o progresso do build. O processo de implantação real pode levar algum tempo para ser concluído.

    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 o app ativo, após a conclusão da implantação, clique no URL no painel Saída. Para uma cópia local do VS Code, se você especificou localhost 8080, seu app de amostra estará ativo no URL http://localhost:8080.

Testar os dois métodos de API

Se o app de exemplo estiver ativo, você também poderá verificar se as duas rotas dele funcionam. Neste exemplo, suponha que o URL do aplicativo seja http://localhost:8080.

  1. Para ver a página de destino de amostra do seu aplicativo, acesse http://localhost:8080.

  2. Para ver uma lista de todos os itens de inventário, acesse http://localhost:8080/inventory.

    No arquivo app.py, para listar todos os itens de inventário, a função @app.route('/inventory', methods=['GET']) é usada.

  3. Para exibir um item de inventário específico filtrado pelo atributo productid, clique em http://localhost:8080/inventory/productid.

    Por exemplo, http://localhost:8080/inventory/1, em que productid é igual a 1.

    No arquivo app.py, para exibir um item de inventário específico pelo atributo productid, a função @app.route('/inventory/<productid>', methods=['GET']) é usada.

Implantar um app do Cloud Run no Google Cloud

Agora é possível implantar o app Cloud Run no Google Cloud. Você pode pedir que o Gemini informe as etapas ou seguir estas etapas:

  1. Abra a paleta de comandos: pressione Command+Shift+P (no MacOS) ou Control+Shift+P (no Windows e Linux).

  2. No campo "Paleta de comandos", digite Cloud Code: Deploy to Cloud Run e clique no resultado.

  3. No painel de configurações Serviço, defina seu projeto do Google Cloud.

  4. Aceite as outras configurações padrão e clique em Implantar.

  5. O Cloud Code cria a imagem, a envia para o registro e implanta o serviço no Cloud Run.

  6. Para ver o serviço em execução, abra o URL exibido na caixa de diálogo Implantar no Cloud Run.

    Você também pode usar as mesmas etapas em Testar os dois métodos de API para ver o app de exemplo no Google Cloud. Ajuste seus URLs adequadamente.

Limpar

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados neste tutorial, exclua o projeto do Google Cloud criado para este tutorial. Também é possível excluir os recursos individuais.

  1. No Console do Google Cloud, acesse a página Gerenciar recursos.

    Acessar "Gerenciar recursos"

  2. Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
  3. Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.

A seguir