用户详情优化

This commit is contained in:
lixinyue
2026-01-14 15:25:04 +08:00
parent ceee4fe5cf
commit 6db37d35ed
4 changed files with 45 additions and 24 deletions

View File

@@ -15,6 +15,8 @@ from neo4j.time import DateTime as Neo4jDateTime
import json
from datetime import datetime
from app.schemas.memory_episodic_schema import EmotionType
logger = logging.getLogger(__name__)
class MemoryEntityService:
@@ -496,11 +498,11 @@ class MemoryEmotion:
length_data.append(emotion_intensity)
if emotion_type is not None and emotion_intensity is not None and formatted_created_at is not None:
# 使用(emotion_type, created_at)作为分组键
if emotion_type in {"joy", "surprise"}:
if emotion_type in {EmotionType.JOY_TYPE, EmotionType.SURPRISE_TYPE}:
emotion_type='positive'
elif emotion_type in {"sadness", "fear", "anger"}:
elif emotion_type in {EmotionType.SANDROWNESS_TYPE, EmotionType.FEAR_TYPE, EmotionType.ANGET_TYPE}:
emotion_type='negative'
elif emotion_type=='neutral':
elif emotion_type==EmotionType.NEUTRAL_TYPE:
emotion_type='neutral'
group_key = (emotion_type, formatted_created_at)
# 累加emotion_intensity

View File

@@ -15,7 +15,8 @@ from app.core.memory.utils.llm.llm_utils import MemoryClientFactory
from app.db import get_db_context
from app.repositories.end_user_repository import EndUserRepository
from app.repositories.neo4j.neo4j_connector import Neo4jConnector
from app.schemas.memory_storage_schema import type_mapping
from app.schemas.memory_episodic_schema import type_mapping, EmotionType
from app.services.memory_base_service import MemoryBaseService
from app.services.memory_config_service import MemoryConfigService
from pydantic import BaseModel, Field
@@ -1581,6 +1582,8 @@ async def _extract_node_properties(label: str, properties: Dict[str, Any],node_
value = properties[field]
if str(field) == 'entity_type':
value=type_mapping.get(value,'')
if str(field)=="emotion_type":
value=EmotionType.EMOTION_MAPPING.get(value)
# 清理 Neo4j 特殊类型
filtered_props[field] = _clean_neo4j_value(value)
filtered_props['associative_memory']=[i['rel_count'] for i in node_results][0]