fix many bug

This commit is contained in:
Cai
2025-09-24 11:29:31 +08:00
parent 6aac420062
commit 07cf2363ab
21 changed files with 551 additions and 1684 deletions

View File

@@ -25,6 +25,12 @@ class ASEngineClient:
# 存储路由和对应的回调函数
self.routes: Dict[str, Dict[str, Callable]] = {}
self._on_connect_callback = None
self._on_connect_callback_entry=None
self._on_connect_callback_initData=None
# 注册基础事件处理函数
self._register_base_events()
@@ -36,7 +42,9 @@ class ASEngineClient:
self.connected = True
self.sid = self.sio.get_sid(namespace=self.namespace)
print(f"Connected to server. SID: {self.sid}")
if self._on_connect_callback is not None:
self._on_connect_callback(self._on_connect_callback_entry, self._on_connect_callback_initData)
# 断开连接事件
@self.sio.on('disconnect', namespace=self.namespace)
def on_disconnect():
@@ -55,6 +63,14 @@ class ASEngineClient:
def on_response(data):
print(f"Received response: {data}")
def register_on_connect_entry(self, callback: Callable, entry: Any, init_data: Any)->bool:
if not callable(callback):
return False
self._on_connect_callback = callback
self._on_connect_callback_entry=entry
self._on_connect_callback_initData=init_data
def register_route_with_entry(self, route: str,
callback: Optional[Callable] = None,
entry: Any = None,
@@ -138,7 +154,8 @@ class ASEngineClient:
# 等待连接建立
start_time = time.time()
while not self.connected and (time.time() - start_time) < timeout:
time.sleep(0.1)
print(f"Connecting To {self.server_url}")
time.sleep(0.2)
return self.connected
except Exception as e:
print(f"Connection failed: {e}")
@@ -264,8 +281,9 @@ class ASEngineClient:
class HSAEngineClient(ASEngineClient):
def __init__(self, server_url: str, namespace: str, id:str):
def __init__(self, server_url: str, namespace: str, id:str, chatmanager):
super().__init__(server_url, namespace, id)
self.chatmanager = chatmanager
def loadmarkdown(self, fmd, fmdp, fsp):
self.send_text('markdown-in', fmd, self.id)
self.send_text('markdown-prompt-in', fmdp, self.id)

View File

@@ -29,11 +29,25 @@ class ChatManager:
_procs: Dict[str, ProcRecord] = {}
_lock = threading.RLock()
def __init__(self):
self.chapter_chain_now = -1
self.ase_client = None
self.app = None
self.socketio = None
self.user_uuid = None
self.raw_markdown = None
self.raw_markdown_prompts = None
self.raw_score_prompts = None
self.material_id = None
self.chapter_name = None
self.lesson_name = None
self.chapter_chain = None
self.function_manager = FunctionManager()
self.bb = None
self.chat_historys = None
pass
def init(self,user_uuid,ase_client,raw_markdown,raw_markdown_prompts,raw_score_prompts,material_id,chapter_name, lesson_name, max_iter = 5, app=None, socketio=None):
self.chapter_chain_now = -1
self.ase_client = ase_client
self.app = app
self.socketio = socketio
@@ -45,7 +59,6 @@ class ChatManager:
self.chapter_name = chapter_name
self.lesson_name = lesson_name
self.chapter_chain = load_chapters(raw_markdown, raw_markdown_prompts, raw_score_prompts)
self.function_manager = FunctionManager()
self.bb = None
self.chat_historys = []
@@ -61,15 +74,16 @@ class ChatManager:
def next_chapter(self):
assert self.chapter_chain_now + 1 < len(self.chapter_chain), "chapter_chain_now out of range"
self.chapter_chain_now += 1
self.bb.next_chapter()
self.focus_chapter(self.chapter_chain_now)
def focus_chapter(self, chapter_index):
assert chapter_index < len(self.chapter_chain), "chapter_index out of range"
self.chapter_chain_now = chapter_index
self.chapter_chain[chapter_index].Focus()
def load_next_chapter(self):
print(f"now load next chapter markdown {self.chapter_chain_now}")
self.ase_client.loadmarkdown(self.chapter_chain[self.chapter_chain_now].chapter, self.chapter_chain[self.chapter_chain_now].chapter_prompt, self.chapter_chain[self.chapter_chain_now].score_prompt)