Print a user-friendly summary of validation results. Args: result: Validation result dictionary from validate_trace_spans
(result: Dict[str, Any])
| 360 | |
| 361 | |
| 362 | def print_validation_summary(result: Dict[str, Any]) -> None: |
| 363 | """ |
| 364 | Print a user-friendly summary of validation results. |
| 365 | |
| 366 | Args: |
| 367 | result: Validation result dictionary from validate_trace_spans |
| 368 | """ |
| 369 | print("\n" + "=" * 50) |
| 370 | print("🔍 AgentOps Span Validation Results") |
| 371 | print("=" * 50) |
| 372 | |
| 373 | if result.get("validation_skipped"): |
| 374 | print(f"⚠️ Validation skipped: {result.get('reason', 'Unknown reason')}") |
| 375 | return |
| 376 | |
| 377 | print(f"✅ Found {result['span_count']} span(s) in trace") |
| 378 | |
| 379 | if result.get("has_llm_spans"): |
| 380 | if result.get("llm_span_names"): |
| 381 | print(f"✅ Found LLM spans: {', '.join(result['llm_span_names'])}") |
| 382 | else: |
| 383 | # LLM activity confirmed via metrics |
| 384 | print("✅ LLM activity confirmed via token usage metrics") |
| 385 | elif "has_llm_spans" in result: |
| 386 | print("⚠️ No LLM activity detected") |
| 387 | |
| 388 | if result.get("metrics"): |
| 389 | metrics = result["metrics"] |
| 390 | print("\n📊 Trace Metrics:") |
| 391 | print(f" - Total tokens: {metrics.get('total_tokens', 0)}") |
| 392 | print(f" - Prompt tokens: {metrics.get('prompt_tokens', 0)}") |
| 393 | print(f" - Completion tokens: {metrics.get('completion_tokens', 0)}") |
| 394 | print(f" - Total cost: ${metrics.get('total_cost', '0.0000')}") |
| 395 | |
| 396 | print("\n✅ Validation successful!") |
searching dependent graphs…