68 lines
1.4 KiB
Python
68 lines
1.4 KiB
Python
"""Pydantic schemas for the prompt-profile management endpoints."""
|
|
|
|
from pydantic import BaseModel
|
|
|
|
|
|
class ProfileItem(BaseModel):
|
|
name: str
|
|
is_active: bool
|
|
|
|
|
|
class ProfileListResponse(BaseModel):
|
|
profiles: list[ProfileItem]
|
|
|
|
|
|
class PromptSetResponse(BaseModel):
|
|
profile_name: str
|
|
prompts: dict[str, str]
|
|
|
|
|
|
class PromptUpdateRequest(BaseModel):
|
|
template: str
|
|
|
|
|
|
class PromptBatchUpdateRequest(BaseModel):
|
|
prompts: dict[str, str]
|
|
|
|
|
|
class ResetToDefaultsRequest(BaseModel):
|
|
step: str | None = None
|
|
|
|
|
|
# ── Export / Import models ─────────────────────────────────────────────────
|
|
|
|
|
|
class ProfileExportRequest(BaseModel):
|
|
format: str = "legco-reranker-profile/v1"
|
|
profile_name: str
|
|
exported_at: str | None = None
|
|
prompts: dict[str, str]
|
|
|
|
|
|
class ProfileExportResponse(BaseModel):
|
|
format: str
|
|
profile_name: str
|
|
exported_at: str
|
|
prompts: dict[str, str]
|
|
|
|
|
|
class AllProfilesExportResponse(BaseModel):
|
|
format: str
|
|
exported_at: str
|
|
active_profile: str
|
|
profiles: dict[str, dict]
|
|
|
|
|
|
class ProfileImportRequest(BaseModel):
|
|
format: str
|
|
profile_name: str
|
|
exported_at: str | None = None
|
|
prompts: dict[str, str]
|
|
|
|
|
|
class ProfileImportResponse(BaseModel):
|
|
status: str
|
|
profile: str
|
|
imported_steps: int
|
|
source_profile: str
|