40 lines
1.6 KiB
Python
40 lines
1.6 KiB
Python
"""情绪分析相关的请求和响应模型"""
|
||
|
||
from typing import Optional
|
||
from uuid import UUID
|
||
from pydantic import BaseModel, Field
|
||
|
||
class EmotionTagsRequest(BaseModel):
|
||
"""获取情绪标签统计请求"""
|
||
end_user_id: str = Field(..., description="组ID")
|
||
emotion_type: Optional[str] = Field(None, description="情绪类型过滤(joy/sadness/anger/fear/surprise/neutral)")
|
||
start_date: Optional[str] = Field(None, description="开始日期(ISO格式,如:2024-01-01)")
|
||
end_date: Optional[str] = Field(None, description="结束日期(ISO格式,如:2024-12-31)")
|
||
limit: int = Field(10, ge=1, le=100, description="返回数量限制")
|
||
|
||
|
||
class EmotionWordcloudRequest(BaseModel):
|
||
"""获取情绪词云数据请求"""
|
||
end_user_id: str = Field(..., description="组ID")
|
||
emotion_type: Optional[str] = Field(None, description="情绪类型过滤(joy/sadness/anger/fear/surprise/neutral)")
|
||
limit: int = Field(50, ge=1, le=200, description="返回词语数量")
|
||
|
||
|
||
class EmotionHealthRequest(BaseModel):
|
||
"""获取情绪健康指数请求"""
|
||
end_user_id: str = Field(..., description="组ID")
|
||
time_range: str = Field("30d", description="时间范围(7d/30d/90d)")
|
||
|
||
|
||
|
||
|
||
class EmotionSuggestionsRequest(BaseModel):
|
||
"""获取个性化情绪建议请求"""
|
||
end_user_id: str = Field(..., description="组ID")
|
||
config_id: Optional[UUID] = Field(None, description="配置ID(用于指定LLM模型)")
|
||
|
||
|
||
class EmotionGenerateSuggestionsRequest(BaseModel):
|
||
"""生成个性化情绪建议请求"""
|
||
end_user_id: str = Field(..., description="终端用户ID")
|