File size: 2,886 Bytes
d32c69c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import requests
import uuid
import time

def test_session_workflow():
    # Base URL
    base_url = "http://localhost:8000"
    
    # Create a unique session ID
    session_id = str(uuid.uuid4())
    print(f"Testing with session ID: {session_id}")
    
    # Step 1: Create a user and associate with session
    print("\n1. Creating user...")
    username = f"test_user_{session_id[:8]}"
    email = f"{username}@example.com"
    login_response = requests.post(
        f"{base_url}/auth/login",
        json={"username": username, "email": email, "session_id": session_id}
    ).json()
    print(f"Login response: {login_response}")
    
    # Step 2: Verify session state
    print("\n2. Verifying session state...")
    session_state = requests.get(f"{base_url}/debug/session/{session_id}").json()
    print(f"Session state: {session_state}")
    
    # Step 3: Make a chat request with this session
    print("\n3. Making a test chat request...")
    chat_response = requests.post(
        f"{base_url}/chat/data_explorer",
        json={"query": "Show me a summary of the dataset"},
        params={"session_id": session_id}
    ).json()
    print(f"Chat response received: {len(str(chat_response))} bytes")
    
    # Step 4: Verify session state again
    print("\n4. Verifying session state after chat...")
    session_state = requests.get(f"{base_url}/debug/session/{session_id}").json()
    print(f"Updated session state: {session_state}")
    
    # Step 5: Check analytics data
    print("\n5. Checking analytics data...")
    time.sleep(1)  # Wait a moment for data to be saved
    admin_key = "default-admin-key-change-me"  # Adjust to your admin key

    # Check general model usage
    analytics_response = requests.get(
        f"{base_url}/analytics/debug/model_usage",
        headers={"X-Admin-API-Key": admin_key}
    ).json()
    print(f"Total records in database: {analytics_response.get('total_records', 0)}")

    if 'sample_records' in analytics_response and analytics_response['sample_records']:
        print(f"Latest usage records: {analytics_response['sample_records']}")
    else:
        print("No sample records found in general model usage")

    # Check user-specific usage
    user_id = login_response.get('user_id')
    if user_id:
        user_usage = requests.get(
            f"{base_url}/analytics/debug/user_usage/{user_id}",
            headers={"X-Admin-API-Key": admin_key}
        ).json()
        print(f"User {user_id} has {user_usage.get('total_records', 0)} usage records")
        
        if user_usage.get('recent_records'):
            print(f"Recent usage: {user_usage['recent_records']}")
        else:
            print(f"No usage records found for user {user_id}")

    print("\nTest completed!")

if __name__ == "__main__":
    test_session_workflow()