| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- from typing import Any, Dict, List, Optional
- from pydantic import BaseModel, Field
- class CardFilter(BaseModel):
- """Metadata describing a filter bound to a BI card."""
- card_id: str
- filter_id: str
- type: str
- where_clause: str
- default_value: Optional[str] = None
- options: List[str] = Field(default_factory=list)
- class CardInfo(BaseModel):
- card_id: str
- card_name: str
- card_desc: Optional[str] = None
- dataset_id: str
- sql_select: str
- sql_where: Optional[Dict[str, Any]] = None
- sql_groupby: Optional[str] = None
- filters: List[CardFilter] = Field(default_factory=list)
- class DashboardInfo(BaseModel):
- dashboard_id: str
- dashboard_name: str
- dashboard_desc: Optional[str] = None
- folder_path: Optional[str] = None
- cards: List[CardInfo] = Field(default_factory=list)
- class QARequest(BaseModel):
- request_id: str
- dashboard_id: str
- card_ids: List[str]
- bbk_id: str
- user_token: Optional[str] = None
- user_request: Optional[str] = None
- class QAPair(BaseModel):
- dashboard_id: str
- dashboard_name: str
- dashboard_desc: Optional[str]
- card_id: str
- card_name: str
- card_desc: Optional[str]
- dataset_id: str
- question: str
- answer: str = ""
- question_with_slot: str = ""
- filter_ids: List[str] = Field(default_factory=list)
- filters: List[str] = Field(default_factory=list)
- defs: List[str] = Field(default_factory=list)
- class QAResponseBody(BaseModel):
- dashboard_id: str
- bbk_id: str
- card_ids: List[str]
- qa_pairs: List[QAPair]
- class QAResponse(BaseModel):
- returnCode: str = "SUCCESS"
- body: QAResponseBody
|