-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathexample_usage.py
More file actions
127 lines (102 loc) · 3.61 KB
/
Copy pathexample_usage.py
File metadata and controls
127 lines (102 loc) · 3.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
"""
Example usage of the Smart Task Prioritizer API.
This file demonstrates how to use the prioritizer programmatically
for integration into other applications.
"""
import os
import sys
from datetime import datetime, timedelta
from pathlib import Path
# Add src to Python path for imports
sys.path.insert(0, str(Path(__file__).parent / 'src'))
from src.models.task import Task, TaskList
from src.ai.prioritizer import PrioritizationEngine
from src.utils.config import load_config
def create_sample_tasks():
"""Create a sample task list for demonstration."""
tasks = [
Task(
title="Urgent client presentation",
deadline=datetime.now() + timedelta(days=1),
importance=5,
effort_minutes=120
),
Task(
title="Code review for team",
deadline=datetime.now() + timedelta(days=2),
importance=4,
effort_minutes=45
),
Task(
title="Update documentation",
deadline=datetime.now() + timedelta(days=7),
importance=3,
effort_minutes=90
),
Task(
title="Quick bug fix",
deadline=datetime.now() + timedelta(days=1),
importance=3,
effort_minutes=15
)
]
return TaskList(tasks=tasks, created_at=datetime.now())
def demonstrate_prioritization():
"""Demonstrate the AI prioritization process."""
print("🤖 Smart Task Prioritizer API Demo")
print("=" * 40)
# Load configuration
load_config()
# Create sample tasks
task_list = create_sample_tasks()
print(f"📝 Created {task_list.task_count()} sample tasks")
# Initialize AI engine
try:
engine = PrioritizationEngine()
print("🧠 AI engine initialized successfully")
except ValueError as e:
print(f"⚠️ {e}")
print("Using fallback prioritization...")
# For demo purposes, we'll continue with a mock engine
return
# Perform prioritization
print("🔄 Analyzing tasks...")
prioritized_tasks = engine.prioritize_tasks(task_list.tasks)
# Display results
print("\n🎯 Prioritized Results:")
print("-" * 30)
for pt in prioritized_tasks:
print(f"{pt.rank}. {pt.task.title}")
print(f" Priority Score: {pt.priority_score:.1f}")
print(f" Rationale: {pt.rationale}")
print()
return prioritized_tasks
def export_to_json(prioritized_tasks, filename="prioritized_tasks.json"):
"""Export prioritized tasks to JSON format."""
import json
# Convert to JSON-serializable format
export_data = []
for pt in prioritized_tasks:
export_data.append({
"rank": pt.rank,
"title": pt.task.title,
"deadline": pt.task.deadline.isoformat(),
"importance": pt.task.importance,
"effort_minutes": pt.task.effort_minutes,
"priority_score": pt.priority_score,
"rationale": pt.rationale
})
with open(filename, 'w') as f:
json.dump(export_data, f, indent=2)
print(f"📄 Results exported to {filename}")
if __name__ == "__main__":
# Run the demonstration
results = demonstrate_prioritization()
if results:
# Export results
export_to_json(results)
print("\n✅ Demo completed successfully!")
print("Check the exported JSON file for integration examples.")
else:
print("\n⚠️ Demo requires GEMINI_API_KEY configuration.")
print("Please run './setup.sh' and configure your .env file.")