feat(memory-config): add V1 emotion and reflection engine config endpoints
Add read/update endpoints for emotion engine config (read_config_emotion, update_config_emotion) Add read/update endpoints for reflection engine config (read_config_reflection, update_config_reflection) Add EmotionConfigUpdateRequest and ReflectionConfigUpdateRequest schemas Reuse emotion_config_controller and memory_reflection_controller with ownership verification
This commit is contained in:
@@ -388,4 +388,58 @@ class ConfigUpdateForgettingRequest(BaseModel):
|
||||
def validate_config_id(cls, v: str) -> str:
|
||||
if not v or not v.strip():
|
||||
raise ValueError("config_id is required and cannot be empty")
|
||||
return v.strip()
|
||||
return v.strip()
|
||||
|
||||
class EmotionConfigUpdateRequest(BaseModel):
|
||||
"""Request schema for updating memory config emotion parameters.
|
||||
|
||||
Attributes:
|
||||
config_id: Configuration UUID to update (required)
|
||||
emotion_enabled: Whether to enable emotion extraction
|
||||
emotion_model_id: Emotion analysis model ID
|
||||
emotion_extract_keywords: Whether to extract emotion keywords
|
||||
emotion_min_intensity: Minimum emotion intensity threshold (0.0-1.0)
|
||||
emotion_enable_subject: Whether to enable subject classification for emotions
|
||||
"""
|
||||
config_id: str = Field(..., description="Configuration ID (UUID)")
|
||||
emotion_enabled: bool = Field(..., description="Whether to enable emotion extraction")
|
||||
emotion_model_id: Optional[str] = Field(None, description="Emotion analysis model ID")
|
||||
emotion_extract_keywords: bool = Field(..., description="Whether to extract emotion keywords")
|
||||
emotion_min_intensity: float = Field(..., ge=0.0, le=1.0, description="Minimum emotion intensity threshold")
|
||||
emotion_enable_subject: bool = Field(..., description="Whether to enable subject classification for emotions")
|
||||
|
||||
@field_validator("config_id")
|
||||
@classmethod
|
||||
def validate_config_id(cls, v: str) -> str:
|
||||
if not v or not v.strip():
|
||||
raise ValueError("config_id is required and cannot be empty")
|
||||
return v.strip()
|
||||
|
||||
class ReflectionConfigUpdateRequest(BaseModel):
|
||||
"""Request schema for updating memory config reflection parameters.
|
||||
|
||||
Attributes:
|
||||
config_id: Configuration UUID to update (required)
|
||||
reflection_enabled: Whether to enable self-reflection
|
||||
reflection_period_in_hours: Reflection iteration period in hours
|
||||
reflexion_range: Reflection range (partial or all)
|
||||
baseline: Baseline for reflection (TIME/FACT/TIME-FACT)
|
||||
reflection_model_id: Reflection model ID
|
||||
memory_verify: Whether to enable memory verification
|
||||
quality_assessment: Whether to enable quality assessment
|
||||
"""
|
||||
config_id: str = Field(..., description="Configuration ID (UUID)")
|
||||
reflection_enabled: bool = Field(..., description="Whether to enable self-reflection")
|
||||
reflection_period_in_hours: str = Field(..., description="Reflection iteration period in hours")
|
||||
reflexion_range: Literal["partial", "all"] = Field(..., description="Reflection range: partial/all")
|
||||
baseline: Literal["TIME", "FACT", "TIME-FACT"] = Field(..., description="Baseline: TIME/FACT/TIME-FACT")
|
||||
reflection_model_id: str = Field(..., description="Reflection model ID")
|
||||
memory_verify: bool = Field(..., description="Whether to enable memory verification")
|
||||
quality_assessment: bool = Field(..., description="Whether to enable quality assessment")
|
||||
|
||||
@field_validator("config_id")
|
||||
@classmethod
|
||||
def validate_config_id(cls, v: str) -> str:
|
||||
if not v or not v.strip():
|
||||
raise ValueError("config_id is required and cannot be empty")
|
||||
return v.strip()
|
||||
|
||||
@@ -291,7 +291,7 @@ class ConfigUpdateExtracted(BaseModel): # 更新记忆萃取引擎配置参数
|
||||
pruning_threshold: Optional[float] = Field(
|
||||
None, ge=0.0, le=0.9, description="智能语义剪枝阈值(0-0.9)"
|
||||
)
|
||||
|
||||
#TODO:萃取引擎的更新的更新会带有反思引擎的参数,需判断业务是否需要,不需要可以重构
|
||||
# 反思配置
|
||||
enable_self_reflexion: Optional[bool] = Field(None, description="是否启用自我反思")
|
||||
iteration_period: Optional[Literal["1", "3", "6", "12", "24"]] = Field(
|
||||
|
||||
Reference in New Issue
Block a user