You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
2.6 KiB
56 lines
2.6 KiB
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)
|
|
|