Este projeto é uma API desenvolvida em Python utilizando o framework FastAPI. A API tem como objetivo processar, armazenar e disponibilizar dados relacionados à produção, comercialização, importação e exportação de produtos vinícolas no Brasil. Os dados são extraídos do site da EMBRAPA(Empresa Brasileira de Pesquisa Agropecuária) e armazenados em um banco de dados SQLite para consultas futuras.
- FastAPI: Framework para construção de APIs rápidas e eficientes.
- SQLAlchemy: ORM para manipulação do banco de dados.
- SQLite: Banco de dados leve e embutido.
- HTTPX: Cliente HTTP assíncrono para realizar requisições.
- Selectolax: Biblioteca para parsing de HTML.
- Pydantic: Validação de dados e criação de modelos.
-
Instale as dependências:
poetry install --no-root
-
Inicie o servidor:
poetry run uvicorn server.config:app
-
Acesse a documentação interativa:
A API pode ser utilizada para alimentar um modelo de Machine Learning que prevê a demanda futura de vinhos no mercado brasileiro. Com base nos dados de produção, comercialização, importação e exportação, o modelo pode identificar padrões e tendências para ajudar vinícolas e distribuidores a planejar suas operações.
-
Ingestão de Dados:
- A API coleta dados de diferentes fontes(A principio apenas da Embrapa) e os armazena no banco de dados.
-
Pré-processamento:
- Os dados são extraídos do banco e transformados para alimentar o modelo.
-
Treinamento do Modelo:
- Um modelo de regressão é treinado para prever a demanda futura com base nos dados históricos.
-
Predição:
- O modelo é utilizado para prever a demanda futura, e os resultados são disponibilizados via API.
from sklearn.linear_model import LinearRegression
import pandas as pd
# Dados simulados extraídos da API
data = {
"ano": [2020, 2021, 2022],
"producao": [1000, 1200, 1100],
"importacao": [200, 250, 230],
"exportacao": [150, 180, 170],
}
df = pd.DataFrame(data)
# Treinamento do modelo
X = df[["ano", "importacao", "exportacao"]]
y = df["producao"]
model = LinearRegression()
model.fit(X, y)
# Predição para 2023
future_data = pd.DataFrame({"ano": [2023], "importacao": [240], "exportacao": [160]})
predicted_production = model.predict(future_data)
print(f"Produção prevista para 2023: {predicted_production[0]:.2f} litros")