Explicação e Decisões de Design¶
Nesta seção, explicamos o "porquê" por trás de algumas das escolhas tecnológicas e de design deste template.
Por que uv
em vez de poetry
ou pip
?¶
- Velocidade:
uv
é uma ferramenta da nova geração, escrita em Rust, com velocidades maiores que usandopip
oupoetry
para resolver e instalar dependências. Em projetos de IA com muitas bibliotecas pesadas, isso faz uma grande diferença. - Simplicidade: Ele adota o formato padrão
requirements.txt
, que é universalmente entendido, ao mesmo tempo que oferece um resolvedor de dependências moderno e cache global.
Por que FastAPI?¶
- Performance: É um dos frameworks web Python mais rápidos disponíveis, ideal para servir modelos que precisam de baixa latência.
- Tipagem Moderna: Usa type hints do Python para validação de dados com Pydantic, o que torna as APIs mais robustas e menos propensas a erros.
- Auto-documentação: Gera automaticamente uma documentação interativa da API (com Swagger UI), o que é extremamente útil para os consumidores da sua API.
Por que uma Estrutura de Pastas Detalhada?¶
A estrutura com data/
, src/
, notebooks/
, etc., é baseada em padrões bem estabelecidos na comunidade de Ciência de Dados (como o Cookiecutter Data Science). Ela promove:
- Reprodutibilidade: Separar dados, código e notebooks torna mais fácil para outros (e para você no futuro) entenderem e reproduzirem seu trabalho.
- Manutenibilidade: Código modular em
src/
é mais fácil de testar e manter do que scripts soltos.