Blog Post

Desenvolvedores BR
8 MIN READ

Construindo uma Aplicação Web de IA com Python e FastAPI usando o GitHub Copilot

Glaucia_Lemos's avatar
Glaucia_Lemos
Icon for Microsoft rankMicrosoft
Feb 11, 2025

Descubra como criar uma aplicação web com IA em Python usando FastAPI e GitHub Copilot! Neste artigo, baseado no GitHub Copilot Bootcamp, você aprenderá como desenvolver um CRUD completo com boas práticas de programação, explorando recursos avançados de IA para aumentar sua produtividade no desenvolvimento de software.

Desenvolver aplicações web que envolvem recursos de Inteligência Artificial (IA) pode parecer um projeto complexo, mas o surgimento de ferramentas como o GitHub Copilot provou que esse processo pode ser altamente simplificado.

Durante o GitHub Copilot Bootcamp, organizado pelo Microsoft Reactor São Paulo, a Engenheira de Software Mayumi Shingaki apresentou um exemplo prático de como criar, em poucos minutos, uma API em Python com funcionalidades de IA, mostrando como o GitHub Copilot auxilia na refatoração de código. Embora o título mencionasse o Flask, a palestrante optou por utilizar o FastAPI, ao longo da demonstração, destacando a praticidade e o desempenho desse framework para criação de serviços REST.

Neste artigo, exploraremos em detalhes como foi estruturada a criação dessa aplicação em Python, os motivos para a escolha do FastAPI, a experiencia de usar o GitHub Copilot na prática, e como simples rotas de CRUD ilustram o pontencial de combinar IA, Cloud e boas práticas de programação em um único projeto.

 

GitHub Copilot Bootcamp é um evento online e gratuito que tem como intuito demonstrar, de maneira objetiva, o impacto positivo que essa ferramenta pode trazer para o dia a a dia do desenvolvedor.

O GitHub Copilot, que é um assistente de programação baseado em IA, auxilia na produtividade do desenvolvedor, permitindo tarefas repetitivas sejam automatizadas e que a escrita de código siga padrões de qualidade, sempre exigindo revisão e aprovação humana.

O evento conta com desconto de vouchers para as certificações oficiais do GitHub.

Dessa forma, o GitHub Copilot Bootcamp é uma excelente oportunidade para quem deseja aprender mais sobre a ferramenta e claro te ajudar a se capacitar para o mercado de trabalho.

Fique de olho no site oficial do GitHub Copilot Bootcamp para saber mais sobre as próximas edições e se inscrever.

 

Saiba mais sobre o GitHub Copilot Bootcamp: https://aka.ms/GitHubCopilotBootcampBrasil

 

Vamos agora aos detalhes da aplicação desenvolvida pela Mayumi durante o evento.

Preparando o Ambiente para o Desenvolvimento

Antes de começar a falar da sessão, se você perder a live, você pode assistir a gravação no canal do Microsoft Reactor São Paulo no YouTube.

 

Antes de mergulhar na criação da API, a palestrante destacou a importância de ter um ambiente mínimo de desenvolvimento já configurado:

  1. Python (3.7+): linguagem principal escolhida para o exemplo.
  2. PIP: gerenciador de pacotes para instalar bibliotecas como fastapi e uvicorn.
  3. Visual Studio Code: editor de texto com bom suporte à extensão do Copilot, além de diversas outras funcionalidades voltadas ao desenvolvimento em Python.
  4. GitHub Copilot: instalado como plugin no VS Code, liberando acesso ao chat e às sugestões inline.
  5. Postman (ou ferramentas similares): para testar as rotas da API, enviando requisições GET, POST e DELETE.

Com esse conjunto básico de ferramentas, Mayumi mostrou que é possível iniciar um projeto e finalizar um MVP (Minimum Viable Product) em uma única sessão, aproveitando o Copilot para acelerar a fase de implementação.

 

Por que usar o GitHub Copilot?

O GitHub Copilot é uma ferramenta que utiliza modelos de linguagem de aprendizado profundo para gerar sugestões de código em tempo real, baseadas no contexto do que está sendo escrito. Isso significa que, ao digitar um comentário ou uma descrição de uma função, o Copilot é capaz de inferir o que você deseja fazer e sugerir trechos de código que atendam a essa necessidade.

E Mayumi explicou perfeitamente como essa ferramena pode ser útil para desenvolvedores, especialmente para quem está começando ou para quem deseja acelerar o desenvolvimento de projetos.

 

