# 🚀 Quick Start: Full System Test ## Overview Test the complete webhook integration flow: 1. **Enrichment Service** (port 8000) - Receives telemetry, enriches it, POSTs to AI layer 2. **AI Intelligence Layer** (port 9000) - Receives enriched data, generates 3 strategies ## Step-by-Step Testing ### 1. Start the Enrichment Service (Port 8000) From the **project root** (`HPCSimSite/`): ```bash # Option A: Using the serve script python3 scripts/serve.py ``` **Or from any directory:** ```bash cd /Users/rishubmadhav/Documents/GitHub/HPCSimSite python3 -m uvicorn hpcsim.api:app --host 0.0.0.0 --port 8000 ``` You should see: ``` INFO: Uvicorn running on http://0.0.0.0:8000 INFO: Application startup complete. ``` **Verify it's running:** ```bash curl http://localhost:8000/healthz # Should return: {"status":"ok","stored":0} ``` ### 2. Configure Webhook Callback The enrichment service needs to know where to send enriched data. **Option A: Set environment variable (before starting)** ```bash export NEXT_STAGE_CALLBACK_URL=http://localhost:9000/api/ingest/enriched python3 scripts/serve.py ``` **Option B: For testing, manually POST enriched data** You can skip the callback and use `test_webhook_push.py` to simulate it (already working!). ### 3. Start the AI Intelligence Layer (Port 9000) In a **new terminal**, from `ai_intelligence_layer/`: ```bash cd /Users/rishubmadhav/Documents/GitHub/HPCSimSite/ai_intelligence_layer source myenv/bin/activate # Activate virtual environment python main.py ``` You should see: ``` INFO - Starting AI Intelligence Layer on port 9000 INFO - Strategy count: 3 INFO - All services initialized successfully INFO: Uvicorn running on http://0.0.0.0:9000 ``` **Verify it's running:** ```bash curl http://localhost:9000/api/health ``` ### 4. Test the Webhook Flow **Method 1: Simulate enrichment service (fastest)** ```bash cd ai_intelligence_layer python3 test_webhook_push.py --loop 5 ``` Output: ``` ✓ Posted lap 27 - Buffer size: 1 records ✓ Posted lap 28 - Buffer size: 2 records ... Posted 5/5 records successfully ``` **Method 2: POST to enrichment service (full integration)** POST raw telemetry to enrichment service, it will enrich and forward: ```bash curl -X POST http://localhost:8000/ingest/telemetry \ -H "Content-Type: application/json" \ -d '{ "lap": 27, "speed": 310, "tire_temp": 95, "fuel_level": 45 }' ``` *Note: This requires NEXT_STAGE_CALLBACK_URL to be set* ### 5. Generate Strategies ```bash cd ai_intelligence_layer python3 test_buffer_usage.py ``` Output: ``` Testing FAST brainstorm with buffered telemetry... (Configured for 3 strategies - fast and diverse!) ✓ Brainstorm succeeded! Generated 3 strategies Saved to: /tmp/brainstorm_strategies.json Strategies: 1. Conservative Stay Out (1-stop, low risk) Tires: medium → hard Pits at: laps [35] Extend current stint then hard tires to end 2. Standard Undercut (1-stop, medium risk) Tires: medium → hard Pits at: laps [32] Pit before tire cliff for track position 3. Aggressive Two-Stop (2-stop, high risk) Tires: medium → soft → hard Pits at: laps [30, 45] Early pit for fresh rubber and pace advantage ✓ SUCCESS: AI layer is using webhook buffer! Full JSON saved to /tmp/brainstorm_strategies.json ``` ### 6. View the Results ```bash cat /tmp/brainstorm_strategies.json | python3 -m json.tool ``` Or just: ```bash cat /tmp/brainstorm_strategies.json ``` ## Terminal Setup Here's the recommended terminal layout: ``` ┌─────────────────────────┬─────────────────────────┐ │ Terminal 1 │ Terminal 2 │ │ Enrichment Service │ AI Intelligence Layer │ │ (Port 8000) │ (Port 9000) │ │ │ │ │ $ cd HPCSimSite │ $ cd ai_intelligence... │ │ $ python3 scripts/ │ $ source myenv/bin/... │ │ serve.py │ $ python main.py │ │ │ │ │ Running... │ Running... │ └─────────────────────────┴─────────────────────────┘ ┌───────────────────────────────────────────────────┐ │ Terminal 3 - Testing │ │ │ │ $ cd ai_intelligence_layer │ │ $ python3 test_webhook_push.py --loop 5 │ │ $ python3 test_buffer_usage.py │ └───────────────────────────────────────────────────┘ ``` ## Current Configuration ### Enrichment Service (Port 8000) - **Endpoints:** - `POST /ingest/telemetry` - Receive raw telemetry - `POST /enriched` - Manually post enriched data - `GET /enriched?limit=N` - Retrieve recent enriched records - `GET /healthz` - Health check ### AI Intelligence Layer (Port 9000) - **Endpoints:** - `GET /api/health` - Health check - `POST /api/ingest/enriched` - Webhook receiver (enrichment service POSTs here) - `POST /api/strategy/brainstorm` - Generate 3 strategies - ~~`POST /api/strategy/analyze`~~ - **DISABLED** for speed - **Configuration:** - `STRATEGY_COUNT=3` - Generates 3 strategies - `FAST_MODE=true` - Uses shorter prompts - Response time: ~15-20 seconds (was ~2 minutes with 20 strategies + analysis) ## Troubleshooting ### Enrichment service won't start ```bash # Check if port 8000 is already in use lsof -i :8000 # Kill existing process kill -9 # Or use a different port python3 -m uvicorn hpcsim.api:app --host 0.0.0.0 --port 8001 ``` ### AI layer can't find enrichment service If you see: `"Cannot connect to enrichment service at http://localhost:8000"` **Solution:** The buffer is empty and it's trying to pull from enrichment service. ```bash # Push some data via webhook first: python3 test_webhook_push.py --loop 5 ``` ### Virtual environment issues ```bash cd ai_intelligence_layer # Check if venv exists ls -la myenv/ # If missing, recreate: python3 -m venv myenv source myenv/bin/activate pip install -r requirements.txt ``` ### Module not found errors ```bash # For enrichment service cd /Users/rishubmadhav/Documents/GitHub/HPCSimSite export PYTHONPATH=$PWD:$PYTHONPATH python3 scripts/serve.py # For AI layer cd ai_intelligence_layer source myenv/bin/activate python main.py ``` ## Full Integration Test Workflow ```bash # Terminal 1: Start enrichment cd /Users/rishubmadhav/Documents/GitHub/HPCSimSite export NEXT_STAGE_CALLBACK_URL=http://localhost:9000/api/ingest/enriched python3 scripts/serve.py # Terminal 2: Start AI layer cd /Users/rishubmadhav/Documents/GitHub/HPCSimSite/ai_intelligence_layer source myenv/bin/activate python main.py # Terminal 3: Test webhook push cd /Users/rishubmadhav/Documents/GitHub/HPCSimSite/ai_intelligence_layer python3 test_webhook_push.py --loop 5 # Terminal 3: Generate strategies python3 test_buffer_usage.py # View results cat /tmp/brainstorm_strategies.json | python3 -m json.tool ``` ## What's Next? 1. ✅ **Both services running** - Enrichment on 8000, AI on 9000 2. ✅ **Webhook tested** - Data flows from enrichment → AI layer 3. ✅ **Strategies generated** - 3 strategies in ~20 seconds 4. ⏭️ **Real telemetry** - Connect actual race data source 5. ⏭️ **Frontend** - Build UI to display strategies 6. ⏭️ **Production** - Increase to 20 strategies, enable analysis --- **Status:** 🚀 Both services ready to run! **Performance:** ~20 seconds for 3 strategies (vs 2+ minutes for 20 + analysis) **Integration:** Webhook push working perfectly