diff --git a/Html/apps/extension_ase/ase_client/manager.py b/Html/apps/extension_ase/ase_client/manager.py
index 08adf3f..e48018e 100644
--- a/Html/apps/extension_ase/ase_client/manager.py
+++ b/Html/apps/extension_ase/ase_client/manager.py
@@ -33,7 +33,7 @@ class ChatManager:
self.raw_score_prompts = raw_score_prompts
self.chapter_chain = load_chapters(raw_markdown, raw_markdown_prompts, raw_score_prompts)
self.function_manager = FunctionManager()
-
+ self.bb = None
def next_chapter(self):
assert self.chapter_chain_now + 1 < len(self.chapter_chain), "chapter_chain_now out of range"
@@ -46,6 +46,8 @@ class ChatManager:
self.chapter_chain[chapter_index].Focus()
self.ase_client.loadmarkdown(self.chapter_chain[chapter_index].chapter, self.chapter_chain[chapter_index].chapter_prompt, self.chapter_chain[chapter_index].score_prompt)
+ def upload_bb(self):
+ self.ase_client.send_text('backboard-in', self.bb.get_info_prompt())
def message_pass(self, messagetype, message):
print("message_pass", self.user_uuid, messagetype, message)
diff --git a/Html/apps/services/backboard_service.py b/Html/apps/services/backboard_service.py
index cd36840..60d99ad 100644
--- a/Html/apps/services/backboard_service.py
+++ b/Html/apps/services/backboard_service.py
@@ -13,12 +13,10 @@ def realtime_response(config: dict, realtime_action: dict) -> None:
"""
业务:根据 VSCode 上报的动作,更新 Backboard(黑板)状态。
"""
- uuid2username = current_app.extensions["uuid2username"]
backboard_manager = current_app.extensions["backboard_manager"]
-
user_uuid = config["user_uuid"]
- folder_path = config["path"]
- username = uuid2username[user_uuid]
+ chatmanager = current_app.extensions["user_uuid2chatmanager"][user_uuid]
+
bb = backboard_manager.get_backboard(user_uuid)
assert isinstance(bb, Backboard)
@@ -57,3 +55,5 @@ def realtime_response(config: dict, realtime_action: dict) -> None:
# 如需调试输出,可在这里统一记录日志
current_app.logger.debug("vscode config: %s", config)
current_app.logger.debug("vscode action: %s", realtime_action)
+
+ chatmanager.upload_bb()
\ No newline at end of file
diff --git a/Html/apps/sockets/namespaces.py b/Html/apps/sockets/namespaces.py
index 0a4ed93..050ee39 100644
--- a/Html/apps/sockets/namespaces.py
+++ b/Html/apps/sockets/namespaces.py
@@ -63,7 +63,12 @@ class AgentNamespace(Namespace):
entry=self,
init_data={'room': user_uuid}
)
-
+ user_uuid2ase_client[user_uuid].register_route_with_entry(
+ route='judge',
+ callback=self.receive_ase_judge,
+ entry=self,
+ init_data={'room': user_uuid}
+ )
fmd,fmdp,fsp = load_full_markdown_file(course_id, chapter_name, lesson_name)
user_uuid2chatmanager[user_uuid] = ChatManager(user_uuid, user_uuid2ase_client[user_uuid], fmd, fmdp, fsp, max_iter=5, app=current_app, socketio=self)
chatmanager = user_uuid2chatmanager[user_uuid]
@@ -73,7 +78,7 @@ class AgentNamespace(Namespace):
join_room(user_uuid, namespace='/agent') # 将该用户加入以user_id为名的room
backboard_manager.add_backboard(user_uuid, user_id, course_id, lesson_name, root_path=f'../../study/{user_id}/{course_id}/{chapter_name}/{lesson_name}')
-
+ chatmanager.bb = backboard_manager.get_backboard(user_uuid)
chatmanager.focus_chapter(0)
def on_language(self, language):
@@ -84,10 +89,7 @@ class AgentNamespace(Namespace):
print(f"Message from client: {data}")
ex = current_app.extensions
agent_manager = ex["agent_manager"]
- backboard_manager = ex["backboard_manager"]
uuid = session.get('user_uuid')
- uuid2username = ex["uuid2username"]
- user_id = uuid2username[uuid]
user_uuid2ase_client = ex["user_uuid2ase_client"]
if (type(data)==str):
data = json.loads(data)
@@ -107,7 +109,8 @@ class AgentNamespace(Namespace):
def receive_ase_dialog(client_entry: HSAEngineClient, namespace_entry: Namespace, data, init_data):
namespace_entry.emit('message', data['data'], room=init_data['room'], namespace='/agent')
- def receive_ase_function(client_entry: HSAEngineClient, namespace_entry: Namespace, data, init_data):
+ def receive_ase_judge(client_entry: HSAEngineClient, namespace_entry: Namespace, data, init_data):
+ print("receive_ase_judge", data)
namespace_entry.emit('request_function', data['data'], room=init_data['room'], namespace='/agent')
def on_initiative(self,data):