Tôi vẫn nhớ rõ ngày hôm đó - một buổi sáng thứ Hai đầu tuần, team của tôi vừa triển khai hệ thống RAG (Retrieval-Augmented Generation) cho nền tảng thương mại điện tử B2B với hơn 50,000 SKU sản phẩm. Chỉ sau 3 ngày vận hành, chi phí API tăng vọt 340% — từ $800/ngày lên $2,720/ngày. Sau khi phân tích log, chúng tôi phát hiện: một cron job bị lỗi đang gọi API liên tục thay vì chỉ một lần mỗi giờ, và một prompt injection attack đang thử trích xuất dữ liệu khách hàng. Kinh nghiệm này thay đổi hoàn toàn cách tôi tiếp cận AI API log auditing.

Tại Sao Log Auditing Quan Trọng Với AI API?

Khác với REST API truyền thống, AI API có những đặc thù riêng:

Kiến Trúc Log Auditing Hoàn Chỉnh

1. Middleware Logging Với Python

"""
AI API Request/Response Logger với Anomaly Detection
Hỗ trợ HolySheep AI và các provider khác
"""

import json
import time
import hashlib
import asyncio
from datetime import datetime, timedelta
from typing import Optional, Dict, Any, List
from dataclasses import dataclass, asdict
from collections import defaultdict
import statistics


@dataclass
class APILogEntry:
    """Cấu trúc log entry cho AI API"""
    timestamp: str
    request_id: str
    provider: str  # 'holysheep', 'openai', etc.
    model: str
    operation: str  # 'chat', 'embedding', etc.
    
    # Request metrics
    input_tokens: int
    prompt_tokens: int = 0
    cache_tokens: int = 0
    
    # Response metrics
    output_tokens: int
    total_tokens: int
    latency_ms: float
    
    # Cost tracking
    cost_usd: float
    cost_cny: float = 0.0
    
    # Anomaly flags
    is_anomaly: bool = False
    anomaly_type: Optional[str] = None
    anomaly_severity: Optional[str] = None  # 'low', 'medium', 'high', 'critical'
    
    # Metadata
    user_id: Optional[str] = None
    session_id: Optional[str] = None
    endpoint: Optional[str] = None
    status_code: int = 200
    error_message: Optional[str] = None
    
    def to_dict(self) -> Dict[str, Any]:
        return asdict(self)


class CostCalculator:
    """Tính chi phí theo bảng giá HolySheep AI 2026"""
    
    # HolySheep AI Pricing (USD per 1M tokens)
    HOLYSHEEP_PRICING = {
        # Chat Models
        'gpt-4.1': {'input': 8.0, 'output': 8.0},
        'claude-sonnet-4.5': {'input': 15.0, 'output': 15.0},
        'gemini-2.5-flash': {'input': 2.50, 'output': 2.50},
        'deepseek-v3.2': {'input': 0.42, 'output': 0.42},
        
        # Embedding Models
        'text-embedding-3-small': {'input': 0.02, 'output': 0.0},
        'text-embedding-3-large': {'input': 0.13, 'output': 0.0},
    }
    
    # Fallback pricing (USD per 1M tokens)
    FALLBACK_PRICING = {
        'gpt-4': {'input': 30.0, 'output': 60.0},
        'gpt-4-turbo': {'input': 10.0, 'output': 30.0},
        'gpt-3.5-turbo': {'input': 0.5, 'output': 1.5},
    }
    
    @classmethod
    def calculate_cost(
        cls, 
        provider: str,
        model: str,
        input_tokens: int, 
        output_tokens: int,
        use_cache: bool = False,
        cache_discount: float = 0.9
    ) -> float:
        """
        Tính chi phí USD
        HolySheep: ¥1 = $1, tiết kiệm 85%+ so với OpenAI
        """
        pricing = cls.HOLYSHEEP_PRICING.get(model, cls.FALLBACK_PRICING.get(model, {}))
        
        if not pricing:
            # Default pricing for unknown models
            pricing = {'input': 1.0, 'output': 2.0}
        
        input_cost = (input_tokens / 1_000_000) * pricing['input']
        output_cost = (output_tokens / 1_000_000) * pricing['output']
        
        # Áp dụng cache discount nếu có
        if use_cache:
            input_cost *= (1 - cache_discount)
        
        return round(input_cost + output_cost, 6)
    
    @classmethod
    def calculate_savings(cls, openai_cost: float, holysheep_cost: float) -> Dict[str, Any]:
        """Tính toán savings khi dùng HolySheep"""
        savings = openai_cost - holysheep_cost
        savings_percent = (savings / openai_cost * 100) if openai_cost > 0 else 0
        
        return {
            'openai_cost_usd': round(openai_cost, 4),
            'holysheep_cost_usd': round(holysheep_cost, 4),
            'savings_usd': round(savings, 4),
            'savings_percent': round(savings_percent, 2)
        }


