11import datetime
2- from typing import List , Optional
2+ from typing import List , Optional , Union
33
44import orjson
55import sqlparse
@@ -62,6 +62,7 @@ def list_recent_questions(session: SessionDep, current_user: CurrentUser, dataso
6262 )
6363 return [record [0 ] for record in chat_records ] if chat_records else []
6464
65+
6566def rename_chat_with_user (session : SessionDep , current_user : CurrentUser , rename_object : RenameChat ) -> str :
6667 chat = session .get (Chat , rename_object .id )
6768 if not chat :
@@ -78,6 +79,7 @@ def rename_chat_with_user(session: SessionDep, current_user: CurrentUser, rename
7879 session .commit ()
7980 return brief
8081
82+
8183def rename_chat (session : SessionDep , rename_object : RenameChat ) -> str :
8284 chat = session .get (Chat , rename_object .id )
8385 if not chat :
@@ -104,6 +106,7 @@ def delete_chat(session, chart_id) -> str:
104106
105107 return f'Chat with id { chart_id } has been deleted'
106108
109+
107110def delete_chat_with_user (session , current_user : CurrentUser , chart_id ) -> str :
108111 chat = session .query (Chat ).filter (Chat .id == chart_id ).first ()
109112 if not chat :
@@ -220,6 +223,7 @@ def get_chat_chart_config(session: SessionDep, chat_record_id: int):
220223 pass
221224 return {}
222225
226+
223227def get_chart_data_with_user (session : SessionDep , current_user : CurrentUser , chat_record_id : int ):
224228 stmt = select (ChatRecord .data ).where (and_ (ChatRecord .id == chat_record_id , ChatRecord .create_by == current_user .id ))
225229 res = session .execute (stmt )
@@ -230,6 +234,7 @@ def get_chart_data_with_user(session: SessionDep, current_user: CurrentUser, cha
230234 pass
231235 return {}
232236
237+
233238def get_chat_chart_data (session : SessionDep , chat_record_id : int ):
234239 stmt = select (ChatRecord .data ).where (and_ (ChatRecord .id == chat_record_id ))
235240 res = session .execute (stmt )
@@ -240,8 +245,10 @@ def get_chat_chart_data(session: SessionDep, chat_record_id: int):
240245 pass
241246 return {}
242247
248+
243249def get_chat_predict_data_with_user (session : SessionDep , current_user : CurrentUser , chat_record_id : int ):
244- stmt = select (ChatRecord .predict_data ).where (and_ (ChatRecord .id == chat_record_id , ChatRecord .create_by == current_user .id ))
250+ stmt = select (ChatRecord .predict_data ).where (
251+ and_ (ChatRecord .id == chat_record_id , ChatRecord .create_by == current_user .id ))
245252 res = session .execute (stmt )
246253 for row in res :
247254 try :
@@ -250,6 +257,7 @@ def get_chat_predict_data_with_user(session: SessionDep, current_user: CurrentUs
250257 pass
251258 return {}
252259
260+
253261def get_chat_predict_data (session : SessionDep , chat_record_id : int ):
254262 stmt = select (ChatRecord .predict_data ).where (and_ (ChatRecord .id == chat_record_id ))
255263 res = session .execute (stmt )
@@ -607,10 +615,11 @@ def save_analysis_predict_record(session: SessionDep, base_record: ChatRecord, a
607615 return result
608616
609617
610- def start_log (session : SessionDep , ai_modal_id : int , ai_modal_name : str , operate : OperationEnum , record_id : int ,
611- full_message : list [dict ]) -> ChatLog :
618+ def start_log (session : SessionDep , ai_modal_id : int = None , ai_modal_name : str = None , operate : OperationEnum = None ,
619+ record_id : int = None , full_message : Union [list [dict ], dict ] = None ,
620+ local_operation : bool = False ) -> ChatLog :
612621 log = ChatLog (type = TypeEnum .CHAT , operate = operate , pid = record_id , ai_modal_id = ai_modal_id , base_modal = ai_modal_name ,
613- messages = full_message , start_time = datetime .datetime .now ())
622+ messages = full_message , start_time = datetime .datetime .now (), local_operation = local_operation )
614623
615624 result = ChatLog (** log .model_dump ())
616625
@@ -623,7 +632,8 @@ def start_log(session: SessionDep, ai_modal_id: int, ai_modal_name: str, operate
623632 return result
624633
625634
626- def end_log (session : SessionDep , log : ChatLog , full_message : list [dict ], reasoning_content : str = None ,
635+ def end_log (session : SessionDep , log : ChatLog , full_message : Union [list [dict ], dict , str ],
636+ reasoning_content : str = None ,
627637 token_usage = None ) -> ChatLog :
628638 if token_usage is None :
629639 token_usage = {}
@@ -867,6 +877,8 @@ def save_error_message(session: SessionDep, record_id: int, message: str) -> Cha
867877
868878 session .commit ()
869879
880+ # todo log error finish
881+
870882 return result
871883
872884
0 commit comments