PoC de Pair Programming com Github Copilot: remoção de fundo de imagens em Python

Fala Devs! Estou empolgado com o Github Copilot, sabe. kkk Compartilho aqui um repositório no Github que criei, após as dicas matadoras do Rafael Bonaldi .

Fiz uma PoC em Python bem simples no VS Code com apoio do copilot, para remover o fundo de imagens via linha de comando (CLI). Foi uma oportunidade para avaliar a pair programming com o copilot em ação.

Como o copilot ajudou?

Pedi via chat para ele fazer a geração do código do arquivo script.py para remover o fundo de imagens, recebendo o nome do arquivo de entrada como parametro.

Daí eu pedi para ele explicar o código e as bibliotecas utilizadas. Depois pedi para ele comentar o código, fazer um code review e uma avaliação do ambiente com @workspace.

Na hora de rodar deu erro e eu pedi para explicar porque estava dando erro e ele sugeriu criar um ambiente virtual do python e explicou que precisava da chave de acesso à API da lib removebg. Entrei no site, baixei a chave e fiz as correções de acordo com as instruções dele e rodou. Gostei bastande e acho que é um apoio que melhora muito a produtividade.

Considero que o conceito foi provado. kkk O mais importante pra mim foi definir o objetivo e conseguir alcançar, com um código simples, útil, que eu consigo entender e que funciona. kkk

O código ficou assim:

import argparse
from removebg import RemoveBg

def remove_background(input_file):
    """
    Remove the background from an image file using the RemoveBg library.

    Parameters:
    input_file (str): The path to the input image file.
    
    Returns:
    None
    """
    try:
        rmbg = RemoveBg("< API KEY >", "error.log")
        rmbg.remove_background_from_img_file(input_file)
    except FileNotFoundError:
        print("The file is not found")
    except Exception as e:
        print("An error occured", e)

def main():
    """
    Parse command-line arguments and call the remove_background function.
    """
    parser = argparse.ArgumentParser(description='Remove background from image.')
    parser.add_argument('input_file', type=str, help='The image file to remove the background from.')
    args = parser.parse_args()
    remove_background(args.input_file)

if __name__ == "__main__":
    main()

Segue o link do repositório: https://github.com/adrianotavares/copilot

Quem quiser colaborar e criar outras funções para tratamento de imagens, manda bala e depois comenta aqui como o assistente ajudou!

Mas tem de usar o copilot ou outra ferramenta, porque o objetivo da PoC é testar a pair programming com assistentes de IA, blz?

Let’s code!