class AnomalyDetector:
    """
    Phát hiện bất thường trong AI API usage
    """
    
    def __init__(self):
        # Baseline metrics
        self.baseline_latency: Dict[str, float] = {}
        self.baseline_tokens: Dict[str, Dict[str, float]] = defaultdict(dict)
        self.baseline_costs: Dict[str, float] = {}
        
        # Thresholds (configurable)
        self.thresholds = {
            'latency_p99_ms': 5000,  # 5 seconds
            'tokens_per_request': 100000,  # 100K tokens/request
            'requests_per_minute': 1000,
            'cost_per_day_usd': 10000,
            'error_rate_percent': 5.0,
        }
    
    def update_baseline(self, logs: List[APILogEntry]):
        """Cập nhật baseline từ historical data"""
        by_model = defaultdict(list)
        
        for log in logs:
            by_model[log.model].append(log)
        
        for model, model_logs in by_model.items():
            if model_logs:
                latencies = [l.latency_ms for l in model_logs]
                input_tokens = [l.input_tokens for l in model_logs]
                output_tokens = [l.output_tokens for l in model_logs]
                costs = [l.cost_usd for l in model_logs]
                
                self.baseline_latency[model] = {
                    'mean': statistics.mean(latencies),
                    'median': statistics.median(latencies),
                    'stdev': statistics.stdev(latencies) if len(latencies) > 1 else 0,
                    'p95': sorted(latencies)[int(len(latencies) * 0.95)],
                    'p99': sorted(latencies)[int(len(latencies) * 0.99)],
                }
                
                self.baseline_tokens[model] = {
                    'input_mean': statistics.mean(input_tokens),
                    'input_stdev': statistics.stdev(input_tokens) if len(input_tokens) > 1 else 0,
                    'output_mean': statistics.mean(output_tokens),
                    'output_stdev': statistics.stdev(output_tokens) if len(output_tokens) > 1 else 0,
                }
                
                self.baseline_costs[model] = sum(costs)
    
    def detect_anomalies(self, log: APILogEntry, context: Dict[str, Any]) -> Dict[str, Any]:
        """
        Phát hiện anomalies trên một log entry
        """
        anomalies = []
        
        # 1. High Latency Detection
        if log.latency_ms > self.thresholds['latency_p99_ms']:
            anomalies.append({
                'type': 'high_latency',
                'severity': 'medium',
                'message': f"Latency {log.latency_ms:.0f}ms vượt ngưỡng {self.thresholds['latency_p99_ms']}ms",
                'value': log.latency_ms,
                'threshold': self.thresholds['latency_p99_ms']
            })
        
        # 2. Token Spike Detection
        if log.input_tokens > self.thresholds['tokens_per_request']:
            anomalies.append({
                'type': 'token_spike',
                'severity': 'high',
                'message': f"Input tokens {log.input_tokens:,} vượt ngưỡng {self.thresholds['tokens_per_request']:,}",
                'value': log.input_tokens,
                'threshold': self.thresholds['tokens_per_request']
            })
        
        # 3. Cost Spike Detection (dựa trên baseline)
        if log.model in self.baseline_costs:
            avg_cost = self.baseline_costs[log.model] / max(len(context.get('daily_logs', [])), 1)
            if log.cost_usd > avg_cost * 10:  # 10x so với average
                anomalies.append({
                    'type': 'cost_spike',
                    'severity': 'critical',
                    'message': f"Cost ${log.cost_usd:.4f} cao bất thường (avg: ${avg_cost:.4f})",
                    'value': log.cost_usd,
                    'baseline': avg_cost
                })
        
        # 4. Error Rate Detection
        if log.status_code >= 400:
            anomalies.append({
                'type': 'api_error',
                'severity': 'high',
                'message': f"API Error {log.status_code}: {log.error_message}",
                'value': log.status_code
            })
        
        # 5. Potential Prompt Injection Detection
        if self._check_prompt_injection(log):
            anomalies.append({
                'type': 'prompt_injection',
                'severity': 'critical',
                'message': "Phát hiện potential prompt injection attempt",
                'indicators': self._get_injection_indicators(log)
            })
        
        # Determine overall severity
        severity_order = {'critical': 4, 'high': 3, 'medium': 2, 'low': 1}
        max_severity = max(
            (severity_order.get(a['severity'], 0) for a in anomalies),
            default=0
        )
        severity_map = {4: 'critical', 3: 'high', 2: 'medium', 1: 'low', 0: 'none'}
        
        return {
            'has_anomaly': len(anomalies) > 0,
            'anomalies': anomalies,
            'severity': severity_map[max_severity]
        }
    
    def _check_prompt_injection(self, log: APILogEntry) -> bool:
        """Kiểm tra prompt injection patterns"""
        # Các patterns đáng ngờ
        suspicious_patterns = [
            r'ignore\s+(previous|all|above)\s+(instructions?|rules?)',
            r'forget\s+everything',
            r'system\s*:\s*',
            r'\[\s*INST\s*\]',
            r'you\s+are\s+a\s+malicious',
            r'disregard\s+your',
        ]
        
        import re
        prompt_text = str(log.prompt_tokens) if isinstance(log.prompt_tokens, str) else ""
        
        for pattern in suspicious_patterns:
            if re.search(pattern, prompt_text, re.IGNORECASE):
                return True
        
        return False
    
    def _get_injection_indicators(self, log: APILogEntry) -> List[str]:
        """Liệt kê các indicators của prompt injection"""
        indicators = []
        
        if 'ignore' in str(log.prompt_tokens).lower():
            indicators.append("Contains 'ignore' keyword")
        if 'system' in str(log.prompt_tokens).lower()[:20]:
            indicators.append("Starts with system-level command")
        if len(str(log.prompt_tokens)) > 5000:
            indicators.append("Unusually long prompt")
        
        return indicators


