/ examples / compare / cli_compare_advanced.py
cli_compare_advanced.py
 1  """
 2  CLI Compare Example - Advanced Usage
 3  
 4  This example demonstrates advanced comparison features including
 5  custom mode configurations and result analysis.
 6  """
 7  
 8  from praisonai.cli.features.compare import (
 9      CompareHandler,
10      CompareResult,
11      ModeResult,
12      get_mode_config,
13      save_compare_result,
14      format_comparison_table,
15  )
16  
17  # Create custom mode configurations
18  custom_modes = {
19      "fast": {"llm": "gpt-4o-mini"},
20      "accurate": {"llm": "gpt-4o", "planning": True},
21      "research": {"research": True, "web_search": True},
22  }
23  
24  # Create handler with verbose output
25  handler = CompareHandler(output="verbose")
26  
27  # Example: Manually create comparison results for analysis
28  # (useful for testing without API calls)
29  mock_result = CompareResult(
30      query="What are the latest AI trends?",
31      comparisons=[
32          ModeResult(
33              mode="basic",
34              output="AI trends include LLMs, multimodal models, and agents.",
35              execution_time_ms=1234.5,
36              model_used="gpt-4o-mini",
37              tools_used=[]
38          ),
39          ModeResult(
40              mode="tools",
41              output="Based on recent search results, AI trends in 2024 include...",
42              execution_time_ms=2567.8,
43              model_used="gpt-4o-mini",
44              tools_used=["internet_search"]
45          ),
46          ModeResult(
47              mode="research",
48              output="Comprehensive research shows that AI trends...",
49              execution_time_ms=5432.1,
50              model_used="gpt-4o-mini",
51              tools_used=["internet_search", "web_scraper"]
52          ),
53      ]
54  )
55  
56  # Get summary statistics
57  summary = mock_result.get_summary()
58  print("Comparison Summary:")
59  print(f"  Fastest mode: {summary['fastest']} ({summary['fastest_time_ms']:.1f}ms)")
60  print(f"  Slowest mode: {summary['slowest']} ({summary['slowest_time_ms']:.1f}ms)")
61  
62  # Format as table
63  print("\n" + format_comparison_table(mock_result))
64  
65  # Convert to JSON for storage
66  print("\nJSON Output:")
67  print(mock_result.to_json())
68  
69  # Save to file
70  # save_compare_result(mock_result, "advanced_comparison.json")
71  
72  print("\n--- CLI Usage Examples ---")
73  print("""
74  # Basic comparison
75  praisonai "What is AI?" --compare "basic,tools"
76  
77  # Compare with specific model
78  praisonai "Explain quantum computing" --compare "basic,planning,research" --model gpt-4o
79  
80  # Save results to file
81  praisonai "Latest tech news" --compare "basic,tools,web_search" --compare-output results.json
82  
83  # Verbose output
84  praisonai "Write a poem" --compare "basic,planning" --verbose
85  """)