File size: 702 Bytes
570f7bd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from pydantic import BaseModel
from typing import List, Optional, Any, Dict

class NL2SQLRequest(BaseModel):
    query: str
    schema_preview: str
    db_name: Optional[str] = "default"

class TraceModel(BaseModel):
    stage: str
    duration_ms: float
    token_in: int | None = 0
    token_out: int | None = 0
    cost_usd: float | None = 0
    notes: Dict[str, Any] | None = None

class NL2SQLResponse(BaseModel):
    ambiguous: bool = False
    sql: str
    rationale: Optional[str] = None
    traces: List[TraceModel] = []

class ClarifyResponse(BaseModel):
    ambiguous: bool = True
    questions: List[str]

class ErrorResponse(BaseModel):
    error: str
    details: List[str] | None = None