print("✅ AI API Log Auditing Module Loaded")
print("📊 Cost Calculator - HolySheep Pricing 2026:")
print("   - GPT-4.1: $8/MTok (Tiết kiệm 85%+ vs OpenAI)")
print("   - Claude Sonnet 4.5: $15/MTok")
print("   - Gemini 2.5 Flash: $2.50/MTok")
print("   - DeepSeek V3.2: $0.42/MTok (Giá rẻ nhất)")

2. HolySheep AI Integration Với Logging

"""
HolySheep AI API Integration với Full Logging
base_url: https://api.holysheep.ai/v1
"""

import os
import json
import time
import httpx
from typing import Optional, Dict, Any, List, AsyncIterator
from datetime import datetime


class HolySheepAIClient:
    """
    HolySheep AI API Client với built-in logging và anomaly detection
    """
    
    BASE_URL = "https://api.holysheep.ai/v1"
    
    def __init__(
        self, 
        api_key: str,
        log_handler: Optional['APILogHandler'] = None,
        anomaly_detector: Optional[AnomalyDetector] = None
    ):
        self.api_key = api_key
        self.log_handler = log_handler
        self.anomaly_detector = anomaly_detector or AnomalyDetector()
        
        self.client = httpx.AsyncClient(
            base_url=self.BASE_URL,
            timeout=httpx.Timeout(60.0, connect=10.0),
            headers={
                "Authorization": f"Bearer {api_key}",
                "Content-Type": "application/json"
            }
        )
        
        # Rate limiting
        self.request_timestamps: List[float] = []
        self.rate_limit = 1000  # requests per minute
        
    async def chat_completion(
        self,
        model: str = "deepseek-v3.2",  # Model rẻ nhất: $0.42/MTok
        messages: List[Dict[str, str]],
        temperature: float = 0.7,
        max_tokens: Optional[int] = 2048,
        user_id: Optional[str] = None,
        session_id: Optional[str] = None,
        **kwargs
    ) -> Dict[str, Any]:
        """
        Gọi HolySheep Chat Completion API với full logging
        """
        start_time = time.perf_counter()
        request_id = self._generate_request_id()
        
        try:
            # Rate limit check
            await self._check_rate_limit()
            
            # Build request
            payload = {
                "model": model,
                "messages": messages,
                "temperature": temperature,
            }
            
            if max_tokens:
                payload["max_tokens"] = max_tokens
            
            payload.update(kwargs)
            
            # Make request
            response = await self.client.post("/chat/completions", json=payload)
            latency_ms = (time.perf_counter() - start_time) * 1000
            
            # Parse response
            if response.status_code == 200:
                data = response.json()
                
                usage = data.get('usage', {})
                input_tokens = usage.get('prompt_tokens', 0)
                output_tokens = usage.get('completion_tokens', 0)
                total_tokens = usage.get('total_tokens', input_tokens + output_tokens)
                cache_tokens = usage.get('prompt_cache_tokens', 0)
                
                # Calculate cost
                cost_usd = CostCalculator.calculate_cost(
                    provider='holysheep',
                    model=model,
                    input_tokens=input_tokens,
                    output_tokens=output_tokens,
                    use_cache=cache_tokens > 0
                )
                
                # Create log entry
                log_entry = APILogEntry(
                    timestamp=datetime.utcnow().isoformat(),
                    request_id=request_id,
                    provider='holysheep',
                    model=model,
                    operation='chat',
                    input_tokens=input_tokens,
                    prompt_tokens=input_tokens,
                    cache_tokens=cache_tokens,
                    output_tokens=output_tokens,
                    total_tokens=total_tokens,
                    latency_ms=latency_ms,
                    cost_usd=cost_usd,
                    user_id=user_id,
                    session_id=session_id,
                    status_code=200
                )
                
                # Anomaly detection
                anomaly_result = self.anomaly_detector.detect_anomalies(
                    log_entry, 
                    {'daily_logs': []}
                )
                
                log_entry.is_anomaly = anomaly_result['has_anomaly']
                log_entry.anomaly_type = ','.join([a['type'] for a in anomaly_result['anomalies']]) if anomaly_result['anomalies'] else None
                log_entry.anomaly_severity = anomaly_result['severity']
                
                # Log if anomaly detected
                if anomaly_result['has_anomaly']:
                    print(f"🚨 ANOMALY DETECTED [{anomaly_result['severity'].upper()}]: {anomaly_result['anomalies']}")
                    if self.log_handler:
                        await self.log_handler.write_alert(log_entry, anomaly_result)
                
                # Write log
                if self.log_handler:
                    await self.log_handler.write_log(log_entry)
                
                return {
                    'success': True,
                    'data': data,
                    'usage': {
                        'input_tokens': input_tokens,
                        'output_tokens': output_tokens,
                        'total_tokens': total_tokens,
                        'cost_usd': cost_usd,
                        'latency_ms': round(latency_ms, 2)
                    },
                    'anomaly': anomaly_result if anomaly_result['has_anomaly'] else None
                }
                
            else:
                # Error handling
                error_data = response.json() if response.text else {}
                error_msg = error_data.get('error', {}).get('message', 'Unknown error')
                
                log_entry = APILogEntry(
                    timestamp=datetime.utcnow().isoformat(),
                    request_id=request_id,
                    provider='holysheep',
                    model=model,
                    operation='chat',
                    input_tokens=0,
                    output_tokens=0,
                    total_tokens=0,
                    latency_ms=(time.perf_counter() - start_time) * 1000,
                    cost_usd=0,
                    status_code=response.status_code,
                    error_message=error_msg
                )
                
                anomaly_result = self.anomaly_detector.detect_anomalies(log_entry, {})
                log_entry.is_anomaly = anomaly_result['has_anomaly']
                
                if self.log_handler:
                    await self.log_handler.write_log(log_entry)
                
                return {
                    'success': False,
                    'error': error_msg,
                    'status_code': response.status_code,
                    'request_id': request_id
                }
                
        except httpx.TimeoutException as e:
            return {
                'success': False,
                'error': f"Request timeout: {str(e)}",
                'request_id': request_id
            }
        except Exception as e:
            return {
                'success': False,
                'error': f"Unexpected error: {str(e)}",
                'request_id': request_id
            }
    
    async def embeddings(
        self,
        input: str | List[str],
        model: str = "text-embedding-3-small",
        user_id: Optional[str] = None
    ) -> Dict[str, Any]:
        """
        Generate embeddings với HolySheep AI
        Model: text-embedding-3-small @ $0.02/MTok (input)
        """
        start_time = time.perf_counter()
        request_id = self._generate_request_id()
        
        payload = {
            "model": model,
            "input": input
        }
        
        response = await self.client.post("/embeddings", json=payload)
        latency_ms = (time.perf_counter() - start_time) * 1000
        
        if response.status_code == 200:
            data = response.json()
            usage = data.get('usage', {})
            
            # Estimate tokens (1 token ≈ 4 chars for English, 2 chars for Chinese)
            input_text = input if isinstance(input, str) else " ".join(input)
            input_tokens = len(input_text) // 4
            
            cost_usd = CostCalculator.calculate_cost(
                provider='holysheep',
                model=model,
                input_tokens=input_tokens,
                output_tokens=0
            )
            
            return {
                'success': True,
                'data': data,
                'usage': {
                    'input_tokens': input_tokens,
                    'cost_usd': cost_usd,
                    'latency_ms': round(latency_ms, 2)
                }
            }
        
        return {
            'success': False,
            'error': response.text
        }
    
    async def _check_rate_limit(self):
        """Rate limiting check"""
        now = time.time()
        # Remove timestamps older than 1 minute
        self.request_timestamps = [ts for ts in self.request_timestamps if now - ts < 60]
        
        if len(self.request_timestamps) >= self.rate_limit:
            sleep_time = 60 - (now - self.request_timestamps[0])
            if sleep_time > 0:
                print(f"⏳ Rate limit reached. Sleeping {sleep_time:.1f}s")
                await asyncio.sleep(sleep_time)
        
        self.request_timestamps.append(now)
    
    def _generate_request_id(self) -> str:
        """Generate unique request ID"""
        import hashlib
        timestamp = str(time.time())
        return hashlib.sha256(timestamp.encode()).hexdigest()[:16]


