Cogni-Chat-document-reader-v2 / test_hf_spaces_session.py
riteshraut
fix/new update
becc8f7
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")