- 从服务器拉取完整代码 - 按框架规范整理项目结构 - 配置 Drone CI 测试环境部署 - 包含后端(FastAPI)、前端(Vue3)、管理端 技术栈: Vue3 + TypeScript + FastAPI + MySQL
51 lines
1.8 KiB
Python
51 lines
1.8 KiB
Python
"""
|
|
能力评估相关的Pydantic Schema
|
|
"""
|
|
from pydantic import BaseModel, Field
|
|
from typing import List, Optional
|
|
from datetime import datetime
|
|
|
|
|
|
class AbilityDimension(BaseModel):
|
|
"""能力维度评分"""
|
|
name: str = Field(..., description="能力维度名称")
|
|
score: int = Field(..., ge=0, le=100, description="评分(0-100)")
|
|
feedback: str = Field(..., description="反馈建议")
|
|
|
|
|
|
class CourseRecommendation(BaseModel):
|
|
"""课程推荐"""
|
|
course_id: int = Field(..., description="课程ID")
|
|
course_name: str = Field(..., description="课程名称")
|
|
recommendation_reason: str = Field(..., description="推荐理由")
|
|
priority: str = Field(..., description="优先级: high/medium/low")
|
|
match_score: int = Field(..., ge=0, le=100, description="匹配度(0-100)")
|
|
|
|
|
|
class AbilityAssessmentResponse(BaseModel):
|
|
"""能力评估响应"""
|
|
assessment_id: int = Field(..., description="评估记录ID")
|
|
total_score: int = Field(..., ge=0, le=100, description="综合评分")
|
|
dimensions: List[AbilityDimension] = Field(..., description="能力维度列表")
|
|
recommended_courses: List[CourseRecommendation] = Field(..., description="推荐课程列表")
|
|
conversation_count: int = Field(..., description="分析的对话数量")
|
|
analyzed_at: Optional[datetime] = Field(None, description="分析时间")
|
|
|
|
|
|
class AbilityAssessmentHistory(BaseModel):
|
|
"""能力评估历史记录"""
|
|
id: int
|
|
user_id: int
|
|
source_type: str
|
|
source_id: Optional[str]
|
|
total_score: Optional[int]
|
|
ability_dimensions: List[AbilityDimension]
|
|
recommended_courses: Optional[List[CourseRecommendation]]
|
|
conversation_count: Optional[int]
|
|
analyzed_at: datetime
|
|
created_at: datetime
|
|
|
|
class Config:
|
|
from_attributes = True
|
|
|