============== Usage Example ==============

async def main(): """Ví dụ sử dụng HolySheep AI với logging""" # Initialize client client = HolySheepAIClient( api_key="YOUR_HOLYSHEEP_API_KEY", # Thay bằng API key thực tế log_handler=None, # Pass your log handler anomaly_detector=AnomalyDetector() ) # Example 1: Chat Completion với DeepSeek V3.2 (model rẻ nhất) print("📝 Chat Completion với DeepSeek V3.2 ($0.42/MTok):") result = await client.chat_completion( model="deepseek-v3.2", messages=[ {"role": "system", "content": "Bạn là trợ lý AI hữu ích"}, {"role": "user", "content": "Giải thích về RAG system trong 3 câu"} ], temperature=0.7, max_tokens=500, user_id="user_123" ) if result['success']: print(f" ✅ Thành công!") print(f" 💰 Cost: ${result['usage']['cost_usd']:.6f}") print(f" ⏱️ Latency: {result['usage']['latency_ms']:.0f}ms") print(f" 📊 Tokens: {result['usage']['total_tokens']}") if result.get('anomaly'): print(f" 🚨 Anomaly: {result['anomaly']}") else: print(f" ❌ Lỗi: {result['error']}") # Example 2: Embeddings cho RAG system print("\n📚 Embeddings generation:") embed_result = await client.embeddings( input="RAG là viết tắt của Retrieval-Augmented Generation", model="text-embedding-3-small" ) if embed_result['success']: print(f" ✅ Embedding generated") print(f" 💰 Cost: ${embed_result['usage']['cost_usd']:.6f}")

