| |
|
| | import time
|
| | import json
|
| | import hashlib
|
| |
|
| |
|
| | from pydantic import BaseModel
|
| |
|
| | class InputHotTopic(BaseModel):
|
| | start_time: str = ""
|
| | end_time: str = ""
|
| | query: str = ""
|
| | keywords: list = []
|
| | top_cluster: int = 5
|
| | prompt: str = ""
|
| | check_relevent: str = ""
|
| | class SessionProcess(object):
|
| |
|
| | def __init__(self):
|
| | self.session = dict()
|
| |
|
| | def hash_session(self, query: InputHotTopic):
|
| | hash_dict = query.dict()
|
| | hash_dict['time'] = int(time.time())
|
| | return hashlib.sha224(json.dumps(hash_dict).encode("utf-8")).hexdigest()
|
| |
|
| | def insert_session(self, data_input):
|
| | print('data_input: ', data_input)
|
| |
|
| |
|
| |
|
| | hash_id = self.hash_session(data_input)
|
| | if hash_id not in self.session:
|
| | self.session[hash_id] = {"status": 0, "created_time": time.time(), "update_time": time.time(),
|
| | "result": {}, "data": data_input}
|
| | return hash_id
|
| |
|
| | def get_info_session(self, hash_id: str):
|
| | if hash_id in self.session:
|
| | return self.session[hash_id]
|
| | return {"status": -2, "result": {}, "meta": {}}
|
| |
|
| | def update_session(self, hash_id: str, result: dict, status: int):
|
| | if hash_id in self.session:
|
| | self.session[hash_id]["status"] = status
|
| | self.session[hash_id]["result"] = result
|
| | self.session[hash_id]["update_time"] = time.time()
|
| | return True
|
| | return False
|
| |
|
| | def delete_session(self, hash_id: str):
|
| | if hash_id in self.session:
|
| | del self.session[hash_id]
|
| | return True
|
| | return False
|
| |
|