refactor(emoji_manager): 使用异步任务处理表情描述生成,优化错误处理逻辑
refactor(graph_store): 移除冗余日志信息,简化内存边同步逻辑 refactor(affinity_chatter): 将信息日志级别更改为调试级别
This commit is contained in:
@@ -1107,18 +1107,28 @@ class EmojiManager:
|
|||||||
if emoji_base64 is None: # 再次检查读取
|
if emoji_base64 is None: # 再次检查读取
|
||||||
logger.error(f"[注册失败] 无法读取图片以生成描述: {filename}")
|
logger.error(f"[注册失败] 无法读取图片以生成描述: {filename}")
|
||||||
return False
|
return False
|
||||||
description, emotions = await self.build_emoji_description(emoji_base64)
|
task = asyncio.create_task(self.build_emoji_description(emoji_base64))
|
||||||
if not description: # 检查描述是否成功生成或审核通过
|
|
||||||
logger.warning(f"[注册失败] 未能生成有效描述或审核未通过: {filename}")
|
def after_built_description(fut: asyncio.Future):
|
||||||
# 删除未能生成描述的文件
|
if fut.cancelled():
|
||||||
try:
|
logger.error(f"[注册失败] 描述生成任务被取消: {filename}")
|
||||||
os.remove(file_full_path)
|
elif fut.exception():
|
||||||
logger.info(f"[清理] 删除描述生成失败的文件: {filename}")
|
logger.error(f"[注册失败] 描述生成任务出错 ({filename}): {fut.exception()}")
|
||||||
except Exception as e:
|
else:
|
||||||
logger.error(f"[错误] 删除描述生成失败文件时出错: {e!s}")
|
description, emotions = fut.result()
|
||||||
return False
|
|
||||||
new_emoji.description = description
|
if not description: # 检查描述是否成功生成或审核通过
|
||||||
new_emoji.emotion = emotions
|
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:
|
except Exception as build_desc_error:
|
||||||
logger.error(f"[注册失败] 生成描述/情感时出错 ({filename}): {build_desc_error}")
|
logger.error(f"[注册失败] 生成描述/情感时出错 ({filename}): {build_desc_error}")
|
||||||
# 同样考虑删除文件
|
# 同样考虑删除文件
|
||||||
|
|||||||
@@ -876,8 +876,6 @@ class GraphStore:
|
|||||||
logger.exception("同步图边到记忆.edges 失败")
|
logger.exception("同步图边到记忆.edges 失败")
|
||||||
|
|
||||||
store._rebuild_node_edge_index()
|
store._rebuild_node_edge_index()
|
||||||
|
|
||||||
logger.info(f"从字典加载图: {store.get_statistics()}")
|
|
||||||
return store
|
return store
|
||||||
|
|
||||||
def _sync_memory_edges_from_graph(self) -> None:
|
def _sync_memory_edges_from_graph(self) -> None:
|
||||||
@@ -942,8 +940,6 @@ class GraphStore:
|
|||||||
|
|
||||||
mem.edges.append(mem_edge)
|
mem.edges.append(mem_edge)
|
||||||
existing_edges.setdefault(mid, set()).add(mem_edge.id)
|
existing_edges.setdefault(mid, set()).add(mem_edge.id)
|
||||||
|
|
||||||
logger.info("已将图中的边同步到 Memory.edges(保证 graph 与 memory 对象一致)")
|
|
||||||
self._rebuild_node_edge_index()
|
self._rebuild_node_edge_index()
|
||||||
|
|
||||||
def remove_memory(self, memory_id: str, cleanup_orphans: bool = True) -> bool:
|
def remove_memory(self, memory_id: str, cleanup_orphans: bool = True) -> bool:
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ class AffinityChatter(BaseChatter):
|
|||||||
**execution_result,
|
**execution_result,
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.info(
|
logger.debug(
|
||||||
f"聊天流 {self.stream_id} StreamContext处理成功: 动作数={result['actions_count']}, 未读消息={result['unread_messages_processed']}"
|
f"聊天流 {self.stream_id} StreamContext处理成功: 动作数={result['actions_count']}, 未读消息={result['unread_messages_processed']}"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user