turfrace
Analyse et prédiction des courses hippiques (collecte multi-sources, stats, modèles ML, API FastAPI)
Technologies
Documentation du projet
TurfRace
!CI
Analyse et prédiction des courses hippiques (collecte multi-sources, stats, modèles ML, API FastAPI).
Installation rapide
Prérequis:
- Python 3.9 via conda
- Windows PowerShell (recommandé)
Étapes:
conda create -n turfrace python=3.9 -y
conda activate turfrace
pip install -r requirements.txt
Règles CLI:
- Pas de
&&ni de|
- Exécuter les commandes une par une, sur des lignes séparées
Lancer l'API
Initialiser la base (SQLite) et lancer le serveur:
python -c "from src.db.initdb import initdb; initdb()"
uvicorn src.api.main:app --reload --host 0.0.0.0 --port 8000
Documentation interactive:
http://localhost:8000/docs
Endpoints utiles:
GET /api/v1/races?date=YYYY-MM-DD&track=...&bettype=quinte|quarte|tierce&page=1&pagesize=20&sortby=date&sortdir=desc
GET /api/v1/races/{raceid}
GET /api/v1/races/{raceid}/horses
GET /api/v1/statistics?startdate=YYYY-MM-DD&enddate=YYYY-MM-DD&track=...&bettype=...
GET /api/v1/statistics/trends?days=30&metric=races|entries
Ingestion de données (stubs multi-sources)
Remplir la base pour une date donnée:
python -c "from src.ingestion.pipeline import IngestionPipeline; print('rows:', IngestionPipeline().run(date='2024-01-15'))"
Script d'ingestion quotidienne (Windows): scripts/dailyingestion.ps1
- Doc:
docs/INGESTIONJOURNALIEREWINDOWS.md
Tests
Toujours dans l'environnement conda turfrace:
conda activate turfrace
pytest -q
Architecture
src/
api/ # FastAPI (routes races, predictions, statistics)
config/ # settings.py (DATABASEURL, etc.)
datacollectors/ # Adapters stubs PMU/Geny/Equidia + agrégateur
dataprocessors/ # Nettoyage, features, ETL
db/ # SQLAlchemy models + session + initdb
ingestion/ # pipeline.py (ingestion multi-sources -> SQLite)
models/ # ML (features, entraînement)
utils/ # HTTP (retries, throttling)
Données:
data/
raw/ processed/ models/
turfrace.db # créé automatiquement
Modèles et ML (aperçu)
- Features de base: cotes (log, rank), encodages jockey/entraîneur
- Modèles disponibles: RandomForest (par défaut), XGBoost (optionnel selon OS)
- Sauvegarde/chargement via joblib
Docker (RPi 2B+)
- Images basées sur Python 3.9 pour compatibilité ARMv7
- Voir
Dockerfile.api(allégé) etdocker-compose.portainer.yml
Roadmap
Voir docs/ROADMAP.md pour la todo et les étapes à venir (stats avancées, scraping réel PMU/Geny/Equidia, ingestion quotidienne, pipeline ML, CI, etc.).
Notes
- En cas d'erreur de tests, vérifier d'abord que l'environnement conda
turfraceest bien activé
- Respect des sites: User-Agent, throttling, robots.txt (déjà gérés dans
src/utils/http.py)
Configuration
- Copier
env.exampleen.envsi besoin de variables custom
- Paramètres par défaut dans
src/config/settings.py(ex: chemin SQLite)
- Base SQLite créée automatiquement dans
data/turfrace.db
Démarrage rapide avec Docker
Option API seule:
docker build -f Dockerfile.api -t turfrace-api .
docker run -p 8000:8000 turfrace-api
Avec docker-compose:
docker compose up
Doc API:
http://localhost:8000/docs
Projets suggeres
ClipForge
Creation de shorts viraux en local (ingest, STT, TTS, montage, TikTok) - API NestJS, workers Python, dashboard Next.js
SpecialiseCryptoCluster
Plateforme distribuee de collecte et d'analyse de donnees crypto : RedisTimeSeries, InfluxDB, Dispy, CCXT. API FastAPI, ...
SpecialiseCryptoSpreadEdge
Trading crypto haute frequence avec IA - Docker Swarm, multi-plateformes, FastAPI Python
SpecialiseDataWhisper
Plateforme OSINT centralisée - collecte, analyse et visualisation de données multi-sources (FastAPI, React, Docker)