Chạy example

if __name__ == "__main__": asyncio.run(main())

Xây Dựng Dashboard Monitoring

"""
Real-time AI API Monitoring Dashboard
Sử dụng HolySheep AI với cost optimization
"""

import asyncio
from datetime import datetime, timedelta
from typing import List, Dict, Any
from collections import defaultdict


class MonitoringDashboard:
    """Dashboard theo dõi AI API usage theo thời gian thực"""
    
    def __init__(self):
        self.logs: List[APILogEntry] = []
        self.alerts: List[Dict] = []
        
        # Real-time counters
        self.counters = {
            'total_requests': 0,
            'total_tokens': 0,
            'total_cost_usd': 0.0,
            'error_count': 0,
            'anomaly_count': 0
        }
        
        # Cost comparison
        self.cost_comparison = {
            'holysheep': 0.0,
            'openai_equivalent': 0.0
        }
    
    async def add_log(self, log: APILogEntry):
        """Thêm log entry vào dashboard"""
        self.logs.append(log)
        
        # Update counters
        self.counters['total_requests'] += 1
        self.counters['total_tokens'] += log.total_tokens
        self.counters['total_cost_usd'] += log.cost_usd
        
        if log.status_code >= 400:
            self.counters['error_count'] += 1
        if log.is_anomaly:
            self.counters['anomaly_count'] += 1
        
        # Calculate OpenAI equivalent cost
        openai_prices = {
            'gpt-4.1': 30.0,  # OpenAI GPT-4
            'claude-sonnet-4.5': 45.0,  # Claude Sonnet equivalent
            'deepseek-v3.2': 8.0,  # DeepSeek on OpenAI
        }
        
        openai_cost = (log.total_tokens / 1_000_000) * openai_prices.get(log.model, 15.0)
        self.cost_comparison['openai_equivalent'] += openai_cost
        self.cost_comparison['holysheep'] += log.cost_usd
    
    def generate_report(self, time_window: timedelta = timedelta(hours=24)) -> Dict[str, Any]:
        """Generate báo cáo usage"""
        now = datetime.utcnow()
        cutoff = now - time_window
        
        recent_logs = [l for l in self.logs if datetime.fromisoformat(l.timestamp) > cutoff]
        
        # Group by model
        by_model = defaultdict(lambda: {'requests': 0, 'tokens': 0, 'cost': 0.0, 'latencies': []})
        
        for log in recent_logs:
            by_model[log.model]['requests'] += 1
            by_model[log.model]['tokens'] += log.total_tokens
            by_model[log.model]['cost'] += log.cost_usd
            by_model[log.model]['latencies'].append(log.latency_ms)
        
        # Calculate stats
        model_stats = {}
        for model, stats in by_model.items():
            latencies = stats['latencies']
            model_stats[model] = {
                'requests': stats['requests'],
                'total_tokens': stats['tokens'],
                'cost_usd': round(stats['cost'], 4),
                'avg_latency_ms': round(sum(latencies) / len(latencies), 2) if latencies else 0,
                'p95_latency_ms': round(sorted(latencies)[int(len(latencies) * 0.95)]) if latencies else 0,
                'p99_latency_ms': round(sorted(latencies)[int(len(latencies) * 0.99)]) if latencies else 0,
            }
        
        # Cost savings
        savings = self.cost_comparison['openai_equivalent'] - self.cost_comparison['holysheep']
        savings_percent = (savings / self.cost_comparison['openai_equivalent'] * 100) 
        
        return {
            'time_window': str(time_window),
            'generated_at': now.isoformat(),
            'summary': {
                'total_requests': len(recent_logs),
                'total_tokens': sum(l.total_tokens for l in recent_logs),
                'total_cost_usd': round(sum(l.cost_usd for l in recent_logs), 4),
                'avg_cost_per_request': round(
                    sum(l.cost_usd for l in recent_logs) / len(recent_logs), 6
                ) if recent_logs else 0,
                'error_rate': round(
                    len([l for l in recent_logs if l.status_code >= 400]) / len(recent_logs) * 100, 2
                ) if recent_logs else 0,
                'anomaly_rate': round(
                    len([l for l in recent_logs if l.is_anomaly]) / len(recent_logs) * 100, 2
                ) if recent_logs else 0,
            },
            'by_model': model_stats,
            'cost_comparison': {
                'holysheep_actual': round(self.cost_comparison['holysheep'], 4),
                'openai_equivalent': round(self.cost_comparison['openai_equivalent'], 4),
                'savings_usd': round(savings, 4),
                'savings_percent': round(savings_percent, 2)
            },
            'top_anomalies': [
                {
                    'timestamp': l.timestamp,
                    'model': l.model,
                    'type': l.anomaly_type,
                    'severity': l.anomaly_severity,
                    'cost': l.cost_usd,
                    'message': f"{l.anomaly_type} - {l.anomaly_severity}"
                }
                for l in recent_logs if l.is_anomaly
            ][:10]  # Top 10 anomalies
        }
    
    def print_report(self, report: Dict):
        """In báo cáo ra console"""
        print("\n" + "=" * 60)
        print("🤖 AI API MONITORING REPORT")
        print("=" * 60)
        
        print(f"\n⏰ Time Window: {report['time_window']}")
        print(f"📅 Generated: {report['generated_at']}")
        
        print("\n📊 SUMMARY:")
        summary = report['summary']
        print(f"   Total Requests: {summary['total_requests']:,}")
        print(f"   Total Tokens: {summary['total_tokens']:,}")
        print(f"   Total Cost: ${summary['total_cost_usd']:.4f}")
        print(f"   Avg Cost/Request: ${summary['avg_cost_per_request']:.6f}")
        print(f"   Error Rate: {summary['error_rate']}%")
        print(f"   Anomaly Rate: {summary['anomaly_rate']}%")
        
        print("\n📈 BY MODEL:")
        for model, stats in report['by_model'].items():
            print(f"   {model}:")
            print(f"      Requests: {stats['requests']:,}")
            print(f"      Tokens: {stats['total_tokens']:,}")
            print(f"      Cost: ${stats['cost_usd']:.4f}")
            print(f"      Latency: avg={stats['avg_latency_ms']}ms, p95={stats['p95_latency_ms']}ms, p99={stats['p99_latency_ms']}ms")
        
        print("\n💰 COST COMPARISON (HolySheep vs OpenAI):")
        comparison = report['cost_comparison']
        print(f"   HolySheep Actual: ${comparison['holysheep_actual']:.4f}")
        print(f"   OpenAI Equivalent: ${comparison['openai_equivalent']:.4f}")
        print(f"   💵 SAVINGS: ${comparison['savings_usd']:.4f} ({comparison['savings_percent']:.1f}%)")
        
        if report['top_anomalies']:
            print("\n🚨 TOP ANOMALIES:")
            for i, anomaly in enumerate(report['top_anomalies'][:5], 1):
                print(f"   {i}. [{anomaly['severity'].upper()}] {anomaly['timestamp']}")
                print(f"      Model: {anomaly['model']}, Type: {anomaly['type']}")
                print(f"      Cost: ${anomaly['cost']:.6f}")
        
        print("\n" + "=" * 60)