Novas funcionalidades do GitHub Copilot

Mayumi também destacou algumas das novas funcionalidades disponíveis no GitHub Copilot. Uma delas é o GitHub Copilot com Chat, que permite que você converse com o assistente de programação para obter sugestões de código. E, nesse mesmo recurso, te permite usar determinados comandos para obter sugestões mais específicas. Como por exemplo:

  • @workspace: para obter sugestões de código com base no contexto do seu projeto.
  • @terminal/explain: para explicar algo relacionado ao terminal.

Essas novas funcionalidades tornam o GitHub Copilot ainda mais poderoso e útil para o desenvolvimento de projetos.

Durante a live da Mayumi, ela cita outros comandos. Recomendo vocês assistirem a live para entender melhor como utilizar esses comandos.

 

Por que FastAPI em vez de Flask?

Apesar do título do vídeo mencionar o Flask, a decisão de demonstrar o FastAPI ocorreu por diversos motivos práticos:

  • Documentação Automática: o FastAPI gera, por padrão, uma interface visual de documentação em /docs, facilitando o entendimento das rotas disponíveis.
  • Validação de Dados: via pydantic, o framework oferece suporte nativo para checagem de campos de entrada, reduzindo a chance de erros em produção.
  • Simplicidade de Código: a forma de definir rotas e modelos é extremamente legível, favorecendo o uso de boas práticas e uma curva de aprendizado menor.
  • Desempenho: o FastAPI é assíncrono e aproveita recursos do Python 3 que permitem maior escalabilidade em cenários de múltiplas requisições simultâneas.

No exemplo prático, Mayumi desenvolveu um CRUD para gerenciamento de tarefas, demonstrando como o Copilot pode sugerir trechos de rota (POST, GET, DELETE) e modelos Python de forma rápida e baseada no contexto do arquivo.

Arquitetura Limpa e Organização do Código

A palestrante menciona a adoção de conceitos de Clean Architecture e Clean Code, que, embora num nível básico, já ajudam a manter a aplicação organizada. De maneira geral, o código foi separado em camadas:

  • Models: classes Python que representam as entidades do projeto (por exemplo, uma classe Task com atributos title e description).
  • Repositories: responsáveis pela persistência de dados; no caso da demo, a persistência foi apenas em memória. Em produção, poderia ser um banco SQL ou NoSQL.
  • Services/Use Cases: contém a lógica de negócio, como validação de regras, criação de novas instâncias de tarefa e manipulação de dados antes de salvar.
  • Routes: definem a interface HTTP com o usuário, mapeando rotas (/tasks) a funções que chamam as camadas internas.

Essa estratificação faz com que mudanças na lógica de acesso a dados ou no framework web não impactem a camada de negócio, tornando a aplicação mais modular e sustentável a longo prazo.

Criando a Aplicação Passo a Passo com GitHub Copilot

A maior parte da sessão consistiu em demonstrações ao vivo de como o Copilot pode ajudar durante a programação. As principais interações destacadas foram:

  1. Criação de Estrutura de Projeto: no chat do GitHub Copilot, Mayumi digitou comandos como /new workspace, solicitando que a IA gerasse diretórios e arquivos iniciais de um projeto FastAPI. Em seguida, validou e ajustou manualmente a sugestão até ficar coerente com o que precisava.
  2. Instalação de Dependências: o GitHub Copilot propôs um requirements.txt contendo os pacotes: fastapi, uvicorn, pydantic e outras dependências pertinentes. Com um simples pip install -r requirements.txt, a aplicação já estava preparada para execução local.
  3. Rotas e Controladores: ao iniciar a escrita de uma rota @app.post("/tasks"), o GitHub Copilot sugeriu uma função Python que recebia dados de uma nova tarefa, criava a instância e retornava um JSON de sucesso. Sempre que algo precisava de ajustes — como, por exemplo, mudar a forma de gerar IDs ou incluir campos adicionais — Mayumi editava o código ou pedia ao GitHub Copilot correções pontuais.
  4. Testes Unitários: a palestrante salientou que o GitHub Copilot poderia gerar blocos de teste com facilidade. Bastaria pedir algo como “Crie testes para o arquivo routes.py usando Pytest e verifique criação e listagem de tarefas”. O GitHub Copilot, então, criaria um esqueleto de testes parametrizados, economizando tempo na estrutura básica de verificação.

