移动端拍照上传、奥数区、学段约束解题与 AI 模型配置。
- 手机/平板响应式布局,支持拍照与相册上传 - 学生详情新增奥数区,按初/高中学段生成解法并禁止超纲 - 系统设置可配置 Ollama 或 OpenAI 兼容 API - 更新 frontend/dist 与使用说明
This commit is contained in:
@@ -22,6 +22,16 @@ class WrongQuestionStatus(str, enum.Enum):
|
||||
failed = "failed"
|
||||
|
||||
|
||||
class WrongQuestionCategory(str, enum.Enum):
|
||||
regular = "regular"
|
||||
olympiad = "olympiad"
|
||||
|
||||
|
||||
class AIProvider(str, enum.Enum):
|
||||
ollama = "ollama"
|
||||
openai = "openai"
|
||||
|
||||
|
||||
class SchoolLevel(str, enum.Enum):
|
||||
junior_high = "junior_high"
|
||||
senior_high = "senior_high"
|
||||
@@ -123,6 +133,9 @@ class WrongQuestion(Base):
|
||||
status: Mapped[WrongQuestionStatus] = mapped_column(
|
||||
Enum(WrongQuestionStatus), default=WrongQuestionStatus.pending
|
||||
)
|
||||
category: Mapped[WrongQuestionCategory] = mapped_column(
|
||||
Enum(WrongQuestionCategory), default=WrongQuestionCategory.regular
|
||||
)
|
||||
created_at: Mapped[datetime] = mapped_column(
|
||||
DateTime(timezone=True), default=lambda: datetime.now(timezone.utc)
|
||||
)
|
||||
@@ -136,6 +149,12 @@ class SystemSettings(Base):
|
||||
|
||||
id: Mapped[int] = mapped_column(Integer, primary_key=True, default=1)
|
||||
registration_enabled: Mapped[bool] = mapped_column(default=True)
|
||||
ai_provider: Mapped[str] = mapped_column(String(16), default="ollama")
|
||||
ollama_base_url: Mapped[str | None] = mapped_column(String(256), nullable=True)
|
||||
ollama_model: Mapped[str | None] = mapped_column(String(128), nullable=True)
|
||||
openai_base_url: Mapped[str | None] = mapped_column(String(256), nullable=True)
|
||||
openai_model: Mapped[str | None] = mapped_column(String(128), nullable=True)
|
||||
openai_api_key: Mapped[str | None] = mapped_column(String(512), nullable=True)
|
||||
updated_at: Mapped[datetime] = mapped_column(
|
||||
DateTime(timezone=True), default=lambda: datetime.now(timezone.utc)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user