| 1234567891011121314151617181920212223 |
- from pydantic import BaseModel, Field
- from typing import List, Optional
- class EmotionItem(BaseModel):
- """单张人脸的情绪识别结果"""
- emotion: str = Field(description="主导情绪,英文,7类之一")
- confidence: float = Field(ge=0.0, le=1.0, description="置信度 0.0–1.0")
- class EmotionRequest(BaseModel):
- """情绪识别请求(支持 URL 或 base64)"""
- image_url: Optional[str] = Field(default=None, description="图片 URL(已上传到 OSS)")
- image_base64: Optional[str] = Field(default=None, description="base64 编码的图片数据(jpg/png)")
- member_id: Optional[int] = Field(default=None, description="家庭成员 ID,用于记录关联")
- class EmotionResponse(BaseModel):
- """情绪识别响应"""
- emotions: List[EmotionItem]
- dominant_emotion: str = Field(description="主导情绪(英文)")
- dominant_label_zh: str = Field(description="主导情绪中文名")
- all_emotions: dict = Field(description="全部 7 类情绪概率")
|