import requests import json BASE_URL = "https://huggingface.co/spaces/Zeri00/Cogni-chat-document-reader" def test_endpoints(): """Test the debug and session endpoints to understand the issue.""" print("CogniChat HF Spaces Diagnostic\n") # Test 1: Check debug endpoint print("1. Testing /debug endpoint...") try: response = requests.get(f"{BASE_URL}/debug") if response.status_code == 200: data = response.json() print(" Debug endpoint working") print(f" Environment: {data.get('environment')}") print(f" GROQ API Key: {'Set' if data.get('groq_api_key_set') else 'NOT SET'}") print(f" Sessions count: {data.get('sessions_count')}") print(f" Upload folder: {data.get('upload_folder')}") print(f" Upload folder writable: {data.get('upload_folder_writable')}") print(f" Flask session ID: {data.get('flask_session_id')}") print(f" Session keys: {data.get('flask_session_keys')}") else: print(f"Debug endpoint failed: {response.status_code}") except Exception as e: print(f"Error accessing debug endpoint: {e}") print() print("2. Testing /test-session endpoint...") try: session = requests.Session() response = session.post(f"{BASE_URL}/test-session") if response.status_code == 200: data = response.json() print("Session write working") print(f"Test key: {data.get('test_key')}") print(f"Session keys: {data.get('session_keys')}") else: print(f"Session write failed: {response.status_code}") response = session.get(f"{BASE_URL}/test-session") if response.status_code == 200: data = response.json() print("Session read working") print(f" Test key persisted: {data.get('test_key')}") print(f" Has session data: {data.get('has_session_data')}") if not data.get('test_key'): print("WARNING: Sessions are not persisting between requests!") print(" This is likely the cause of the 400 chat error.") else: print(f"Session read failed: {response.status_code}") except Exception as e: print(f"Error testing sessions: {e}") print() # Test 3: Check if we can find any existing sessions print("3. Checking for existing RAG sessions...") try: response = requests.get(f"{BASE_URL}/debug") if response.status_code == 200: data = response.json() session_ids = data.get('session_ids', []) if session_ids: print(f"Found {len(session_ids)} existing RAG sessions") print(f" Session IDs: {session_ids[:3]}{'...' if len(session_ids) > 3 else ''}") else: print("No RAG sessions found (normal if no documents were uploaded)") except Exception as e: print(f"Error checking RAG sessions: {e}") print() print("Diagnosis Complete") print() print("LIKELY ISSUE:") print("If sessions are not persisting, this is a common issue in HF Spaces") print("where Flask sessions don't work properly across requests.") print() print("SOLUTION:") print("We need to modify the app to use a different session storage method") print("or pass session ID through request body instead of Flask sessions.") if __name__ == "__main__": print("Before running this script:") print("1. Update BASE_URL with your actual HF Spaces URL") print("2. Make sure your Space is running") print("3. Optionally upload a document first") print() print("Update the BASE_URL variable above and uncomment the test_endpoints() call")