File size: 1,461 Bytes
001f1df
 
 
 
 
6b3d40b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7c53dcc
 
 
 
 
 
6b3d40b
 
 
 
 
 
 
 
 
 
 
 
7c53dcc
6b3d40b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
59
60
61
62
63
64
65
66
67
68
69
70
71
export interface ChatTurn {
  role: "user" | "assistant";
  content: string;
}

export interface Bid {
  model_key: string;
  model_name: string;
  confidence: number;
  estimated_difficulty: number;
  reason: string;
  historical_accuracy: number;
  cost_factor: number;
  auction_score: number;
  error: string | null;
}

export interface Verification {
  score: number;
  passed: boolean;
  feedback: string;
}

export interface Usage {
  model_key: string;
  model_name: string;
  stage: "bid" | "draft" | "verify" | "escalate";
  tokens_in: number;
  tokens_out: number;
  cost_usd: number;
  latency_ms: number;
}

export interface SourceImage {
  url: string;
  description: string;
  source_url: string | null;
}

export interface RunResult {
  id: string;
  query: string;
  answer: string;
  answered_by: string;
  tier: 1 | 2;
  escalated: boolean;
  escalation_reason: string | null;
  bids: Bid[];
  winner: string | null;
  draft_answer: string | null;
  verification: Verification | null;
  images?: SourceImage[];
  usages: Usage[];
  total_cost_usd: number;
  baseline_cost_usd: number;
  latency_ms: number;
  created_at: string;
}

export interface MetricsSummary {
  total_queries: number;
  avg_cost_usd: number;
  total_cost_usd: number;
  total_saved_usd: number;
  avg_latency_ms: number;
  escalation_rate: number;
  tier1_resolution_rate: number;
  wins_by_model: Record<string, number>;
  accuracy_by_model: Record<string, number>;
}