@@ -96,7 +96,7 @@ def st_feedback(
9696 else :
9797 if success_fail_message :
9898 st .success ("Feedback saved to Trubrics." )
99- return feedback . model_dump ( )
99+ return self . _pydantic_to_dict ( feedback )
100100 else :
101101 user_response = Response (** user_response )
102102 feedback = Feedback (
@@ -108,15 +108,15 @@ def st_feedback(
108108 tags = tags ,
109109 metadata = metadata ,
110110 )
111- return feedback . model_dump ( )
111+ return self . _pydantic_to_dict ( feedback )
112112 elif feedback_type in ("thumbs" , "faces" ):
113113
114114 def _log_feedback_trubrics (user_response , ** kwargs ):
115115 feedback = self .log_feedback (user_response = user_response , ** kwargs )
116116 if success_fail_message :
117117 if feedback :
118118 st .toast ("Feedback saved to [Trubrics](https://trubrics.streamlit.app/)." , icon = "✅" )
119- return feedback . model_dump ( )
119+ return self . _pydantic_to_dict ( feedback )
120120 else :
121121 st .toast ("Error in saving feedback to [Trubrics](https://trubrics.streamlit.app/)." , icon = "❌" )
122122
@@ -147,12 +147,20 @@ def _log_feedback_trubrics(user_response, **kwargs):
147147 tags = tags ,
148148 metadata = metadata ,
149149 )
150- return feedback . model_dump ( )
150+ return self . _pydantic_to_dict ( feedback )
151151 return user_response
152152 else :
153153 raise ValueError ("feedback_type must be one of ['textbox', 'faces', 'thumbs']." )
154154 return None
155155
156+ @staticmethod
157+ def _pydantic_to_dict (feedback : Feedback ) -> dict :
158+ """Support for pydantic v1 and v2."""
159+ try :
160+ return feedback .model_dump ()
161+ except AttributeError :
162+ return feedback .dict ()
163+
156164 @staticmethod
157165 def st_textbox_ui (
158166 type : str = "text-input" , key : Optional [str ] = None , label : Optional [str ] = None
@@ -188,6 +196,7 @@ def clear_session_state():
188196 )
189197 elif type == "text-area" :
190198 title = st .text_area (label = label or "Provide some feedback" , key = f"{ key } _title" )
199+
191200 if title :
192201 st .button ("Save feedback" , on_click = clear_session_state , key = f"{ key } _save_button" )
193202 if st .session_state [f"{ key } _save_button" ]:
0 commit comments