File size: 3,718 Bytes
e9b4a9e |
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 |
import sys
import time
from pathlib import Path
# Add project root to path
project_root = Path(__file__).parent
sys.path.append(str(project_root))
def test_critical_fixes():
"""Test the critical fixes for HF endpoint spamming and response issues"""
print("=== Critical Fixes Test ===")
print()
# Test 1: Check HF endpoint monitor rate limiting
print("1. Testing HF Endpoint Monitor Rate Limiting:")
try:
from services.hf_endpoint_monitor import hf_monitor
# Check initial configuration
print(f" Check interval: {hf_monitor.check_interval} seconds")
if hf_monitor.check_interval >= 300:
print(" β
Rate limiting properly configured (5+ minutes between checks)")
else:
print(" β Rate limiting not properly configured")
# Test rate limiting behavior
first_check = hf_monitor.check_endpoint_status()
time.sleep(1) # Very short delay
second_check = hf_monitor.check_endpoint_status()
# Second check should return cached results quickly
if first_check['timestamp'] == second_check['timestamp']:
print(" β
Rate limiting working - cached results returned")
else:
print(" β οΈ Rate limiting may not be working properly")
except Exception as e:
print(f" β Error testing HF monitor: {e}")
print()
# Test 2: Check app.py structure
print("2. Testing App.py Structure:")
try:
with open('app.py', 'r') as f:
content = f.read()
# Check for key fixes
required_fixes = [
'st.chat_input',
'is_processing',
'response_placeholder',
'status_placeholder',
'user_input and not st.session_state.is_processing'
]
missing_fixes = []
for fix in required_fixes:
if fix not in content:
missing_fixes.append(fix)
if missing_fixes:
print(f" β Missing fixes: {missing_fixes}")
else:
print(" β
All critical fixes present in app.py")
except Exception as e:
print(f" β Error reading app.py: {e}")
print()
# Test 3: Check for proper error handling
print("3. Testing Error Handling:")
try:
with open('app.py', 'r') as f:
content = f.read()
error_handling_features = [
'except Exception as ollama_error',
'except Exception as hf_error',
'System error',
'Sorry, I couldn\'t process your request'
]
missing_features = []
for feature in error_handling_features:
if feature not in content:
missing_features.append(feature)
if missing_features:
print(f" β Missing error handling: {missing_features}")
else:
print(" β
Proper error handling implemented")
except Exception as e:
print(f" β Error checking error handling: {e}")
print()
print("π Critical Fixes Test Completed!")
print()
print("π§ SUMMARY OF FIXES APPLIED:")
print("1. β
HF Endpoint Spamming Fixed - Rate limiting to 5+ minutes")
print("2. β
Response Delivery Fixed - Using st.chat_input() properly")
print("3. β
Error Handling Improved - Better user feedback")
print("4. β
Processing State Management - Proper is_processing flags")
print("5. β
UI Responsiveness - Immediate message display")
if __name__ == "__main__":
test_critical_fixes()
|