from datetime import datetime import uuid from app.api.routers.request.baseConfig import BaseConfig from app.api.routers.request.dbOrm import DBManager dbManage = DBManager() class conversations: def __init__(self) -> None: self._tableName = 'conversations' dbManage.createTable(self._tableName) def gets(self,user_id:str): records = dbManage.query(self._tableName,user_id = user_id) datas = [] for record in records: datas.append(record) return datas def get(self, id:str): records = dbManage.query(self._tableName, id=id) if len(records) >0: return records[0] return None def add(self,id:str, user_id:str, name:str): template = BaseConfig().ConversationCfg() template['id'] = id template['user_id'] = user_id template['name'] = name template['created_at'] = 1724399038 dbManage.addRecord(self._tableName,template) def delete(self,id:str): dbManage.delete(self._tableName,id=id) def rename(self,id:str,name:str): data = {'name':name} dbManage.update(self._tableName,data,id=id) def query(self,**condition): results = [] records = dbManage.query(self._tableName,**condition) for record in records: results.append(record.dict()) return results class user: def __init__(self) -> None: self._tableName = 'user' dbManage.createTable(self._tableName) def gets(self): return dbManage.query(self._tableName) def get(self,id:str): return dbManage.query(self._tableName,id = id) def add(self,id:str): info = { 'id':id, 'createtime': datetime.now().strftime("%Y-%m-%d %H:%M:%S") } dbManage.addRecord(self._tableName,info) def delete(self,id:str): dbManage.delete(self._tableName,id = id) class userMng: userObj = user() @classmethod def findNoExistCreate(cls,user_id:str): userInfo = cls.userObj.get(user_id) if len(userInfo) == 0: cls.userObj.add(user_id) def remove(cls,user_id:str): cls.userObj.delete(user_id) class parameter: def __init__(self) -> None: self._tableName = 'parameters' dbManage.createTable(self._tableName) def get(self,user_id:str): records = dbManage.query(self._tableName,user_id = user_id) data = {} for record in records: key = record['name'] value = record['value'] data[key] = value return data def set(self,user_id:str): dbManage.addRecord(self._tableName,{}) def delete(self,user_id:str): dbManage.delete(self._tableName,user_id = user_id) class message: def __init__(self) -> None: self._tableName = 'messages' dbManage.createTable(self._tableName) def gets(self,user_id:str,conversation_id:str): records = dbManage.query(self._tableName,user_id = user_id,conversation_id = conversation_id) datas = [] for record in records: datas.append(record) return datas def add(self,user_id:str,conversation_id:str,query:str,answer:str): template = BaseConfig.MessageCfg() template['id'] = str(uuid.uuid4()) template['user_id'] = user_id template['conversation_id'] = conversation_id template['query'] = query template['answer'] = answer dbManage.addRecord(self._tableName,template) def delete(self,user_id:str): dbManage.delete(self._tableName,user_id = user_id) def query(self,**condition): results = [] records = dbManage.query(self._tableName,**condition) for record in records: results.append(record.dict()) return results class feedback: def __init__(self) -> None: self._tableName = 'feedbacks' dbManage.createTable(self._tableName) def add(self,message_id:str,query:str,answer:str,rating:str): record = { 'message_id': message_id, 'query': query, 'answer': answer, 'rating': rating, } dbManage.addRecord(self._tableName,record) def delete(self,message_id:str): cond = {'message_id':message_id} dbManage.delete(self._tableName,**cond) def query(self,message_id:str): cond = {'message_id':message_id} records = dbManage.query(self._tableName,**cond) if len(records) > 0: return records[0].dict() return None