Pular para o conteúdo principal

Como Construir Aplicações FastAPI com Poetry em um Ambiente Docker

A criação de aplicações que utilizam Poetry para gestão de dependências em um ambiente containerizado oferece um design mais limpo e eficiente para gerenciamento de pacotes, além de garantir maior consistência no ambiente de desenvolvimento e produção. Este guia aborda como construir uma imagem Docker para uma aplicação FastAPI que utiliza o Poetry.

Estrutura do Projeto

.
├── app
│   ├── main.py
├── pyproject.toml
├── poetry.lock
├── Dockerfile

1. Criar a Aplicação FastAPI

No arquivo app/main.py, crie uma aplicação básica:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"message": "Hello, FastAPI with Poetry!"}

2. Configurar o Poetry

Inicialize o Poetry no diretório do projeto:

poetry init

Adicione o FastAPI e o Uvicorn como dependências:

poetry add fastapi uvicorn

3. Escrever o Dockerfile

Crie um arquivo Dockerfile com o seguinte conteúdo:

FROM python:3.9-slim

# Instalar o Poetry
RUN pip install --no-cache-dir poetry

# Configurar o diretório de trabalho
WORKDIR /app

# Copiar os arquivos do Poetry
COPY pyproject.toml poetry.lock /app/

# Instalar as dependências do Poetry
RUN poetry config virtualenvs.create false \
    && poetry install --no-root --no-dev

# Copiar o código da aplicação
COPY app /app/app

# Expor a porta do servidor
EXPOSE 8000

# Comando para rodar a aplicação
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]

4. Construir e Executar a Imagem Docker

Para construir a imagem:

docker build -t fastapi-poetry-app .

Para executar o contêiner:

docker run -d -p 8000:8000 fastapi-poetry-app

5. Testar a Aplicação

Acesse a aplicação no navegador ou via cURL:

http://localhost:8000

Você verá a resposta:

{"message": "Hello, FastAPI with Poetry!"}

Com isso, sua aplicação FastAPI utilizando Poetry está configurada e empacotada dentro de um contêiner Docker!

Para mais informações, confira as referências abaixo:

Comentários

Postagens mais visitadas deste blog

Funções de Ativação em Redes Neurais: Tipos, Contextos e Aplicações

  Funções de Ativação em Redes Neurais: Tipos, Contextos e Aplicações As funções de ativação são componentes essenciais das redes neurais, permitindo que os modelos aprendam e representem relações complexas nos dados. Neste post, exploraremos os principais tipos de funções de ativação, suas características e como escolher a melhor para diferentes cenários. O Que São Funções de Ativação? As funções de ativação transformam as saídas lineares dos neurônios em representações não lineares, permitindo que as redes aprendam padrões complexos. Sem essas funções, as redes seriam equivalentes a simples regressões lineares. Principais Tipos de Funções de Ativação 1. Sigmoid A função sigmoid transforma valores em uma faixa entre 0 e 1: σ(x) = 1 / (1 + e^(-x)) Características: Boa para modelar probabilidades. Propensa ao problema de vanishing gradient em redes profundas. Aplicações: Classificação binária. 2. Tanh (Tangente Hiperbólica) A função tanh transfor...

Introdução aos Vector Databases: A Base de Dados para Embeddings em IA Generativa

Os bancos de dados vetoriais (Vector Databases) emergiram como uma tecnologia essencial no processamento de informações em alta dimensão, especialmente no contexto de embeddings. Neste artigo, explicamos o conceito de bancos de dados vetoriais, como eles funcionam e sua importância para aplicações de IA generativa. O que são Bancos de Dados Vetoriais? Bancos de dados vetoriais são sistemas projetados para armazenar, indexar e buscar dados representados como vetores em espaços de alta dimensão. Em vez de dados tradicionais estruturados (como tabelas relacionais), esses bancos armazenam representações matemáticas de objetos, como embeddings gerados por modelos de machine learning. Um embedding é uma representação numérica de um objeto (como palavras, imagens ou usuários) em um espaço vetorial, onde a proximidade entre vetores reflete a similaridade semântica ou estrutural dos objetos originais. Como Funcionam os Bancos de Dados Vetoriais? Esses bancos de dados empregam algoritmos...

Temperatura na Inteligência Artificial Generativa: O Que é e Como Afeta os Resultados

Temperatura na Inteligência Artificial Generativa: O Que é e Como Afeta os Resultados No contexto da Inteligência Artificial generativa, especialmente em modelos de linguagem como o GPT, a "temperatura" é um parâmetro que controla a aleatoriedade nas previsões do modelo. Esse controle influencia a qualidade e a criatividade das respostas geradas, sendo uma ferramenta essencial para personalizar os resultados conforme a necessidade do usuário. O Que é Temperatura? Em modelos de IA generativa, a temperatura é um parâmetro utilizado durante o processo de amostragem de probabilidades para gerar tokens (palavras ou caracteres). O modelo gera uma distribuição de probabilidade para o próximo token com base no contexto atual. A temperatura ajusta a "curvatura" dessa distribuição, controlando a diversidade das respostas geradas. Em termos simples, a temperatura pode ser vista como uma forma de controlar o "nível de criatividade" de uma resposta. Quanto mais ba...