Marik1337 commited on
Commit
6321d4d
·
verified ·
1 Parent(s): 6c2fd34

Update utils.py

Browse files
Files changed (1) hide show
  1. utils.py +25 -14
utils.py CHANGED
@@ -1,14 +1,25 @@
1
- from pydantic import BaseModel, Field
2
- from typing import Optional, List, Dict
3
-
4
- class SQLGenerationResult(BaseModel):
5
- sql_query: str = Field(..., description="SQL query to execute")
6
- reasoning: Optional[str] = Field(None, description="Optional explanation of the query")
7
-
8
- class AgentState(BaseModel):
9
- question: str
10
- sql_query: Optional[str] = None
11
- reasoning: Optional[str] = None
12
- rows: Optional[List[Dict]] = None
13
- answer: Optional[str] = None
14
- error: Optional[str] = None
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from pydantic import BaseModel, Field
2
+ from typing import Optional, List, Dict, Literal
3
+
4
+ class SQLGenerationResult(BaseModel):
5
+ sql_query: str = Field(..., description="SQL query to execute")
6
+ reasoning: Optional[str] = Field(None, description="Optional explanation of the query")
7
+
8
+ class AgentState(BaseModel):
9
+ question: str
10
+ sql_query: Optional[str] = None
11
+ reasoning: Optional[str] = None
12
+ rows: Optional[List[Dict]] = None
13
+ answer: Optional[str] = None
14
+ error: Optional[str] = None
15
+ route: Optional[Literal["sql", "chat"]] = None
16
+
17
+ class RouteDecision(BaseModel):
18
+ route: Literal["sql", "chat"] = Field(
19
+ ...,
20
+ description="Routing decision. Use 'sql' when the user's question requires querying the database. Use 'chat' for greetings, small talk, or general questions."
21
+ )
22
+ answer: Optional[str] = Field(
23
+ default=None,
24
+ description="Plain-text answer to return when route='chat'. Leave null when route='sql'."
25
+ )