Files
ai-ticket-platform/backend/apps/modelhub/schemas.py
2026-07-16 19:37:32 +08:00

91 lines
2.0 KiB
Python

from datetime import datetime
from typing import Any
from uuid import UUID
from ninja import Schema
class ModelProviderIn(Schema):
name: str
base_url: str
api_key: str
enabled: bool = True
default_timeout_seconds: int = 60
image_egress_approved: bool = False
class ModelProviderUpdateIn(Schema):
name: str | None = None
base_url: str | None = None
api_key: str | None = None
enabled: bool | None = None
default_timeout_seconds: int | None = None
image_egress_approved: bool | None = None
class ModelProviderOut(Schema):
id: int
name: str
base_url: str
enabled: bool
default_timeout_seconds: int
credential_set: bool
credential_masked: str
image_egress_approved: bool
image_egress_approved_by: str | None
image_egress_approved_at: datetime | None
created_at: datetime
updated_at: datetime
class ModelDeploymentIn(Schema):
provider_id: int
display_name: str
model_name: str
capability: str = "text_chat"
default_temperature: float = 0.2
max_output_tokens: int = 2048
enabled: bool = True
class ModelDeploymentUpdateIn(Schema):
display_name: str | None = None
model_name: str | None = None
capability: str | None = None
default_temperature: float | None = None
max_output_tokens: int | None = None
enabled: bool | None = None
class ModelDeploymentOut(Schema):
id: int
provider_id: int
provider_name: str
display_name: str
model_name: str
capability: str
default_temperature: float
max_output_tokens: int
enabled: bool
class ModelTestIn(Schema):
prompt: str = "请回复:模型连接正常"
class ModelInvocationOut(Schema):
public_id: UUID
deployment_id: int | None
status: str
model_snapshot: dict[str, Any]
output_text: str
input_tokens: int | None
output_tokens: int | None
duration_ms: int
retry_count: int
error_code: str
error_message: str
created_at: datetime
started_at: datetime | None
finished_at: datetime | None