docs: v4.2 — AI news enrichment pipeline + directional alignment documented
Updates Étape 2 (RSS pipeline) to describe the 3-layer architecture: deterministic classification → GPT-4o-mini batch enrichment (impact, ai_dir_*, ai_resolution, ai_insight) → _compute_ai_alignment() bonus injection in pattern scoring. Rewrites Prompt 1 section with new batch scoring prompt structure and adds a concrete counter-signal example (Gaza ceasefire → oil bearish, pattern downranked). Updates Radar Géopolitique usage guide with AI badge reading guide and decision rules (green badge + relevance ≥60% = candidate, red badge = wait for confirmation). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>GeoOptions Intelligence — Manuel Complet v4.1</title>
|
||||
<title>GeoOptions Intelligence — Manuel Complet v4.2</title>
|
||||
<style>
|
||||
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
|
||||
body { font-family: 'Georgia', 'Times New Roman', serif; font-size: 10.5pt; line-height: 1.65; color: #1a1a2e; background: #fff; max-width: 960px; margin: 0 auto; padding: 40px 48px; }
|
||||
@@ -335,28 +335,47 @@ Persistance : si score_lissé[nouveau] - score_lissé[ancien] < 10 → ancien
|
||||
</div>
|
||||
|
||||
<div class="step-block">
|
||||
<div class="step-num">Étape 2 — Collecte RSS & Calcul du Geo Score</div>
|
||||
<p><strong>Input :</strong> 12 flux RSS (Reuters, BBC World, Al Jazeera, AP, Bloomberg, FT, Le Monde, Xinhua, TASS, Kyodo, Middle East Eye, Africa Intelligence)</p>
|
||||
<p><strong>Traitement :</strong> Extraction des titres des 6 dernières heures → passage dans GPT-4o-mini pour classification géopolitique et score de tension par région.</p>
|
||||
<p><strong>Exemple de titres collectés :</strong></p>
|
||||
<div class="step-num">Étape 2 — Collecte RSS, Enrichissement IA & Calcul du Geo Score</div>
|
||||
<p><strong>Input :</strong> 7 flux RSS (Reuters World/Business/Commodities, AP, Al Jazeera, FT, Bloomberg) — jusqu'à 50 articles, cache 1h.</p>
|
||||
<p><strong>Pipeline en 3 couches :</strong></p>
|
||||
<p><strong>Couche 1 — Classification déterministe</strong> (sans IA) :</p>
|
||||
<ul>
|
||||
<li>"North Korea fires ballistic missile over Japan Sea — defense ministry" (Reuters, 08:42 UTC)</li>
|
||||
<li>"Energy prices surge as Middle East tensions escalate" (FT, 07:15 UTC)</li>
|
||||
<li>"OPEC+ considers emergency supply cut meeting" (Bloomberg, 06:50 UTC)</li>
|
||||
<li>"US Treasury yields fall on flight-to-safety demand" (Bloomberg, 07:30 UTC)</li>
|
||||
<li>"China warns of consequences over Taiwan arms sale" (AP, 08:10 UTC)</li>
|
||||
<li><code>classify_news()</code> : correspondance de mots-clés → catégorie (military, energy, sanctions, elections, trade_war…)</li>
|
||||
<li><code>estimate_impact()</code> : comptage de mots à risque → score 0.0–1.0 brut</li>
|
||||
<li><code>extract_tags()</code> : entités nommées (Trump, Russia, OPEC…) par présence textuelle</li>
|
||||
</ul>
|
||||
<p><strong>Score géo calculé :</strong> 68/100 (score élevé — seuil d'alerte à 60)</p>
|
||||
<table class="sim-table">
|
||||
<thead><tr><th>Région</th><th>Tension</th><th>Moteur principal</th><th>Impact marché</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>Asie du Nord-Est</td><td class="val-red">78/100</td><td>Corée du Nord — missile</td><td>VIX, Yen</td></tr>
|
||||
<tr><td>Moyen-Orient</td><td class="val-red">71/100</td><td>Tensions énergie OPEC+</td><td>Brent, XLE</td></tr>
|
||||
<tr><td>Détroit de Taiwan</td><td class="val-amber">62/100</td><td>Avertissements Chine</td><td>Semi-conducteurs</td></tr>
|
||||
<tr><td>Europe de l'Est</td><td class="val-amber">55/100</td><td>Conflit Ukraine continu</td><td>Blé, gaz</td></tr>
|
||||
<tr><td>Amériques</td><td class="val-green">24/100</td><td>Calme relatif</td><td>Neutre</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p><strong>Couche 2 — Enrichissement GPT-4o-mini</strong> <span class="badge badge-mini">GPT-4o-mini</span> (jusqu'à 20 news, 1 seul appel batch) :</p>
|
||||
<div class="formula-box">
|
||||
Pour chaque news, GPT-4o-mini retourne :
|
||||
impact_score → corrigé (0.0–1.0) — "Trump joue au golf" reste faible
|
||||
ai_dir_energy → "bullish" | "bearish" | "neutral"
|
||||
ai_dir_metals → "bullish" | "bearish" | "neutral"
|
||||
ai_dir_indices → "bullish" | "bearish" | "neutral"
|
||||
ai_resolution → true si cessez-le-feu / accord / désescalade
|
||||
ai_insight → "L'accord de cessez-le-feu pèse sur le pétrole malgré les tensions"
|
||||
</div>
|
||||
<p><strong>Couche 3 — Alignement IA sur les patterns</strong> (dans <code>compute_pattern_relevance()</code>) :</p>
|
||||
<div class="formula-box">
|
||||
base_relevance = (trigger_match × 0.5 + keyword_match × 0.5) × 100 ← string matching
|
||||
|
||||
ai_alignment = f(bullish_count, bearish_count, resolution_count) ← -25..+25 pts
|
||||
→ Pattern "Oil Spike" (expected_move > 0, asset=energy) :
|
||||
ai_dir_energy majoritairement "bullish" → +20 pts
|
||||
ai_dir_energy majoritairement "bearish" OU ai_resolution=True → -15 pts
|
||||
(cessez-le-feu Gaza → flagged "contre-signal ⚠")
|
||||
|
||||
final_relevance = clamp(base_relevance + ai_alignment, 0, 100)
|
||||
</div>
|
||||
<p><strong>Score géo calculé :</strong> utilise les <code>impact_score</code> corrigés par l'IA (plus de faux positifs sur les articles culturels ou sportifs mentionnant "Iran").</p>
|
||||
<div class="callout blue">
|
||||
<div class="label">Ce qui s'affiche dans le Radar</div>
|
||||
<strong>Onglet Actualités</strong> : chaque news affiche (au clic) l'insight IA en bleu, les flèches directionnelles ⛽↑ 🥇↓ 📊↓ par classe d'actif, et le badge "🕊 résolution" si l'article signale une désescalade.<br>
|
||||
<strong>Onglet Patterns</strong> : badge vert "🤖 IA aligné +18pts" ou rouge "🤖 contre-signal -12pts" sur chaque pattern, avec les phrases d'insight des news correspondantes en dessous. La pertinence de base (string matching) est affichée séparément pour comparaison.
|
||||
</div>
|
||||
<div class="callout amber">
|
||||
<div class="label">Graceful Degradation</div>
|
||||
Si OpenAI n'est pas configuré, le pipeline tombe en silence sur le mode déterministe seul. L'enrichissement IA est facultatif et non bloquant.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="step-block">
|
||||
@@ -1159,19 +1178,27 @@ Cosine : 0.82 → AU-DESSUS 0.75 → REJETÉ (CORRECT)
|
||||
|
||||
<p>GeoOptions utilise 6 appels GPT distincts, chacun avec un rôle précis et une structure optimisée.</p>
|
||||
|
||||
<h3>Prompt 1 — Analyse Géopolitique & Scoring RSS</h3>
|
||||
<span class="badge badge-mini">GPT-4o-mini</span> <span class="badge badge-db">~500 tokens</span>
|
||||
<h3>Prompt 1 — Enrichissement News & Scoring Directionnel</h3>
|
||||
<span class="badge badge-mini">GPT-4o-mini</span> <span class="badge badge-db">~800 tokens · 1 appel batch jusqu'à 20 news</span>
|
||||
|
||||
<table>
|
||||
<thead><tr><th>Élément</th><th>Contenu</th><th>Pourquoi</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>Système</td><td>"Analyste géopolitique spécialisé en risques de marché financier."</td><td>Contextualise sur le cas d'usage financier, évite les analyses politiques sans lien trading</td></tr>
|
||||
<tr><td>Input</td><td>Titres RSS des 6 dernières heures (15–40 titres), liste des régions, date/heure</td><td>Fenêtre de 6h correspond au cycle — on n'analyse que le nouveau</td></tr>
|
||||
<tr><td>Instruction</td><td>Score 0–100 par région, événements clés (max 3), impact marché (haussier/baissier/neutre). JSON strict.</td><td>JSON strict permet le parsing fiable sans post-traitement</td></tr>
|
||||
<tr><td>Exclusions</td><td>Pas de contexte macro, pas d'historique de trades</td><td>Évite le biais de confirmation — l'IA ne doit pas scorer en fonction des positions ouvertes</td></tr>
|
||||
<tr><td>Input</td><td>Jusqu'à 20 news (titre + 150 chars résumé), indexées 0..N</td><td>Batch unique pour minimiser les appels API — réponse JSON structurée par index</td></tr>
|
||||
<tr><td>Instruction</td><td>Par news : impact_score corrigé, dir_energy/metals/indices (bullish|bearish|neutral), resolution (bool), insight (1 phrase FR sur l'effet marché)</td><td>Les signaux directionnels permettent de détecter les contre-signaux sur les patterns (cessez-le-feu → pétrole baissier même si le mot "Iran" est présent)</td></tr>
|
||||
<tr><td>Exclusions</td><td>Pas de contexte macro, pas d'historique de trades, pas de positions ouvertes</td><td>Évite le biais de confirmation — l'IA évalue la news indépendamment du portefeuille</td></tr>
|
||||
<tr><td>Cache</td><td>Flag <code>ai_scored</code> par item — pas de double scoring sur le même cache 1h</td><td>Économie : chaque news n'est scorée qu'une fois par cycle</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<div class="callout green">
|
||||
<div class="label">Cas clé — Détection de contre-signal</div>
|
||||
Pattern "Middle East Military Escalation → Oil Spike" (expected_move = +12%) :<br>
|
||||
<strong>Avant :</strong> Un article "Gaza ceasefire agreement reached" → keyword "Gaza" présent → similarity +15% → trade suggéré bull call sur XLE.<br>
|
||||
<strong>Après :</strong> GPT-4o-mini score <code>ai_dir_energy="bearish"</code>, <code>ai_resolution=true</code> → alignment = -20 pts → similarity passe de 60% à 40% → pattern downranké, badge rouge "🤖 contre-signal".
|
||||
</div>
|
||||
|
||||
<h3>Prompt 2 — Régime Macro</h3>
|
||||
<span class="badge badge-mini">GPT-4o-mini</span> <span class="badge badge-db">~800 tokens</span>
|
||||
|
||||
@@ -1327,8 +1354,9 @@ Seuil : confidence > 0.75 → ALERTE INVALIDATION générée dans l'UI
|
||||
<p><strong>Quand agir :</strong> Si "Nouveaux patterns disponibles" avec score > 70 → aller sur page Patterns avant l'ouverture de marché.</p>
|
||||
|
||||
<h3>Page 2 — Radar Géopolitique</h3>
|
||||
<p><strong>Regarder en premier :</strong> 2–3 régions avec scores les plus élevés (rouge). Cliquer sur une région affiche les événements détaillés des 24h.</p>
|
||||
<p><strong>Quand agir :</strong> Si un score régional monte de plus de 15 points en 24h → événement potentiellement tradeable. Aller sur Options Lab pour vérifier IV Rank du sous-jacent concerné.</p>
|
||||
<p><strong>Onglet Actualités — regarder en premier :</strong> Geo Score global en haut à droite (rouge ≥ 75 = extrême). Sur chaque news, cliquer pour voir l'<strong>insight IA</strong> (phrase bleue en italique), les flèches directionnelles ⛽↑ 🥇↓ 📊↓ et le badge "🕊 résolution" si l'article signale une désescalade. Impact corrigé par l'IA affiché à droite (0–100).</p>
|
||||
<p><strong>Onglet Patterns — regarder en premier :</strong> Patterns classés par <code>relevance</code> (= keyword matching + alignement IA). Badge vert "🤖 IA aligné" = l'IA confirme la direction du pattern. Badge rouge "🤖 contre-signal" = les news pointent dans le sens inverse — <strong>ne pas ouvrir ce trade</strong>. La pertinence de base (pure keyword) est affichée en gris sous le score ajusté.</p>
|
||||
<p><strong>Quand agir :</strong> Pattern avec relevance ≥ 60% ET badge IA vert ET IV Rank du sous-jacent favorable → candidat prioritaire pour le cycle. Si badge rouge même sur relevance élevée → attendre confirmation de marché.</p>
|
||||
|
||||
<h3>Page 3 — Marchés</h3>
|
||||
<p><strong>Regarder en premier :</strong> Brent, Or, VIX, DXY — les 4 baromètres du régime. Ensuite ETF sectoriels (XLE, GLD, TLT).</p>
|
||||
@@ -1455,7 +1483,7 @@ Seuil : confidence > 0.75 → ALERTE INVALIDATION générée dans l'UI
|
||||
<hr>
|
||||
|
||||
<div class="footer-doc">
|
||||
<p>Document généré le 19 juin 2026 · GeoOptions Intelligence v4.1</p>
|
||||
<p>Document généré le 19 juin 2026 · GeoOptions Intelligence v4.2</p>
|
||||
<p>FastAPI + React + SQLite + GPT-4o · Usage interne trader · Confidentiel</p>
|
||||
<p>Sections : Architecture · Cycle complet simulé · Phase 1 IV/Structure · Phase 2 Fiabilité/Calibration · Phase 3 Risk Engine · Phase 4 IA Probabiliste · 6 Prompts IA · 14+ Tables DB · Guide 15 pages · 10 Décisions conception · Glossaire 35+ termes</p>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user