File size: 1,189 Bytes
6111b2b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
/**

 * Usage tracking types for API call monitoring and statistics.

 */
export interface UsageEntry {
  id: string;
  date: string;
  provider: string;
  model: string;
  inputTokens: number;
  outputTokens: number;
  totalTokens: number;
  latencyMs: number;
  statusCode: number;
  comboId?: string;
  apiKeyId?: string;
}

export interface UsageStats {
  totalCalls: number;
  totalTokens: number;
  totalInputTokens: number;
  totalOutputTokens: number;
  avgLatencyMs: number;
  errorRate: number;
  byProvider: Record<string, ProviderUsageStats>;
  byModel: Record<string, ModelUsageStats>;
}

export interface ProviderUsageStats {
  calls: number;
  tokens: number;
  errors: number;
  avgLatencyMs: number;
}

export interface ModelUsageStats {
  calls: number;
  inputTokens: number;
  outputTokens: number;
  avgLatencyMs: number;
}

export interface CallLog {
  id: string;
  timestamp: string;
  method: string;
  path: string;
  provider: string;
  model: string;
  statusCode: number;
  latencyMs: number;
  inputTokens: number;
  outputTokens: number;
  error?: string;
  comboId?: string;
  connectionId?: string;
}