Files
111 998211c483 feat: 初始化考培练系统项目
- 从服务器拉取完整代码
- 按框架规范整理项目结构
- 配置 Drone CI 测试环境部署
- 包含后端(FastAPI)、前端(Vue3)、管理端

技术栈: Vue3 + TypeScript + FastAPI + MySQL
2026-01-24 19:33:28 +08:00

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