移动端拍照上传、奥数区、学段约束解题与 AI 模型配置。

- 手机/平板响应式布局,支持拍照与相册上传

- 学生详情新增奥数区,按初/高中学段生成解法并禁止超纲

- 系统设置可配置 Ollama 或 OpenAI 兼容 API

- 更新 frontend/dist 与使用说明
This commit is contained in:
dekun
2026-06-28 13:39:54 +08:00
parent 4375ea491e
commit 43483bf56f
26 changed files with 1193 additions and 592 deletions
+23
View File
@@ -18,6 +18,16 @@ class WrongQuestionStatusEnum(str, Enum):
failed = "failed"
class WrongQuestionCategoryEnum(str, Enum):
regular = "regular"
olympiad = "olympiad"
class AIProviderEnum(str, Enum):
ollama = "ollama"
openai = "openai"
class SchoolLevelEnum(str, Enum):
junior_high = "junior_high"
senior_high = "senior_high"
@@ -58,6 +68,12 @@ class PublicSettingsOut(BaseModel):
class SystemSettingsOut(BaseModel):
registration_enabled: bool
ai_provider: AIProviderEnum
ollama_base_url: str | None = None
ollama_model: str | None = None
openai_base_url: str | None = None
openai_model: str | None = None
openai_api_key_set: bool = False
updated_at: datetime
model_config = {"from_attributes": True}
@@ -65,6 +81,12 @@ class SystemSettingsOut(BaseModel):
class SystemSettingsUpdate(BaseModel):
registration_enabled: bool | None = None
ai_provider: AIProviderEnum | None = None
ollama_base_url: str | None = None
ollama_model: str | None = None
openai_base_url: str | None = None
openai_model: str | None = None
openai_api_key: str | None = None
class AdminProfileUpdate(BaseModel):
@@ -207,6 +229,7 @@ class WrongQuestionOut(BaseModel):
student_id: UUID
subject_id: int
subject_name: str | None = None
category: WrongQuestionCategoryEnum
image_path: str
ocr_raw_text: str | None
question_text: str | None