* [fix]The log retains genuine alerts and errors, while filtering out unnecessary noise. * [fix]Scenario English and Chinese, emotion specifications * [fix]Change the "no data" scenario from 0.0 to None
98 lines
3.0 KiB
Python
98 lines
3.0 KiB
Python
"""
|
||
情景记忆的请求和响应模型
|
||
"""
|
||
from abc import ABC
|
||
from pydantic import BaseModel, Field
|
||
from typing import Optional
|
||
|
||
type_mapping = {
|
||
"Person": "人物实体节点",
|
||
"Organization": "组织实体节点",
|
||
"ORG": "组织实体节点",
|
||
"Location": "地点实体节点",
|
||
"LOC": "地点实体节点",
|
||
"Event": "事件实体节点",
|
||
"Concept": "概念实体节点",
|
||
"Time": "时间实体节点",
|
||
"Position": "职位实体节点",
|
||
"WorkRole": "职业实体节点",
|
||
"System": "系统实体节点",
|
||
"Policy": "政策实体节点",
|
||
"HistoricalPeriod": "历史时期实体节点",
|
||
"HistoricalState": "历史国家实体节点",
|
||
"HistoricalEvent": "历史事件实体节点",
|
||
"EconomicFactor": "经济因素实体节点",
|
||
"Condition": "条件实体节点",
|
||
"Numeric": "数值实体节点"
|
||
}
|
||
EPISODIC_TYPE_MAPPING = {
|
||
"conversation": "对话",
|
||
"project_work": "项目/工作",
|
||
"learning": "学习",
|
||
"decision": "决策",
|
||
"important_event": "重要事件",
|
||
}
|
||
|
||
|
||
def translate_episodic_type(episodic_type: str, language: str = "zh") -> str:
|
||
"""
|
||
根据语言参数翻译情景类型
|
||
|
||
Args:
|
||
episodic_type: 英文枚举值 (conversation, project_work, etc.)
|
||
language: 语言类型 ("zh" 中文, "en" 英文)
|
||
|
||
Returns:
|
||
翻译后的类型字符串
|
||
"""
|
||
if language == "en":
|
||
return episodic_type
|
||
return EPISODIC_TYPE_MAPPING.get(episodic_type, episodic_type)
|
||
|
||
|
||
class EmotionType(ABC):
|
||
JOY_TYPE = "joy"
|
||
SURPRISE_TYPE = "surprise"
|
||
SANDROWNESS_TYPE = "sadness"
|
||
FEAR_TYPE = "fear"
|
||
ANGET_TYPE="anger"
|
||
NEUTRAL_TYPE="neutral"
|
||
EMOTION_MAPPING={
|
||
"joy":"愉快",
|
||
"surprise":"惊喜",
|
||
"sadness":"悲伤",
|
||
"fear":"恐惧",
|
||
"anger":"生气",
|
||
"neutral":"中性"
|
||
}
|
||
class EmotionSubject(ABC):
|
||
SUBJECT_MAPPING={
|
||
"self":"自己",
|
||
"other":"别人",
|
||
"object":"事物对象"
|
||
}
|
||
|
||
class EpisodicMemoryOverviewRequest(BaseModel):
|
||
"""情景记忆总览查询请求"""
|
||
|
||
end_user_id: str = Field(..., description="终端用户ID")
|
||
time_range: str = Field(
|
||
default="all",
|
||
description="时间范围筛选,可选值:all, today, this_week, this_month"
|
||
)
|
||
episodic_type: str = Field(
|
||
default="all",
|
||
description="情景类型筛选,可选值:all, conversation, project_work, learning, decision, important_event"
|
||
)
|
||
title_keyword: Optional[str] = Field(
|
||
default=None,
|
||
description="标题关键词,用于模糊搜索(可选)"
|
||
)
|
||
|
||
|
||
class EpisodicMemoryDetailsRequest(BaseModel):
|
||
"""情景记忆详情查询请求"""
|
||
|
||
end_user_id: str = Field(..., description="终端用户ID")
|
||
summary_id: str = Field(..., description="情景记忆摘要ID")
|