============== Usage Example ==============

async def demo_dashboard(): """Demo dashboard với sample data""" dashboard = MonitoringDashboard() # Add sample logs (simulating 24h usage) import random models = ['deepseek-v3.2', 'gemini-2.5-flash', 'gpt-4.1', 'claude-sonnet-4.5'] print("📊 Simulating 24h AI API usage...") for i in range(1000): model = random.choice(models) # Token distribution by model token_ranges = { 'deepseek-v3.2': (500, 2000), 'gemini-2.5-flash': (800, 3000), 'gpt-4.1': (1000, 5000), 'claude-sonnet-4.5': (1000, 4000) } input_tokens = random.randint(*token_ranges.get(model, (1000, 3000))) output_tokens = random.randint(100, 1000) cost = CostCalculator.calculate_cost('holysheep', model, input_tokens, output_tokens) # Random anomaly (5% chance) is_anomaly = random.random() < 0.05 anomaly_type = random.choice(['high_latency', 'token_spike', 'cost_spike']) if is_anomaly else None log = APILogEntry( timestamp=(datetime.utcnow() - timedelta(hours=random.randint(0, 24))).isoformat(), request_id=f"req_{i:06d}", provider='holysheep', model=model, operation='chat', input_tokens=input_tokens, output_tokens=output_tokens, total_tokens=input_tokens + output_tokens, latency_ms=random.uniform(30, 200), cost_usd=cost, is_anomaly=is_anomaly, anomaly_type=anomaly_type, anomaly_severity=random.choice(['low', 'medium', 'high', 'critical']) if is_an