Merge branch 'main' of https://gitee.com/CakeCN/code-agent
This commit is contained in:
@@ -33,7 +33,7 @@ class ChatManager:
|
|||||||
self.raw_score_prompts = raw_score_prompts
|
self.raw_score_prompts = raw_score_prompts
|
||||||
self.chapter_chain = load_chapters(raw_markdown, raw_markdown_prompts, raw_score_prompts)
|
self.chapter_chain = load_chapters(raw_markdown, raw_markdown_prompts, raw_score_prompts)
|
||||||
self.function_manager = FunctionManager()
|
self.function_manager = FunctionManager()
|
||||||
|
self.bb = None
|
||||||
|
|
||||||
def next_chapter(self):
|
def next_chapter(self):
|
||||||
assert self.chapter_chain_now + 1 < len(self.chapter_chain), "chapter_chain_now out of range"
|
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.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)
|
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):
|
def message_pass(self, messagetype, message):
|
||||||
print("message_pass", self.user_uuid, messagetype, message)
|
print("message_pass", self.user_uuid, messagetype, message)
|
||||||
|
|||||||
@@ -13,14 +13,12 @@ def realtime_response(config: dict, realtime_action: dict) -> None:
|
|||||||
"""
|
"""
|
||||||
业务:根据 VSCode 上报的动作,更新 Backboard(黑板)状态。
|
业务:根据 VSCode 上报的动作,更新 Backboard(黑板)状态。
|
||||||
"""
|
"""
|
||||||
# 依赖从 app.extensions 取,避免循环导入
|
|
||||||
username2uuid = current_app.extensions["username2uuid"]
|
|
||||||
backboard_manager = current_app.extensions["backboard_manager"]
|
backboard_manager = current_app.extensions["backboard_manager"]
|
||||||
|
user_uuid = config["user_uuid"]
|
||||||
|
chatmanager = current_app.extensions["user_uuid2chatmanager"][user_uuid]
|
||||||
|
|
||||||
user_id = config["user_id"]
|
|
||||||
folder_path = config["path"] # 如需 WSL 转换可在生成 config 时处理
|
bb = backboard_manager.get_backboard(user_uuid)
|
||||||
useruuid = username2uuid[user_id]
|
|
||||||
bb = backboard_manager.get_backboard(useruuid)
|
|
||||||
assert isinstance(bb, Backboard)
|
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 config: %s", config)
|
||||||
current_app.logger.debug("vscode action: %s", realtime_action)
|
current_app.logger.debug("vscode action: %s", realtime_action)
|
||||||
|
|
||||||
|
chatmanager.upload_bb()
|
||||||
@@ -63,7 +63,12 @@ class AgentNamespace(Namespace):
|
|||||||
entry=self,
|
entry=self,
|
||||||
init_data={'room': user_uuid}
|
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)
|
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)
|
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]
|
chatmanager = user_uuid2chatmanager[user_uuid]
|
||||||
@@ -73,7 +78,7 @@ class AgentNamespace(Namespace):
|
|||||||
|
|
||||||
join_room(user_uuid, namespace='/agent') # 将该用户加入以user_id为名的room
|
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}')
|
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)
|
chatmanager.focus_chapter(0)
|
||||||
|
|
||||||
def on_language(self, language):
|
def on_language(self, language):
|
||||||
@@ -84,10 +89,7 @@ class AgentNamespace(Namespace):
|
|||||||
print(f"Message from client: {data}")
|
print(f"Message from client: {data}")
|
||||||
ex = current_app.extensions
|
ex = current_app.extensions
|
||||||
agent_manager = ex["agent_manager"]
|
agent_manager = ex["agent_manager"]
|
||||||
backboard_manager = ex["backboard_manager"]
|
|
||||||
uuid = session.get('user_uuid')
|
uuid = session.get('user_uuid')
|
||||||
uuid2username = ex["uuid2username"]
|
|
||||||
user_id = uuid2username[uuid]
|
|
||||||
user_uuid2ase_client = ex["user_uuid2ase_client"]
|
user_uuid2ase_client = ex["user_uuid2ase_client"]
|
||||||
if (type(data)==str):
|
if (type(data)==str):
|
||||||
data = json.loads(data)
|
data = json.loads(data)
|
||||||
@@ -107,7 +109,8 @@ class AgentNamespace(Namespace):
|
|||||||
def receive_ase_dialog(client_entry: HSAEngineClient, namespace_entry: Namespace, data, init_data):
|
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')
|
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')
|
namespace_entry.emit('request_function', data['data'], room=init_data['room'], namespace='/agent')
|
||||||
|
|
||||||
def on_initiative(self,data):
|
def on_initiative(self,data):
|
||||||
|
|||||||
Reference in New Issue
Block a user