@@ -29,10 +29,11 @@ class PayloadType(StrEnum):
2929 ANSWER_WITH_SOURCES = "answer_with_sources"
3030 DISAMBIGUATION_REQUEST = "disambiguation_request"
3131 PROCESSING_UPDATE = "processing_update"
32- QUESTION = "question "
32+ USER_INPUT = "user_input "
3333
3434
3535class ColumnFilterPair (BaseModel ):
36+ fqn : str
3637 column : str
3738 filter_value : str | None = Field (default = None )
3839
@@ -57,6 +58,32 @@ def __init__(self, **kwargs):
5758 self .body = self .Body (** kwargs )
5859
5960
61+ request = DismabiguationRequestsPayload (
62+ disambiguation_requests = [
63+ {
64+ "question" : "Which of the following do you mean?" ,
65+ "choices" : [
66+ {"fqn" : "<fqn>" , "column" : "product_name" , "filter_value" : "Road Bike" },
67+ {
68+ "fqn" : "<fqn>" ,
69+ "column" : "product_name" ,
70+ "filter_value" : "Mountain Bike" ,
71+ },
72+ ],
73+ },
74+ {
75+ "question" : "Do you mean total sales by volume or number of customers?" ,
76+ "choices" : [
77+ {"fqn" : "<fqn>" , "column" : "sales_volume" , "filter_value" : None },
78+ {"fqn" : "<fqn>" , "column" : "customer_count" , "filter_value" : None },
79+ ],
80+ },
81+ ]
82+ )
83+
84+ print (request .model_dump ())
85+
86+
6087class AnswerWithSourcesPayload (PayloadBase ):
6188 class Body (BaseModel ):
6289 class Source (BaseModel ):
@@ -94,7 +121,7 @@ def __init__(self, **kwargs):
94121 self .body = self .Body (** kwargs )
95122
96123
97- class QuestionPayload (PayloadBase ):
124+ class UserInputPayload (PayloadBase ):
98125 class Body (BaseModel ):
99126 question : str
100127 injected_parameters : dict = Field (default_factory = dict )
@@ -111,7 +138,7 @@ def add_defaults(cls, values):
111138 values ["injected_parameters" ] = {** defaults , ** injected }
112139 return values
113140
114- payload_type : Literal [PayloadType .QUESTION ] = PayloadType .QUESTION
141+ payload_type : Literal [PayloadType .USER_INPUT ] = PayloadType .USER_INPUT
115142 payload_source : Literal [PayloadSource .USER ] = PayloadSource .USER
116143 body : Body | None = Field (default = None )
117144
@@ -122,6 +149,6 @@ def __init__(self, **kwargs):
122149
123150
124151class InteractionPayload (RootModel ):
125- root : QuestionPayload | ProcessingUpdatePayload | DismabiguationRequestsPayload | AnswerWithSourcesPayload = Field (
152+ root : UserInputPayload | ProcessingUpdatePayload | DismabiguationRequestsPayload | AnswerWithSourcesPayload = Field (
126153 ..., discriminator = "payload_type"
127154 )
0 commit comments