Modèle / jeu de données
Thysrael/Horizon avatar
Thysrael/Horizon

Horizon : construire son propre radar d'actualités avec l'IA

Aperçu du projet : Votre propre radar d'information alimenté par l'IA. Génère des briefings quotidiens en anglais et en chinois. | IA.

9 360 étoiles1 445 forksPythonMIT

En bref

De quoi s’agit-il ?
Horizon est un outil Python qui collecte des nouvelles auprès de sept types de sources, supprime les doublons, les note, les filtre et les enrichit, puis produit des briefings quotidiens en anglais et en chinois.
À qui s’adresse-t-il ?
Horizon a déjà mis en œuvre la boucle complète du briefing quotidien ; la feuille de route mentionne Discord comme type de source, les releases GitHub et la publication sur PyPI, mais aucune de ces trois étapes n'est encore réalisée.
Puis-je l’utiliser commercialement ?
Oui. MIT est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
Est-il encore maintenu ?
Oui. Les derniers commits datent d’il y a 1 jour.
En quel langage est-il écrit ?
Principalement Python, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 15 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

Un radar d'actualités construit autour de vos sources

Horizon est une application écrite en Python que le README décrit comme un radar d'actualités personnel propulsé par l'IA. Elle surveille Hacker News, les flux RSS et Atom, Reddit, Telegram, Twitter/X, GitHub et les actualités financières d'OpenBB, puis produit un briefing quotidien en anglais et en chinois. Le README la positionne comme un premier tri personnel sur ce matériau : récupérer, dédoublonner, noter, filtrer et enrichir les histoires avec du contexte de fond et des discussions communautaires. La couche humaine reste volontairement dans la boucle, via des sources personnalisables, des profils de traitement, des modèles, des langues, des canaux de livraison, des résumés de commentaires et un hub communautaire de sources.

Sept étapes du flux brut au briefing

Le README documente un pipeline en sept étapes. Define configure sources, profils de traitement, modèles, langues et livraison. Fetch récupère les derniers contenus de toutes les sources configurées en parallèle. Deduplicate fusionne les éléments pointant vers la même histoire ou la même URL. Analyze & Filter passe chaque élément dans le prompt du profil sélectionné et applique le seuil défini par l'utilisateur. Enrich génère les blocs de contenu configurés pour le profil, en utilisant uniquement les outils autorisés pour chaque bloc. Summarize rend les titres, leads, sections et sources citées localisés sous forme de briefing Markdown. Deliver publie le résultat sur GitHub Pages, par e-mail, sur des webhooks comme Feishu, via MCP ou dans des fichiers locaux.

Sept types de sources, dont trois avec résumé de commentaires

Le tableau des sources prises en charge liste Hacker News (meilleures histoires par score), tout flux RSS/Atom, les subreddits et publications d'utilisateurs Reddit, les messages de chaînes Telegram publiques, les tweets d'utilisateurs spécifiques sur Twitter/X, les événements utilisateur et publications de dépôts GitHub, ainsi que les actualités financières d'entreprises OpenBB par watchlist et fournisseur. La collecte de commentaires n'est signalée que pour Hacker News, Reddit et Twitter/X ; le tableau indique top N commentaires ou réponses, sans fixer la valeur de N. Le README ne précise pas si Telegram, GitHub et OpenBB prennent en charge les commentaires.

Assistant, fichier de configuration et seuils par profil

La configuration passe par l'assistant interactif horizon-wizard, qui pose des questions sur vos centres d'intérêt (par exemple inférence LLM, systèmes embarqués, sécurité web) et génère data/config.json, ou par l'édition manuelle de config.json. L'exemple minimal contient un bloc ai (provider, model, api_key_env), des entrées de sources avec un champ profile facultatif et des paramètres processing avec un profil par défaut et un seuil par profil. Les clés API doivent être référencées par le nom d'une variable d'environnement, la vraie clé étant placée dans .env. Toute chaîne du fichier de configuration peut référencer des variables d'environnement avec ${VAR_NAME}. Un bloc digest facultatif limite la taille du briefing final et empêche une catégorie de dominer les résultats ; les limites de groupe s'appliquent après le filtrage par profil et avant l'enrichissement.

Installer avec uv, pip ou Docker, puis lancer horizon

Le README propose trois chemins d'installation : git clone suivi de uv sync (recommandé), pip install -e ., ou une construction Docker via docker compose. Des extras facultatifs existent pour les dépendances de développement (pytest) et pour la source OpenBB. La commande de lancement est uv run horizon, avec les options --hours, --data-dir, --config et --log-level. Le rapport généré est enregistré dans data/summaries/, ou dans summaries/ sous le répertoire de données personnalisé. Le dépôt contient aussi un workflow GitHub Actions à .github/workflows/daily-summary.yml, qui génère et déploie automatiquement le briefing quotidien sur GitHub Pages.

Pages, e-mail, webhooks et serveur MCP

Le briefing généré peut atteindre les lecteurs par quatre canaux documentés. GitHub Pages copie le Markdown dans docs/ pour qu'une page quotidienne soit publiée. L'e-mail envoie le briefing aux abonnés et gère les demandes d'abonnement et de désabonnement via SMTP/IMAP. Les webhooks poussent les résultats de succès ou d'échec vers Feishu/Lark, DingTalk, Slack, Discord ou tout point de terminaison personnalisé. Un serveur MCP expose les étapes du pipeline comme outils, pour que des assistants IA puissent récupérer, noter, filtrer, enrichir, résumer ou exécuter le flux complet. Le README renvoie au Configuration Guide pour les détails de mise en place de chaque canal.

Périmètre actuel, feuille de route et licence MIT

La section sur l'état du projet indique que la boucle complète du briefing quotidien fonctionne déjà : collecte multi-sources, analyse et enrichissement pilotés par profils, dédoublonnage, résumés de commentaires, génération bilingue, publication GitHub Pages, livraison par e-mail, livraison par webhook, déploiement Docker, intégration MCP et assistant de configuration. Les travaux prévus incluent de nouveaux types de sources comme Discord, la publication de releases sur GitHub et la publication du paquet sur PyPI. Le dépôt est sous licence MIT, copyright Thysrael. Le texte de licence accorde les droits d'utilisation, de copie, de modification, de fusion, de publication, de distribution, de sous-licence et de vente des copies, et décline toute garantie. Le texte ne dit rien sur la posture de sécurité, les obligations de support ou le rythme de maintenance.

Conclusion éditoriale

Horizon a déjà mis en œuvre la boucle complète du briefing quotidien ; la feuille de route mentionne Discord comme type de source, les releases GitHub et la publication sur PyPI, mais aucune de ces trois étapes n'est encore réalisée.

Sources officielles

  1. Official documentation
  2. Official README
  3. Project repository
Notes de la communauté

Notes de la communauté