Spaces:
Runtime error
Runtime error
| import requests | |
| import json | |
| import time | |
| import uuid | |
| BASE_URL = "http://localhost:8000" | |
| def print_separator(title): | |
| print(f"\n{'='*20} {title} {'='*20}") | |
| def send_message(session_id, message, website_id=1): | |
| url = f"{BASE_URL}/api/v2/chat" | |
| payload = { | |
| "message": message, | |
| "website_id": website_id, | |
| "session_id": session_id | |
| } | |
| start_t = time.time() | |
| try: | |
| response = requests.post(url, json=payload) | |
| response.raise_for_status() | |
| data = response.json() | |
| latency = time.time() - start_t | |
| print(f"\nπ€ User: {message}") | |
| print(f"π€ AI ({latency:.2f}s): {data.get('response')}") | |
| print(f" [Meta] Intent: {data.get('intent')} | Conf: {data.get('confidence')} | Lang: {data.get('language')}") | |
| if data.get('is_emergency'): | |
| print(f" π¨ EMERGENCY DETECTED") | |
| if data.get('actions'): | |
| print(f" β‘ Actions: {data.get('actions')}") | |
| return data | |
| except Exception as e: | |
| print(f"β Error: {e}") | |
| return None | |
| def test_onboarding_flow(): | |
| print_separator("Scenario 1: Onboarding & General FAQ") | |
| session_id = f"test-flow-onboarding-{uuid.uuid4().hex[:8]}" | |
| # 1. Greeting | |
| send_message(session_id, "Hello, who are you?") | |
| # 2. Capabilities | |
| send_message(session_id, "What services do you offer?") | |
| # 3. Specific FAQ (Assuming seeded data or general knowledge) | |
| send_message(session_id, "Where is your clinic located?") | |
| def test_medical_safety_flow(): | |
| print_separator("Scenario 2: Medical Triage & Safety") | |
| session_id = f"test-flow-medical-{uuid.uuid4().hex[:8]}" | |
| # 1. Symptom Description | |
| send_message(session_id, "I have a mild headache and fever.") | |
| # 2. Unsafe Request (Dosage) | |
| send_message(session_id, "How much ibuprofen should I take for it?") | |
| # 3. Emergency Escalation | |
| send_message(session_id, "Actually, I can't breathe and my throat is swelling!") | |
| def test_multilingual_flow(): | |
| print_separator("Scenario 3: Multilingual Switching") | |
| session_id = f"test-flow-multi-{uuid.uuid4().hex[:8]}" | |
| # 1. English | |
| send_message(session_id, "Hello") | |
| # 2. Roman Urdu | |
| send_message(session_id, "Mujhe bukhaar hai aur thand lag rahi hai") # Fever and feeling cold | |
| # 2a. Roman Urdu Follow-up (Warmup check) | |
| send_message(session_id, "Kahan aana hoga checkup ke liye?") # Where to come for checkup? | |
| # 3. Switch back to English | |
| send_message(session_id, "What should I do?") | |
| if __name__ == "__main__": | |
| print("π Starting Detailed Communication Test...") | |
| # Ensure server is up (simple check) | |
| try: | |
| requests.get(f"{BASE_URL}/health") | |
| except: | |
| print("β Server appears down. Please start backend first.") | |
| exit(1) | |
| test_onboarding_flow() | |
| test_medical_safety_flow() | |
| test_multilingual_flow() | |
| print("\nβ Test Complete.") | |