text2sql-ai-agent / models /semantic_layer.py
jaymeen1405's picture
Upload 39 files
58478b5 verified
Raw
History Blame Contribute Delete
792 Bytes
from pydantic import BaseModel
class Dimension(BaseModel):
name: str
column: str
description: str
class Measure(BaseModel):
name: str
column: str
aggregation: str
description: str
class Entity(BaseModel):
table_name: str
primary_key: str | None
dimensions: list[Dimension]
measures: list[Measure]
date_rules: list[str]
filter_rules: list[str]
class JoinRelationship(BaseModel):
source_table: str
source_column: str
target_table: str
target_column: str
relationship_type: str
class SemanticLayer(BaseModel):
entities: list[Entity]
joins: list[JoinRelationship]
business_rules: list[str]
kpis: list[str]
currency_rules: list[str]
data_quality_notes: list[str]
sql_examples: list[str]