nl2sql-copilot / app /schemas.py
Melika Kheirieh
feat(api): expose executor result in NL2SQLResponse and return full result to UI
3ef53b4
raw
history blame contribute delete
804 Bytes
from pydantic import BaseModel
from typing import List, Optional, Any, Dict
class NL2SQLRequest(BaseModel):
query: str
db_id: Optional[str] = None
schema_preview: Optional[str] = None
class Config:
extra = "ignore"
class TraceModel(BaseModel):
stage: str
duration_ms: int
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
sql: Optional[str] = None
rationale: Optional[str] = None
traces: List[Dict[str, Any]] = []
result: Dict[str, Any] = {}
class ClarifyResponse(BaseModel):
ambiguous: bool = True
questions: List[str]
class ErrorResponse(BaseModel):
error: str
details: List[str] | None = None