Durante o processo, alguns erros surgiram, especialmente relacionados a importações incorretas ou referências a módulos inexistentes. Isso exemplificou o fato de que a IA não é infalível. No entanto, Mayumi ressaltou que o GitHub Copilot conta com recursos como /fix, onde o usuário descreve o erro, e a IA analisa o código buscando possíveis soluções.

Esse fluxo de tentativa e correção é comum no desenvolvimento, e o GitHub Copilot pode realmente encurtar o ciclo de depuração.

 

Testando a API e Explorando a Documentação

Uma vez que o código estava funcional, Mayumi usou o comando:

uvicorn app.main:app --host 0.0.0.0 --port 8000

 

Assim inicializou a aplicação na porta http://localhost:8000, permitindo que o Postman fizesse requisições HTTP para as rotas /tasks e /tasks/{task_id}.

Para verificar se tudo funcionava corretamente, a palestrante lançou mão do Postman, enviando requisições de criação, listagem e de exclusão de tarefas. As chamadas foram bem-sucedidas e a API retornou dados em JSON, confirmando o funcionamento do CRUD.

 

Ao acessar http://127.0.0.1:8000/docs, a interface gerada pelo FastAPI exibiu, em forma de Swagger, todas as rotas disponíveis, além de permitir testes rápidos das requisições. Esse recurso de documentação automática é um grande diferencial do FastAPI em relação a frameworks mais básicos.

 

Observações Importantes e Desafios

Apesar de a experiência ter sido predominantemente positiva, Mayumi ressalta que o GitHub Copilot:

  • Não deve ser usado de forma cega: é muito importante revisar todas as sugestões, pois a IA não é onisciente e pode propor soluções inconsistentes.
  • É baseado em contexto: para obter melhores respostas, é necessário que o usuário selecione trechos de código, explique o que deseja no chat ou contextualize o GitHub Copilot sobre o restante do repositório.
  • Auxilia o aprendizado: mesmo desenvolvedores iniciantes podem descobrir novas práticas de código ao interagir com as sugestões, pedindo explicações sobre por que o GitHub Copilot gerou determinado padrão ou sintaxe.

Além disso, cada empresa pode ter padrões específicos de arquitetura, estilo e segurança. O GitHub Copilot, embora traga melhorias consideráveis de produtividade, necessita ser customizado para respeitar tais diretrizes de cada equipe.

Certificações GitHub

Durante o evento, a Cynthia Zanoni, Developer Advocate de Developer Tools da Microsoft mencionou a grande oportunidade em que os participantes do GitHub Copilot Bootcamp têm de obter descontos em certificações oficiais do GitHub.

Essas certificações são uma excelente forma de validar seus conhecimentos e habilidades em ferramentas como o GitHub Copilot, além de serem um diferencial no mercado de trabalho.

Conclusão

A demonstração conduzida por Mayumi Shingaki evidenciou o quão rápido e prático é desenvolver uma aplicação web de IA em Python quando se tem em mãos ferramentas adequadas. O GitHub Copilot se destaca como um parceiro confiável para criar estrutura de pastas, rotas, testes e corrigir erros, sempre que o desenvolvedor contextualiza bem o que deseja fazer.

Optar por FastAPI em vez de Flask se mostrou uma escolha vantajosa para a prova de conceito apresentada, devido à facilidade de geração de documentação, validação de dados e suporte a recursos assíncronos. A aplicação de “lista de tarefas” demonstrada é simples, mas ilustrativa: mostra como podemos estruturar um CRUD completo em poucos passos, aproveitando o Copilot para acelerar o desenvolvimento.

No fim das contas, o recado principal é que o GitHub Copilot não elimina a necessidade de um bom desenvolvedor, mas potencializa sua atuação ao delegar rotinas padronizadas a uma IA e liberar tempo e esforço para o raciocínio crítico e a criação de valor de negócio. Eventos como o GitHub Copilot Bootcamp, reforçados pela disponibilidade de desafios (Cloud Skills Challenge) e vouchers de desconto, ampliam a curva de aprendizado e a consolidação de boas práticas em todo o ecossistema de desenvolvimento.

E para saber mais sobre o GitHub Copilot Bootcamp, confiram os links abaixo:

E nos vemos no próximo artigo! 🚀

Published Feb 11, 2025
Version 1.0
No CommentsBe the first to comment