From ecdad19f5408dc214aa992b2e8b4d02b3a137f9d Mon Sep 17 00:00:00 2001 From: lanceyq <1982376970@qq.com> Date: Fri, 17 Apr 2026 17:54:54 +0800 Subject: [PATCH] perf(memory): truncate profile list fields to 5 items in get_end_user_info response Limit role, domain, expertise, and interests arrays to MAX_PROFILE_LIST_SIZE (5) entries when returning end user info to reduce response payload size. --- api/app/services/user_memory_service.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/api/app/services/user_memory_service.py b/api/app/services/user_memory_service.py index fdc27115..4d120d8c 100644 --- a/api/app/services/user_memory_service.py +++ b/api/app/services/user_memory_service.py @@ -401,12 +401,21 @@ class UserMemoryService: # 构建响应数据(转换时间为毫秒时间戳) # 将 meta_data 中的 profile、knowledge_tags、behavioral_hints 平铺到顶层 meta = end_user_info_record.meta_data or {} + + # profile 列表字段截断:只返回前 MAX_PROFILE_LIST_SIZE 条(按时间从新到旧) + MAX_PROFILE_LIST_SIZE = 5 + profile = meta.get("profile") + if isinstance(profile, dict): + for key in ("role", "domain", "expertise", "interests"): + if isinstance(profile.get(key), list): + profile[key] = profile[key][:MAX_PROFILE_LIST_SIZE] + response_data = { "end_user_info_id": str(end_user_info_record.id), "end_user_id": str(end_user_info_record.end_user_id), "other_name": end_user_info_record.other_name, "aliases": end_user_info_record.aliases, - "profile": meta.get("profile"), + "profile": profile, "knowledge_tags": meta.get("knowledge_tags"), "behavioral_hints": meta.get("behavioral_hints"), "created_at": datetime_to_timestamp(end_user_info_record.created_at),