From 0dc41bc839c0596534fe0af8ef8aaba2cbbbd25d Mon Sep 17 00:00:00 2001 From: Windpicker-owo <3431391539@qq.com> Date: Wed, 26 Nov 2025 21:38:46 +0800 Subject: [PATCH] =?UTF-8?q?refactor(emoji=5Fmanager):=20=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E5=BC=82=E6=AD=A5=E4=BB=BB=E5=8A=A1=E5=A4=84=E7=90=86=E8=A1=A8?= =?UTF-8?q?=E6=83=85=E6=8F=8F=E8=BF=B0=E7=94=9F=E6=88=90=EF=BC=8C=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E9=94=99=E8=AF=AF=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91?= =?UTF-8?q?=20refactor(graph=5Fstore):=20=E7=A7=BB=E9=99=A4=E5=86=97?= =?UTF-8?q?=E4=BD=99=E6=97=A5=E5=BF=97=E4=BF=A1=E6=81=AF=EF=BC=8C=E7=AE=80?= =?UTF-8?q?=E5=8C=96=E5=86=85=E5=AD=98=E8=BE=B9=E5=90=8C=E6=AD=A5=E9=80=BB?= =?UTF-8?q?=E8=BE=91=20refactor(affinity=5Fchatter):=20=E5=B0=86=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E6=97=A5=E5=BF=97=E7=BA=A7=E5=88=AB=E6=9B=B4=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=E8=B0=83=E8=AF=95=E7=BA=A7=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/chat/emoji_system/emoji_manager.py | 34 ++++++++++++------- src/memory_graph/storage/graph_store.py | 4 --- .../core/affinity_chatter.py | 2 +- 3 files changed, 23 insertions(+), 17 deletions(-) diff --git a/src/chat/emoji_system/emoji_manager.py b/src/chat/emoji_system/emoji_manager.py index d17e6d643..b1a359d3c 100644 --- a/src/chat/emoji_system/emoji_manager.py +++ b/src/chat/emoji_system/emoji_manager.py @@ -1107,18 +1107,28 @@ class EmojiManager: if emoji_base64 is None: # 再次检查读取 logger.error(f"[注册失败] 无法读取图片以生成描述: {filename}") return False - description, emotions = await self.build_emoji_description(emoji_base64) - if not description: # 检查描述是否成功生成或审核通过 - logger.warning(f"[注册失败] 未能生成有效描述或审核未通过: {filename}") - # 删除未能生成描述的文件 - try: - os.remove(file_full_path) - logger.info(f"[清理] 删除描述生成失败的文件: {filename}") - except Exception as e: - logger.error(f"[错误] 删除描述生成失败文件时出错: {e!s}") - return False - new_emoji.description = description - new_emoji.emotion = emotions + task = asyncio.create_task(self.build_emoji_description(emoji_base64)) + + def after_built_description(fut: asyncio.Future): + if fut.cancelled(): + logger.error(f"[注册失败] 描述生成任务被取消: {filename}") + elif fut.exception(): + logger.error(f"[注册失败] 描述生成任务出错 ({filename}): {fut.exception()}") + else: + description, emotions = fut.result() + + if not description: # 检查描述是否成功生成或审核通过 + logger.warning(f"[注册失败] 未能生成有效描述或审核未通过: {filename}") + # 删除未能生成描述的文件 + try: + os.remove(file_full_path) + logger.info(f"[清理] 删除描述生成失败的文件: {filename}") + except Exception as e: + logger.error(f"[错误] 删除描述生成失败文件时出错: {e!s}") + return False + new_emoji.description = description + new_emoji.emotion = emotions + task.add_done_callback(after_built_description) except Exception as build_desc_error: logger.error(f"[注册失败] 生成描述/情感时出错 ({filename}): {build_desc_error}") # 同样考虑删除文件 diff --git a/src/memory_graph/storage/graph_store.py b/src/memory_graph/storage/graph_store.py index bfc6ff306..eecfdeb2c 100644 --- a/src/memory_graph/storage/graph_store.py +++ b/src/memory_graph/storage/graph_store.py @@ -876,8 +876,6 @@ class GraphStore: logger.exception("同步图边到记忆.edges 失败") store._rebuild_node_edge_index() - - logger.info(f"从字典加载图: {store.get_statistics()}") return store def _sync_memory_edges_from_graph(self) -> None: @@ -942,8 +940,6 @@ class GraphStore: mem.edges.append(mem_edge) existing_edges.setdefault(mid, set()).add(mem_edge.id) - - logger.info("已将图中的边同步到 Memory.edges(保证 graph 与 memory 对象一致)") self._rebuild_node_edge_index() def remove_memory(self, memory_id: str, cleanup_orphans: bool = True) -> bool: diff --git a/src/plugins/built_in/affinity_flow_chatter/core/affinity_chatter.py b/src/plugins/built_in/affinity_flow_chatter/core/affinity_chatter.py index 509b7889c..71ce45875 100644 --- a/src/plugins/built_in/affinity_flow_chatter/core/affinity_chatter.py +++ b/src/plugins/built_in/affinity_flow_chatter/core/affinity_chatter.py @@ -97,7 +97,7 @@ class AffinityChatter(BaseChatter): **execution_result, } - logger.info( + logger.debug( f"聊天流 {self.stream_id} StreamContext处理成功: 动作数={result['actions_count']}, 未读消息={result['unread_messages_processed']}" )