|
@@ -56,9 +56,9 @@ class TimeContext(Enum):
|
|
|
|
|
|
class DialogueStateCache:
|
|
|
def __init__(self):
|
|
|
- config = configs.get()
|
|
|
- self.db = MySQLManager(config['storage']['agent_state']['mysql'])
|
|
|
- self.table = config['storage']['agent_state']['table']
|
|
|
+ self.config = configs.get()
|
|
|
+ self.db = MySQLManager(self.config['storage']['agent_state']['mysql'])
|
|
|
+ self.table = self.config['storage']['agent_state']['table']
|
|
|
|
|
|
def get_state(self, staff_id: str, user_id: str) -> Tuple[DialogueState, DialogueState]:
|
|
|
query = f"SELECT current_state, previous_state FROM {self.table} WHERE staff_id=%s AND user_id=%s"
|
|
@@ -74,6 +74,8 @@ class DialogueStateCache:
|
|
|
return state, previous_state
|
|
|
|
|
|
def set_state(self, staff_id: str, user_id: str, state: DialogueState, previous_state: DialogueState):
|
|
|
+ if self.config.get('debug_flags', {}).get('disable_database_write', False):
|
|
|
+ return
|
|
|
query = f"INSERT INTO {self.table} (staff_id, user_id, current_state, previous_state)" \
|
|
|
f" VALUES (%s, %s, %s, %s) " \
|
|
|
f"ON DUPLICATE KEY UPDATE current_state=%s, previous_state=%s"
|