4.9 KiB
⚡ SIMPLIFIED & FAST AI Layer
What Changed
Simplified the entire AI flow for ultra-fast testing and development:
Before (Slow)
- Generate 20 strategies (~45-60 seconds)
- Analyze all 20 and select top 3 (~40-60 seconds)
- Total: ~2 minutes per request ❌
After (Fast)
- Generate 1 strategy (~5-10 seconds)
- Skip analysis completely
- Total: ~10 seconds per request ✅
Configuration
Current Settings (.env)
FAST_MODE=true
STRATEGY_COUNT=1 # ⚡ Set to 1 for testing, 20 for production
How to Adjust
For ultra-fast testing (current):
STRATEGY_COUNT=1
For demo/showcase:
STRATEGY_COUNT=5
For production:
STRATEGY_COUNT=20
Simplified Workflow
┌──────────────────┐
│ Enrichment │
│ Service POSTs │
│ telemetry │
└────────┬─────────┘
│
▼
┌──────────────────┐
│ Webhook Buffer │
│ (stores data) │
└────────┬─────────┘
│
▼
┌──────────────────┐
│ Brainstorm │ ⚡ 1 strategy only!
│ (Gemini API) │ ~10 seconds
└────────┬─────────┘
│
▼
┌──────────────────┐
│ Return Strategy │
│ No analysis! │
└──────────────────┘
Quick Test
1. Push telemetry via webhook
python3 test_webhook_push.py --loop 5
2. Generate strategy (fast!)
python3 test_buffer_usage.py
Output:
Testing FAST brainstorm with buffered telemetry...
(Configured for 1 strategy only - ultra fast!)
✓ Brainstorm succeeded!
Generated 1 strategy
Strategy:
1. Medium-to-Hard Standard (1-stop)
Tires: medium → hard
Optimal 1-stop at lap 32 when tire degradation reaches cliff
✓ SUCCESS: AI layer is using webhook buffer!
Time: ~10 seconds instead of 2 minutes!
API Response Format
Brainstorm Response (Simplified)
{
"strategies": [
{
"strategy_id": 1,
"strategy_name": "Medium-to-Hard Standard",
"stop_count": 1,
"pit_laps": [32],
"tire_sequence": ["medium", "hard"],
"brief_description": "Optimal 1-stop at lap 32 when tire degradation reaches cliff",
"risk_level": "medium",
"key_assumption": "No safety car interventions"
}
]
}
No analysis object! Just the strategy/strategies.
What Was Removed
❌ Analysis endpoint - Skipped entirely for speed
❌ Top 3 selection - Only 1 strategy generated
❌ Detailed rationale - Simple description only
❌ Risk assessment details - Basic risk level only
❌ Engineer briefs - Not generated
❌ Radio scripts - Not generated
❌ ECU commands - Not generated
What Remains
✅ Webhook push - Still works perfectly
✅ Buffer storage - Still stores telemetry
✅ Strategy generation - Just faster (1 instead of 20)
✅ F1 rule validation - Still validates tire compounds
✅ Telemetry analysis - Still calculates tire cliff, degradation
Re-enabling Full Mode
When you need the complete system (for demos/production):
1. Update .env
STRATEGY_COUNT=20
2. Restart service
# Service will auto-reload if running with uvicorn --reload
# Or manually restart:
python main.py
3. Use analysis endpoint
# After brainstorm, call analyze with the 20 strategies
POST /api/strategy/analyze
{
"race_context": {...},
"strategies": [...], # 20 strategies from brainstorm
"enriched_telemetry": [...] # optional
}
Performance Comparison
| Mode | Strategies | Time | Use Case |
|---|---|---|---|
| Ultra Fast | 1 | ~10s | Testing, development |
| Fast | 5 | ~20s | Quick demos |
| Standard | 10 | ~35s | Demos with variety |
| Full | 20 | ~60s | Production, full analysis |
Benefits of Simplified Flow
✅ Faster iteration - Test webhook integration quickly
✅ Lower API costs - Fewer Gemini API calls
✅ Easier debugging - Simpler responses to inspect
✅ Better dev experience - No waiting 2 minutes per test
✅ Still validates - All core logic still works
Migration Path
Phase 1: Testing (Now)
- Use
STRATEGY_COUNT=1 - Test webhook integration
- Verify telemetry flow
- Debug any issues
Phase 2: Demo
- Set
STRATEGY_COUNT=5 - Show variety of strategies
- Still fast enough for live demos
Phase 3: Production
- Set
STRATEGY_COUNT=20 - Enable analysis endpoint
- Full feature set
Current Status: ⚡ Ultra-fast mode enabled!
Response Time: ~10 seconds (was ~2 minutes)
Ready for: Rapid testing and webhook integration validation