fix(ReportGenerator): 降低头像分辨率至 40px 以解决渲染器内存溢出(OOM)问题

This commit is contained in:
SXP-Simon
2026-02-10 22:12:56 +08:00
parent 53ea9e3970
commit 9c839ccce4
2 changed files with 12 additions and 3 deletions
+10 -1
View File
@@ -69,8 +69,17 @@ class ReportDispatcher:
image_url = None
html_content = None
try:
# 定义头像获取回调,请求小尺寸头像以优化性能
async def avatar_getter(user_id: str):
if not platform_id:
return None
adapter = self.message_sender.bot_manager.get_adapter(platform_id)
if adapter and hasattr(adapter, "get_user_avatar_url"):
return await adapter.get_user_avatar_url(user_id, size=40)
return None
image_url, html_content = await self.report_generator.generate_image_report(
analysis_result, group_id, self._html_render_func
analysis_result, group_id, self._html_render_func, avatar_getter=avatar_getter
)
except Exception as e:
logger.error(f"[{trace_id}] Failed to generate image report: {e}")
+2 -2
View File
@@ -479,9 +479,9 @@ class ReportGenerator(IReportGenerator):
if (
user_id.isdigit() and 5 <= len(user_id) <= 12
): # 简单判断是否可能是数字 ID
# 对于数字 ID,使用通用的头像服务作为后备
# 对于数字 ID,使用通用的头像服务作为后备 (使用小尺寸 spec=40)
avatar_url = (
f"https://q4.qlogo.cn/headimg_dl?dst_uin={user_id}&spec=100"
f"https://q4.qlogo.cn/headimg_dl?dst_uin={user_id}&spec=40"
)
else:
return (