186 lines
5.5 KiB
Python
186 lines
5.5 KiB
Python
from datetime import datetime
|
|
import uuid
|
|
from app.api.routers.request.baseConfig import BaseConfig
|
|
from app.api.routers.request.dbOrm import DBManager
|
|
from typing import List
|
|
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,id:str):
|
|
results = []
|
|
condition = {'id':id}
|
|
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
|
|
|
|
class ProjectInfo:
|
|
def __init__(self) -> None:
|
|
self._tableName = 'projectInfos'
|
|
dbManage.createTable(self._tableName)
|
|
|
|
def add(self,name:str,flag:str):
|
|
record = {
|
|
'prjectName': name,
|
|
'prjFlag': flag
|
|
}
|
|
dbManage.addRecord(self._tableName,record)
|
|
|
|
def projectNames(self)->List[str]:
|
|
records = dbManage.query(self._tableName)
|
|
names = []
|
|
for record in records:
|
|
data:dict = record.dict()
|
|
name = data.get('prjectName')
|
|
if name !='':
|
|
names.append(name)
|
|
return names
|
|
|
|
def prjFalg(self,name:str):
|
|
records = dbManage.query(self._tableName)
|
|
for record in records:
|
|
data:dict = record.dict()
|
|
if data.get('prjectName') == name:
|
|
return data['prjFlag']
|
|
return '' |