Преглед изворни кода

Update dialogue_manager: fix DialogueStateCache: disable database writing if needed

StrayWarrior пре 2 недеља
родитељ
комит
ab3c31ebc8
1 измењених фајлова са 5 додато и 3 уклоњено
  1. 5 3
      dialogue_manager.py

+ 5 - 3
dialogue_manager.py

@@ -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"