Aller au contenu

AINewsTracker

API webAPIDocker
PythonFastAPIMongoDBRedisPoetryPytest

AINewsTracker collecte des actualités financières, analyse le texte des articles et expose les données obtenues avec FastAPI. Un parcours distinct utilise les informations enregistrées pour des backtests historiques.

Code source · Documentation publiée · GitDiagram interactif · English

Aperçu

app/main.py assemble le service, enregistre les groupes de routes et configure le cache Redis. Le traitement des actualités passe par un service, les mesures de texte et le dépôt d’articles avant d’atteindre MongoDB.

L’article associé, Suivre l’actualité financière avec AINewsTracker, suit ce parcours depuis un flux entrant jusqu’à l’article enregistré.

Démarrage

cp .env.example .env
pip install poetry
poetry shell
poetry install
poetry run pytest
poetry run uvicorn app.main:app --reload

La documentation FastAPI est disponible à http://localhost:8000/api/v1/docs selon le guide du projet. Avec Docker :

docker-compose up --build

Guide du dépôt

  • app/main.py crée l’application, enregistre les routes et configure le cache.
  • app/routers/ définit les routes des actualités, articles, entreprises, utilisateurs, données initiales et stratégies.
  • app/core/services/ contient le traitement des actualités et les mesures de texte.
  • app/core/repo/ contient les opérations de persistance regroupées par domaine.
  • app/models/ définit les enregistrements acceptés et retournés.
  • app/seed/ charge les entreprises et actualités depuis des sources externes.
  • app/core/trading/strategy.py traite les demandes de stratégie.

Fonctions

  • ingérer des actualités depuis RSS, GNews et des flux configurés;
  • analyser le sentiment, les sujets et l’attribution de tickers;
  • gérer les articles, entreprises, actualités et utilisateurs;
  • amorcer les données d’entreprises et d’actualités;
  • exécuter des stratégies pour une ou plusieurs entreprises;
  • fonctionner avec Poetry ou Docker Compose.

Architecture

Cette vue résume les frontières d’exécution vérifiées par GitDiagram. Le diagramme interactif complet développe le modèle et relie les composants à leur code.

flowchart TD
  Client(("Client API")) --> App["Application FastAPI<br/>app/main.py"]
  App --> Routes["Routes<br/>app/routers/"]
  Routes --> News["Traitement des actualités<br/>app/core/services/news.py"]
  News --> Metrics["Mesures de texte<br/>app/core/services/metrics.py"]
  News --> Repos["Dépôts<br/>app/core/repo/"]
  Routes --> Repos
  Repos --> Mongo[("MongoDB<br/>app/core/database/db.py")]
  App --> Redis[("Cache Redis<br/>app/core/database/db.py")]
  Sources{{"Sources financières"}} --> Seeders["Amorçage<br/>app/seed/"]
  Seeders --> News
  Routes --> Strategy["Stratégie<br/>app/core/trading/strategy.py"]
FrontièreResponsabilitéPreuve
ApplicationCycle FastAPI, enregistrement des routes et cacheapp/main.py
Interface HTTPRoutes des actualités, articles, entreprises, utilisateurs, données initiales et stratégiesapp/routers/
AnalyseTraitement des flux et mesures de texteapp/core/services/news.py, app/core/services/metrics.py
DonnéesModèles Article, Company, News et Userapp/models/
PersistanceOpérations MongoDB regroupées par domaineapp/core/repo/
OpérationsAmorçage des données et exécution de stratégiesapp/seed/, app/core/trading/strategy.py

Contrat API

DomaineOpérations documentées
ActualitésCréer et lire; récupérer RSS, GNews et les entrées d’un flux
ArticlesCréer, lister, lire et supprimer; consulter le score d’un article
EntreprisesCréer, lister et rechercher par ticker
StratégiesExécuter une stratégie pour une entreprise ou une liste soumise

Le document OpenAPI de l’application en cours d’exécution fait autorité pour les schémas exacts.

Déploiement

Le dépôt contient un Dockerfile à la racine, un docker-compose.yml de développement et un répertoire deploy/. L’ordre des dépendances Compose est un ordre de démarrage, pas une garantie de disponibilité.

Structure du code

app/
├── main.py
├── core/{database,repo,services,telemetry,trading}/
├── models/
├── routers/
└── seed/
tests/
deploy/
monitoring/

Limites

  • Les scores de sentiment et sujets sont des données d’analyse, pas des conseils financiers ni une preuve de causalité.
  • Les backtests historiques ne garantissent pas les résultats futurs.
  • Les flux et API externes ont leurs propres identifiants, disponibilités et conditions d’utilisation.
  • Les routes peuvent changer; le code et le document OpenAPI actuels ont priorité.

Sources