- Frontend v4 accessible sur réseau local (192.168.1.40) - Ports ouverts: 3002 (frontend), 5001 (backend), 5004 (dashboard) - Ollama GPU fonctionnel - Self-healing interactif - Dashboard confiance Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
65 lines
1.9 KiB
Python
Executable File
65 lines
1.9 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
"""Test de Construction de Workflow avec Session Synthétique"""
|
|
import sys
|
|
import logging
|
|
from pathlib import Path
|
|
from datetime import datetime
|
|
|
|
sys.path.insert(0, str(Path(__file__).parent.parent))
|
|
|
|
from core.graph.graph_builder import GraphBuilder
|
|
from core.models.raw_session import RawSession, Screenshot
|
|
from core.embedding.faiss_manager import FAISSManager
|
|
|
|
logging.basicConfig(level=logging.INFO, format='%(levelname)s - %(message)s')
|
|
logger = logging.getLogger(__name__)
|
|
|
|
def create_synthetic_session() -> RawSession:
|
|
"""Créer une session synthétique."""
|
|
session = RawSession(
|
|
session_id="synthetic_001",
|
|
agent_version="v3.0",
|
|
environment={"os": "linux"},
|
|
user="test",
|
|
context={},
|
|
started_at=datetime.now().isoformat()
|
|
)
|
|
|
|
for i in range(12):
|
|
screenshot = Screenshot(
|
|
screenshot_id=f"screen_{i:03d}",
|
|
relative_path=f"data/screenshots/screen_{i:03d}.png",
|
|
captured_at=datetime.now().isoformat()
|
|
)
|
|
session.screenshots.append(screenshot)
|
|
|
|
return session
|
|
|
|
def main():
|
|
logger.info("TEST WORKFLOW - SESSION SYNTHÉTIQUE")
|
|
logger.info("=" * 60)
|
|
|
|
session = create_synthetic_session()
|
|
logger.info(f"Session créée: {len(session.screenshots)} screenshots")
|
|
|
|
faiss_manager = FAISSManager(dimensions=512)
|
|
builder = GraphBuilder(
|
|
faiss_manager=faiss_manager,
|
|
min_pattern_repetitions=2,
|
|
clustering_eps=0.20
|
|
)
|
|
|
|
workflow = builder.build_from_session(session, "Synthetic Workflow")
|
|
|
|
logger.info(f"\nRésultats:")
|
|
logger.info(f" Nodes: {len(workflow.nodes)}")
|
|
logger.info(f" Edges: {len(workflow.edges)}")
|
|
logger.info(f" FAISS: {faiss_manager.index.ntotal} vectors")
|
|
|
|
logger.info("\n✓ TEST RÉUSSI")
|
|
return True
|
|
|
|
if __name__ == "__main__":
|
|
success = main()
|
|
sys.exit(0 if success else 1)
|