import requests
import json
from datetime import datetime

start_time = datetime.now().replace(hour=0, minute=0, second=0)
start_ns = int(start_time.timestamp()) * 1_000_000_000

url = "http://localhost:3100/loki/api/v1/query_range"
params = {
    'query': '{service_name="exec"}',
    'start': start_ns,
    'limit': 500
}

print("📅 今天的 iFlow 对话分析")
print("=" * 50)

response = requests.get(url, params=params)
data = response.json()

user_messages = []
assistant_messages = []

if 'data' in data and 'result' in data['data']:
    for stream in data['data']['result']:
        for timestamp, log_entry in stream['values']:
            try:
                entry = json.loads(log_entry)
                message_str = entry.get('message', '')
                message = json.loads(message_str)
                
                msg_type = message.get('type', '')
                timestamp_str = message.get('timestamp', '')
                
                # 获取嵌套的message
                nested_message = message.get('message', {})
                content = nested_message.get('content', '')
                
                if msg_type == 'user':
                    if isinstance(content, str) and not content.startswith('Caveat:'):
                        user_messages.append((timestamp_str, content))
                
                elif msg_type == 'assistant':
                    if isinstance(content, list) and content:
                        text_content = []
                        for item in content:
                            if isinstance(item, dict) and item.get('type') == 'text':
                                text_content.append(item.get('text', ''))
                        if text_content:
                            assistant_messages.append((timestamp_str, ' '.join(text_content)[:200]))
            except:
                pass

# 显示用户消息
print(f"\n👤 用户提问 ({len(user_messages)} 条):")
print("-" * 50)
for i, (ts, content) in enumerate(user_messages, 1):
    print(f"{i}. [{ts.split('T')[1][:8]}] {content}")

# 显示AI回复概览
print(f"\n🤖 AI回复 ({len(assistant_messages)} 条):")
print("-" * 50)
for i, (ts, content) in enumerate(assistant_messages[:5], 1):
    print(f"{i}. [{ts.split('T')[1][:8]}] {content}...")

print(f"\n📊 统计:")
print(f"  • 用户消息: {len(user_messages)} 条")
print(f"  • AI回复: {len(assistant_messages)} 条")
