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

Neste tutorial, mostramos como usar Gemini para Google Cloud, uma solução com tecnologia de IA colaborador no Google Cloud, para explorar, criar, modificar, testar e implantar exemplo de aplicativo Python.

Para o exemplo a seguir, considere que você é um desenvolvedor que faz parte uma equipe que está desenvolvendo um app de inventário. Você é responsável pela prototipagem serviço básico que contém alguns métodos de API para operar como parte do 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 qual serviço do Google Cloud é mais adequado para seu caso de uso.

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

Este tutorial é destinado a desenvolvedores de qualquer nível de experiência que tenham contribuiu para a criação de apps, mas pode não estar familiarizado com tecnologias de nuvem. Você precisa ter alguma experiência com o VS Code como seu ambiente de desenvolvimento integrado e que você tenha familiaridade com Python e o framework Flask.

Objetivos

  • Conheça os vários Serviços do Google que você pode usar para implantar um app ao fazer perguntas contextuais ao Gemini.

  • Peça ao Gemini para fornecer modelos que você pode usar 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 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 plataforma do Google Cloud. Você pode implantar código escrito em qualquer linguagem de programação no o Cloud Run, se for possível criar uma imagem de contêiner com base nele. Para informações sobre preços, consulte Cloud Run.

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

  • Gemini. O Gemini é um colaborador que está sempre disponível 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 muitos produtos do Google Cloud.

  • Extensão do Cloud Code para VS Code. Esta extensão é um ambiente de desenvolvimento integrado plug-in que fornece suporte para o ciclo de desenvolvimento do Kubernetes e aplicativos do Cloud Run. Para saber mais sobre o 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 do guia de instalação para instalar Python; 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 uma 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 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 no painel Gemini, você insere comandos (perguntas ou declarações) que descrevem a ajuda que você quer) e o Gemini retorna respostas. Comandos podem incluir contexto de um código atual analisado pelo Google Cloud 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 fazer um comando do Gemini sobre os serviços do Google Cloud, faça o seguinte: siga estas etapas:

  1. Na barra de atividades do seu ambiente de desenvolvimento integrado, clique em spark o Gemini Code Assist (em inglês).

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

  2. No painel Gemini Code Assist: Chat, insira o comando abaixo e Depois 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 do Google Cloud e descrições.

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

    Saiba como e quando o Gemini do 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 Gemini Code Assist clique em Excluir Redefinir chat.

Criar 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 Cloud Code, você precisa de ajuda com as etapas para criar o app. Nesta seção, você vai pedir ao Gemini ajudar a 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 seu ambiente de desenvolvimento integrado, clique em spark o Gemini Code Assist (em inglês).

  3. No painel Gemini Code Assist: Chat, insira o comando abaixo e Depois 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 do VS Code tem uma lista de todos os comandos, incluindo os comandos 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 mostra os idiomas disponíveis para a App Cloud Run.

    Para este exemplo, você escolhe usar uma instância do Cloud Run baseada em Python modelo para criar o app de exemplo.

  4. Para aprender a criar um app Python usando um modelo do Cloud Run, digite 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 dá em resposta ao seguinte: criar um app Python básico "Hello World" no Cloud Run. Também é possível consultar a seção a seguir para criar o módulo "Hello World" App 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 (para Windows e Linux).

  3. No campo "Paleta de comandos", digite Cloud Code: New Application e 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 seu IDE, como 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 o app Hello World no Cloud Run, você pode usar o Gemini para explicar os arquivos e snippets de código implantados no seu ambiente de desenvolvimento integrado. Para analisar o código do app de exemplo que 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 seguida, Clique 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 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, em no painel Gemini, digite o seguinte 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, você também pode selecionar o texto app.py em Dockerfile, clicar em no ícone de lâmpada e em Explicar isto.

  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, consulte a seção Código do Gemini Assist: chat, digite o seguinte comando:

    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, Clique no ícone de lâmpada e em Explique 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 você adicionar uma funcionalidade para criar o app Inventory, você precisa de um arquivo que contém uma lista de amostras de itens de inventário. 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 em 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 código do Gemini Assist: chat, digite 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.
    

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

  4. Na resposta, clique em adicioneInserir no arquivo atual para inserir o exemplo de código 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": "milk", "onhandqty": "10"},
       {"productid": "bread", "onhandqty": "5"},
       {"productid": "eggs", "onhandqty": "12"}
    ]
    

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

Modificar o app Python Hello World

Depois de criar o arquivo inventory.py, você vai introduzir alguns métodos de API em no arquivo app.py que pode operar nos dados do inventário. Para concluir é possível 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 em 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 as 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 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 ao usar o Gemini pode ser diferente A combinação de 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 navegar por cada resposta usando as chaves < 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. Para aceitar o exemplo de código sugerido, clique em Aceitar na barra de ferramentas.

    A saída será assim:

    # 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 pedir que o Gemini explique o código para você.

  8. Edite as instruções de importação para que o arquivo app.py inclua as 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 saída será assim:

    # 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 seu ambiente de desenvolvimento integrado, clique em spark o Gemini Code Assist (em inglês).

  3. No painel Gemini Code Assist, insira o comando abaixo e depois 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 pelo VS Code. Também é possível consultar a seção a seguir para implantar um amostra do app 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 na seção anterior, siga 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 (para Windows e Linux).

  3. No campo "Paleta de comandos", digite Run on Cloud Run Emulator e 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 visualizar seu aplicativo ativo, após a conclusão da implantação, clique no URL na Painel de saída. Para uma cópia local do VS Code, se você especificou localhost 8080, seu app de exemplo está 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 conferir a página de destino de exemplo do seu app, acesse http://localhost:8080.

  2. Para 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']) é usado.

  3. Para exibir um item de inventário específico filtrado pelo atributo productid, faça o seguinte: 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 productid, a função @app.route('/inventory/<productid>', methods=['GET']) é usado.

Implantar um app do Cloud Run no Google Cloud

Agora é possível implantar o app Cloud Run no Google Cloud. Você pode pedir para o Gemini indicar as etapas, ou você pode fazer isso siga estas etapas:

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

  2. No campo "Paleta de comandos", digite Cloud Code: Deploy to Cloud Run. e clico 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, envia para o registro e implanta para o Cloud Run.

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

    Você também pode usar as mesmas etapas encontradas em Teste os dois métodos de API para ver o app de exemplo na 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. Como alternativa, você pode excluir a recursos individuais.

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

A seguir