diff --git a/Html/apps/extension_ase/ase_client/client.py b/Html/apps/extension_ase/ase_client/client.py
index 967c885..a8eed33 100644
--- a/Html/apps/extension_ase/ase_client/client.py
+++ b/Html/apps/extension_ase/ase_client/client.py
@@ -433,26 +433,37 @@ class HSAEngineClient(ASEngineClient):
super().__init__(server_url, namespace, id)
self.chatmanager = chatmanager
def loadmarkdown(self, fmd, fmdp, fsp):
- with self.chatmanager.app.app_context():
- now = time.time()
- # 并行发送三个消息,获取事件对象和ack_id
- event1, ack_id1 = self.send_text('markdown-in', fmd, self.id, wait_for_ack=True, return_event=True)
- event2, ack_id2 = self.send_text('markdown-prompt-in', fmdp, self.id, wait_for_ack=True, return_event=True)
- event3, ack_id3 = self.send_text('score-prompt-in', fsp, self.id, wait_for_ack=True, return_event=True)
- self.chatmanager.app.logger.info(f"Load markdown time cost: {time.time() - now}")
- now = time.time()
- # 等待所有事件完成
- timeout = 5 # 超时时间
- success1 = event1.wait(timeout=timeout)
- success2 = event2.wait(timeout=timeout)
- success3 = event3.wait(timeout=timeout)
- self.chatmanager.app.logger.info(f"Wait markdown time cost: {time.time() - now}")
- now = time.time()
- # 清理ACK事件
- if ack_id1 in self.ack_events:
- del self.ack_events[ack_id1]
- if ack_id2 in self.ack_events:
- del self.ack_events[ack_id2]
- if ack_id3 in self.ack_events:
- del self.ack_events[ack_id3]
- return success1 and success2 and success3
+ # 保存app实例以便在回调中使用
+ app = self.chatmanager.app
+
+ def log_info(message):
+ """安全的日志记录函数,确保在任何线程中都能使用"""
+ try:
+ with app.app_context():
+ app.logger.info(message)
+ except Exception as e:
+ print(f"Log error: {e}")
+ print(f"Message: {message}")
+
+ now = time.time()
+ # 并行发送三个消息,获取事件对象和ack_id
+ event1, ack_id1 = self.send_text('markdown-in', fmd, self.id, wait_for_ack=True, return_event=True)
+ event2, ack_id2 = self.send_text('markdown-prompt-in', fmdp, self.id, wait_for_ack=True, return_event=True)
+ event3, ack_id3 = self.send_text('score-prompt-in', fsp, self.id, wait_for_ack=True, return_event=True)
+ log_info(f"Load markdown time cost: {time.time() - now}")
+ now = time.time()
+ # 等待所有事件完成
+ timeout = 5 # 超时时间
+ success1 = event1.wait(timeout=timeout)
+ success2 = event2.wait(timeout=timeout)
+ success3 = event3.wait(timeout=timeout)
+ log_info(f"Wait markdown time cost: {time.time() - now}")
+ now = time.time()
+ # 清理ACK事件
+ if ack_id1 in self.ack_events:
+ del self.ack_events[ack_id1]
+ if ack_id2 in self.ack_events:
+ del self.ack_events[ack_id2]
+ if ack_id3 in self.ack_events:
+ del self.ack_events[ack_id3]
+ return success1 and success2 and success3