This commit is contained in:
Team3
2026-07-05 10:38:24 +02:00
parent db58d52567
commit 9b6bfa45c6
9 changed files with 56 additions and 22 deletions

View File

@@ -7,6 +7,8 @@ FormatType = Literal[
"Rest",
]
from config import DEFAULT_PROVIDER
ProviderType = Literal["claude", "minimax", "lokal"]
SourceType = Literal["thema", "projekt", "uni", "link"]
@@ -16,7 +18,7 @@ class GuideCreateRequest(BaseModel):
topic: str = Field(min_length=1, max_length=100)
format: FormatType
instructions: str = Field(default="", max_length=2000)
provider: ProviderType = "claude"
provider: ProviderType = DEFAULT_PROVIDER
ab_step: int | None = Field(default=None, ge=0, le=5) # re-run from board stage (0 lernziele … 5 lesbarkeit); None = full/resume
@@ -42,7 +44,7 @@ class RepairRequest(BaseModel):
class BlocksCreateRequest(BaseModel):
topic: str = Field(min_length=1, max_length=100)
instructions: str = Field(default="", max_length=2000)
provider: ProviderType = "claude"
provider: ProviderType = DEFAULT_PROVIDER
source_type: SourceType = "thema"
source_location: str = Field(default="", max_length=2000)
research: bool = True # False = Continue: drain the existing kanban queue, no new search
@@ -157,7 +159,7 @@ class GuideChatRequest(BaseModel):
section: str = Field(default="", max_length=20000)
outline: str = Field(default="", max_length=8000)
messages: list[ChatMessage] = Field(min_length=1)
provider: ProviderType = "claude"
provider: ProviderType = DEFAULT_PROVIDER
class GuideChatResponse(BaseModel):
@@ -172,7 +174,7 @@ class BlockChatRequest(BaseModel):
section: str = Field(default="", max_length=20000) # detailed version
section_compact: str = Field(default="", max_length=20000) # compact version (mnemonics)
messages: list[ChatMessage] = Field(min_length=1)
provider: ProviderType = "claude"
provider: ProviderType = DEFAULT_PROVIDER
class BlockChatResponse(BaseModel):
@@ -203,7 +205,7 @@ class BlockExamRequest(BaseModel):
# Base + cap are kept server-side (anchor / subs×25) — the client cap is only a hint.
cap: int = Field(default=10, ge=1, le=10000) # score cap = unlocked subblocks × 25
messages: list[ChatMessage] = [] # dialog so far; empty = first question
provider: ProviderType = "claude"
provider: ProviderType = DEFAULT_PROVIDER
thorough: bool = False # "thorough check": rating with a strong model (role guide)
@@ -246,7 +248,7 @@ class BlockPruefenRequest(BaseModel):
spot: str = "ausführlich" # "compact" | "ausführlich" (displayed field)
snippet: str = Field(min_length=1, max_length=20000) # raw markdown block
hint: str = Field(default="", max_length=2000) # optional addition (✏️)
provider: ProviderType = "claude"
provider: ProviderType = DEFAULT_PROVIDER
class BlockPruefenResponse(BaseModel):
@@ -258,7 +260,7 @@ class BlockUebernehmenRequest(BaseModel):
spot: str = "ausführlich"
alt: str = Field(min_length=1, max_length=20000)
revised: str = Field(default="", max_length=20000)
provider: ProviderType = "claude"
provider: ProviderType = DEFAULT_PROVIDER
class BlockUebernehmenResponse(BaseModel):