import requests
import json
from datetime import datetime, timedelta

# 查询今天的对话
start_time = datetime.now().replace(hour=0, minute=0, second=0)
end_time = datetime.now().replace(hour=23, minute=59, second=59)

start_ns = int(start_time.timestamp()) * 1_000_000_000
end_ns = int(end_time.timestamp()) * 1_000_000_000

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

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

# 查询Loki
try:
    response = requests.get(url, params=params, timeout=10)
    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 = entry.get('message', {})
                    msg_type = message.get('type', '')
                    timestamp_str = entry.get('timestamp', '')
                    
                    if msg_type == 'user' and 'content' in message:
                        content = message['content']
                        # 跳过系统消息
                        if isinstance(content, str) and not content.startswith('Caveat:'):
                            user_messages.append((timestamp_str, content))
                    
                    elif msg_type == 'assistant' and 'content' in message:
                        content = message['content']
                        if isinstance(content, list) and content:
                            # 提取text内容
                            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)} 条")
    print(f"  • 总对话数: {len(user_messages) + len(assistant_messages)} 条")

except Exception as e:
    print(f"❌ 错误: {e}")
