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

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

No exemplo a seguir, considere que você faz parte de uma equipe que está desenvolvendo um app de inventário. Você é responsável por prototipar um serviço básico que contém 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ê usa o Gemini com o Visual Studio Code como ambiente de desenvolvimento integrado para criar um app de inventário de amostra 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 aplicativos, mas podem não estar familiarizados com as tecnologias de nuvem. Você precisa ter alguma experiência com o uso do VS Code como ambiente de desenvolvimento integrado e que tenha familiaridade com Python e o framework Flask.

Objetivos

  • Explore vários serviços do Google que podem ser usados para implantar um app fazendo perguntas baseadas no contexto do Gemini.

  • Solicite o Gemini para fornecer modelos que podem ser usados para desenvolver um app Python básico no Cloud Run.

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

  • Execute e teste o app localmente e, em seguida, 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 variedade de usuários, incluindo desenvolvedores e cientistas de dados. Para oferecer uma experiência de assistência integrada, o Genmini está incorporado em muitos 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, caso ainda não tenha 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 do Docker (links em inglês). Siga também 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.

Conhecer 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 atendem aos requisitos da arquitetura do aplicativo.

No seu ambiente de desenvolvimento integrado, converse com o Gemini para receber ajuda. Usando o painel Gemini, você insere solicitações (perguntas ou declarações que descrevem a ajuda desejada), e o Gemini retorna respostas. As solicitações podem incluir o contexto do código existente que o Google Cloud analisa para fornecer respostas mais úteis ou completas. Para mais informações sobre como escrever comandos para gerar boas respostas, consulte Escrever comandos melhores para o Gemini.

Para instruir o Gemini sobre os serviços do Google Cloud, siga estas etapas:

  1. Na barra de atividades do seu 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 comando a seguir e clique em Send:

    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 com uma lista de serviços e descrições do Google Cloud.

    Neste exemplo, suponha que o Gemini sugere 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.

    O Gemini não usa seus comandos nem as respostas deles como dados para treinar os modelos. Para mais informações, consulte Como o Gemini para o Google Cloud usa seus dados.

  3. Insira uma pergunta complementar como esta:

    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 com as diferenças detalhadas entre os dois serviços do Google Cloud.

  4. Opcional: para redefinir o histórico de chat, no painel Gemini, clique em excluir Redefinir chat.

Crie um app Python "Hello World"

Considere que você quer usar o Cloud Run para criar e implantar um aplicativo Python básico. Como você ainda não conhece o Cloud Run e o Cloud Code, precisa de ajuda com as etapas para criar o aplicativo. Nesta seção, você solicita ao Gemini ajuda para criar um aplicativo 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 seu ambiente de desenvolvimento integrado, clique em spark Gemini.

  3. No painel Gemini, digite o comando a seguir e clique em Send:

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

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

    Neste exemplo, você escolhe usar um modelo do Cloud Run baseado em Python para criar o app de amostra.

  4. Para saber como criar um app Python com base em 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 fornecidas pelo Gemini na resposta para criar um app básico em Python "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 em 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 o app foi criado. Uma visualização do arquivo README do serviço selecionado será 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.

Conhecer o app Python Hello World

Agora que você criou o app Hello World no Cloud Run, use o Gemini para explicar os arquivos e os snippets de código implantados no 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 (para 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.

    Gemini gera uma explicação em linguagem natural sobre o conteúdo e a função de Dockerfile. Se não tiver certeza sobre alguns pontos da resposta, faça perguntas de follow-up.

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

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

    Gemini gera uma resposta semelhante à seguinte:

    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, você também pode selecionar o texto app.py em Dockerfile, clicar no ícone de lâmpada e em Explain this.

  6. Abra o Explorer: pressione Command+Shift+E (no MacOS) ou Control+Shift+E (para 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, no painel Gemini, insira o seguinte comando:

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

    Também é possível selecionar o texto a seguir no Dockerfile, clicar no ícone da lâmpada e depois em Explain this:

    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 funcionalidades para criar o app de inventário, você precisa de um arquivo que contenha uma lista de itens de inventário de amostra. Para usar o Gemini a fim de gerar os dados de amostra relevantes, siga estas etapas:

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

  2. Clique no ícone New file e crie um arquivo chamado inventory.py.

  3. Para permitir que o Gemini gere os dados de amostra, no painel Gemini, insira o seguinte 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.
    

    Gemini gera 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. É possível inserir o código de uma resposta do Gemini.

    O arquivo inventory.py é semelhante a este:

    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, use o recurso de geração de código no Gemini.

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

  2. Para exibir 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 do primeiro método de API, no arquivo app.py, digite o comentário a seguir 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.
    
    

    Gemini gera uma resposta no arquivo app.py.

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

  5. Mantenha o ponteiro do mouse sobre qualquer parte da resposta.

    Uma barra de ferramentas do Gemini é exibida.

    Gemini pode gerar mais de uma resposta. Na barra de ferramentas, alterne entre cada resposta usando as teclas < e >. No exemplo a seguir, 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. Clique em Aceitar na barra de ferramentas para aceitar o exemplo de código sugerido.

    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 solicite 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 comando abaixo 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.
    

    Gemini gera uma resposta no arquivo app.py.

  10. Mantenha o ponteiro do mouse sobre qualquer parte da resposta.

    Uma barra de ferramentas do Gemini é exibida.

  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 o app Inventory.

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 seu ambiente de desenvolvimento integrado, clique em spark Gemini.

  3. No painel Gemini, digite o comando a seguir e clique em Send:

    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. Também é possível consultar 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 etapas na resposta do Gemini da seção anterior, pode seguir estas etapas para implantar o 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, guarde os valores padrão e clique em Run.

    Este tutorial usa o Docker como a opção de builder.

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

Testar os dois métodos de API

Se o app de exemplo estiver ativo, verifique 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 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, a função @app.route('/inventory', methods=['GET']) é usada para listar todos os itens de inventário.

  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, a função @app.route('/inventory/<productid>', methods=['GET']) é usada para mostrar um item de inventário específico pelo atributo productid.

Implantar um app do Cloud Run no Google Cloud

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

  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 do 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, envia para o registro e implanta o serviço no Cloud Run.

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

    Também é possível usar as mesmas etapas encontradas em Testar os dois métodos de API para visualizar o app de exemplo no Google Cloud. Ajuste seus URLs.

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. Se preferir, exclua 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