import uuid from module_admin.entity.vo.aichat_vo import * from module_admin.dao.aichat_dao import * from module_admin.entity.vo.user_vo import CurrentUserInfoServiceResponse from datetime import datetime, timedelta class AiChatService: """ 智能问答服务层 """ @classmethod def get_ai_session_list_services(cls, result_db: Session, session_id: str, current_user: Optional[CurrentUserInfoServiceResponse] = None): ai_session_list = AiChatDao.get_ai_session_list(result_db, session_id, current_user.user.user_id) # 查询最新的20条 return ai_session_list @classmethod def get_ai_chat_list_services(cls, result_db: Session, session_id: str, current_user: Optional[CurrentUserInfoServiceResponse] = None): ai_session_list = AiChatDao.get_ai_chat_list(result_db, session_id, current_user.user.user_id) # 查询最新的20条 return ai_session_list @classmethod def delete_chat_session(cls, result_db: Session, session_id: str, current_user: Optional[CurrentUserInfoServiceResponse] = None): AiChatDao.delete_chat_session(result_db, session_id, current_user.user.user_id) result_db.commit() result = dict(is_success=True, message='删除成功') return CrudChatModel(**result) @classmethod def add_chat(cls, result_db: Session, add_chat: AiChatModel, current_user: Optional[CurrentUserInfoServiceResponse] = None): chat_session = AiChatDao.get_ai_chat_by_id(add_chat.session_id, result_db, current_user.user.user_id) add_chat.user = current_user.user.user_id if add_chat.time is None: add_chat.time = datetime.now().strftime("%Y-%m-%d %H:%M:%S") if chat_session is None: AiChatDao.add_ai_chat_session(add_chat.session_id, add_chat.session_name, add_chat.time, result_db, current_user.user.user_id) chat_history = AiChatHistory(**add_chat.dict()) chat_history.chat_id = uuid.uuid4() AiChatDao.add_ai_chat_history(chat_history, result_db) result_db.commit() result = dict(is_success=True, message='操作成功') return CrudChatModel(**result) @classmethod def update_chat(cls, result_db: Session, update_chat: AiChatModel): AiChatDao.update_ai_chat_history(update_chat, result_db) result_db.commit() result = dict(is_success=True, message='操作成功') return CrudChatModel(**result)