findEthics/Atlas
0
1#!/usr/bin/env python32"""3Test chat request to see if analytics are collected4"""5import asyncio6import httpx7import json8 9async def test_chat_request():10 """Make a chat request and check if analytics are collected"""11 try:12 print("๐ Testing Chat Request with Analytics Collection")13 print("=" * 60)14 15 # Make a chat request16 chat_data = {17 "prompt": "Hello, this is a test message for analytics",18 "max_new_tokens": 100,19 "use_search": True,20 "temperature": 0.721 }22 23 print("๐ค Sending chat request...")24 async with httpx.AsyncClient(timeout=30.0) as client:25 response = await client.post(26 "http://localhost:7860/chat",27 json=chat_data,28 headers={"Content-Type": "application/json"}29 )30 31 print(f"๐ฅ Response status: {response.status_code}")32 33 if response.status_code == 200:34 result = response.json()35 print(f"โ
Chat response received (length: {len(result.get('response', ''))} chars)")36 37 # Check for session ID in headers38 session_id = response.headers.get('X-Session-ID')39 if session_id:40 print(f"๐ Session ID: {session_id}")41 else:42 print("โ ๏ธ No session ID in response headers")43 44 return True45 else:46 print(f"โ Chat request failed: {response.text}")47 return False48 49 except Exception as e:50 print(f"โ Error making chat request: {e}")51 return False52 53async def check_data_after_request():54 """Check if data was collected after the chat request"""55 try:56 print("\n๐ Checking Data Collection After Chat Request")57 print("=" * 60)58 59 # Wait a moment for data to be written60 await asyncio.sleep(2)61 62 from analytics.database import get_sessions_collection, get_messages_collection63 64 sessions_collection = await get_sessions_collection()65 messages_collection = await get_messages_collection()66 67 if sessions_collection is None or messages_collection is None:68 print("โ Database collections not available")69 return70 71 # Check sessions72 sessions_count = await sessions_collection.count_documents({})73 print(f"๐ Sessions in database: {sessions_count}")74 75 if sessions_count > 0:76 latest_session = await sessions_collection.find_one({}, sort=[("start_time", -1)])77 print(f" Latest session ID: {latest_session.get('session_id', 'N/A')}")78 print(f" Message count: {latest_session.get('message_count', 0)}")79 print(f" Status: {latest_session.get('status', 'N/A')}")80 81 # Check messages82 messages_count = await messages_collection.count_documents({})83 print(f"๐ฌ Messages in database: {messages_count}")84 85 if messages_count > 0:86 latest_message = await messages_collection.find_one({}, sort=[("timestamp", -1)])87 print(f" Latest message ID: {latest_message.get('message_id', 'N/A')}")88 print(f" Session ID: {latest_message.get('session_id', 'N/A')}")89 print(f" Prompt length: {latest_message.get('prompt_length', 0)}")90 print(f" Response time: {latest_message.get('response_time_ms', 0)}ms")91 print(f" Used search: {latest_message.get('used_search', False)}")92 print(f" Success: {latest_message.get('success', False)}")93 94 return sessions_count > 0 and messages_count > 095 96 except Exception as e:97 print(f"โ Error checking data: {e}")98 import traceback99 traceback.print_exc()100 return False101 102async def main():103 # Test chat request104 chat_success = await test_chat_request()105 106 if chat_success:107 # Check if data was collected108 data_collected = await check_data_after_request()109 110 if data_collected:111 print("\nโ
SUCCESS: Analytics data is being collected!")112 113 # Test dashboard again114 print("\n๐ฏ Testing Dashboard After Data Collection")115 print("=" * 60)116 117 from analytics.dashboard import get_basic_stats118 stats = await get_basic_stats()119 120 print("Updated dashboard stats:")121 for key, value in stats.items():122 print(f" {key}: {value}")123 124 else:125 print("\nโ PROBLEM: No analytics data was collected!")126 print(" The chat request worked but analytics collection failed.")127 else:128 print("\nโ PROBLEM: Chat request failed!")129 print(" Cannot test analytics collection.")130 131if __name__ == "__main__":132 asyncio.run(main())