Files
rpa_vision_v3/monitoring_server.py
Dom cf495dd82f feat: chat unifié, GestureCatalog, Copilot, Léa UI, extraction données, vérification replay
Refonte majeure du système Agent Chat et ajout de nombreux modules :

- Chat unifié : suppression du dual Workflows/Agent Libre, tout passe par /api/chat
  avec résolution en 3 niveaux (workflow → geste → "montre-moi")
- GestureCatalog : 38 raccourcis clavier universels Windows avec matching sémantique,
  substitution automatique dans les replays, et endpoint /api/gestures
- Mode Copilot : exécution pas-à-pas des workflows avec validation humaine via WebSocket
  (approve/skip/abort) avant chaque action
- Léa UI (agent_v0/lea_ui/) : interface PyQt5 pour Windows avec overlay transparent
  pour feedback visuel pendant le replay
- Data Extraction (core/extraction/) : moteur d'extraction visuelle de données
  (OCR + VLM → SQLite), avec schémas YAML et export CSV/Excel
- ReplayVerifier (agent_v0/server_v1/) : vérification post-action par comparaison
  de screenshots, avec logique de retry (max 3)
- IntentParser durci : meilleur fallback regex, type GREETING, patterns améliorés
- Dashboard : nouvelles pages gestures, streaming, extractions
- Tests : 63 tests GestureCatalog, 47 tests extraction, corrections tests existants
- Dépréciation : /api/agent/plan et /api/agent/execute retournent HTTP 410,
  suppression du code hardcodé _plan_to_replay_actions

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 10:02:09 +01:00

62 lines
2.4 KiB
Python

"""RPA Vision V3 - Serveur de Monitoring (port 5003)."""
from flask import Flask, render_template_string
import psutil
from datetime import datetime
app = Flask(__name__)
@app.route('/')
def monitoring():
return render_template_string('''
<!DOCTYPE html>
<html>
<head>
<title>RPA Vision V3 - Monitoring</title>
<meta http-equiv="refresh" content="5">
<style>
body { font-family: Arial; margin: 20px; background: #f5f5f5; }
.container { max-width: 1200px; margin: 0 auto; }
.card { background: white; padding: 20px; margin: 10px 0; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); }
.status-ok { color: #28a745; }
.status-warning { color: #ffc107; }
.status-error { color: #dc3545; }
.metric { display: inline-block; margin: 10px 20px 10px 0; }
.services { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 15px; }
</style>
</head>
<body>
<div class="container">
<h1>RPA Vision V3 - Monitoring Dashboard</h1>
<div class="card">
<h2>System Metrics</h2>
<div class="metric">CPU: {{ cpu }}%</div>
<div class="metric">Memory: {{ memory }}%</div>
<div class="metric">Disk: {{ disk }}%</div>
<div class="metric">Uptime: {{ uptime }}</div>
</div>
<div class="card">
<h2>Services Status</h2>
<div class="services">
<div>API Server (8000): <span id="api-status">Checking...</span></div>
<div>Dashboard (5001): <span id="dashboard-status">Checking...</span></div>
<div>VWB Backend (5002): <span id="vwb-status">Checking...</span></div>
<div>Monitoring (5003): <span class="status-ok">Running</span></div>
<div>Agent Chat (5004): <span id="chat-status">Checking...</span></div>
<div>Streaming (5005): <span id="stream-status">Checking...</span></div>
<div>VWB Frontend (3002): <span id="workflow-status">Checking...</span></div>
</div>
</div>
</div>
</body>
</html>
''',
cpu=psutil.cpu_percent(),
memory=psutil.virtual_memory().percent,
disk=psutil.disk_usage('/').percent,
uptime=str(datetime.now() - datetime.fromtimestamp(psutil.boot_time())).split('.')[0]
)
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5003, debug=False)