Files
ai-ticket-platform/backend/apps/agents/schemas.py
2026-07-14 13:55:18 +08:00

142 lines
3.1 KiB
Python

from datetime import datetime
from typing import Any
from uuid import UUID
from ninja import Schema
class AgentStepIn(Schema):
code: str
skill_version_id: int
input_mapping: dict[str, str]
class AgentCreateIn(Schema):
code: str
name: str
description: str = ""
model_deployment_id: int
system_prompt: str = ""
input_schema: dict[str, Any] = {"type": "object"}
example_input: dict[str, Any] = {}
temperature_override: float | None = None
max_output_tokens_override: int | None = None
steps: list[AgentStepIn]
class AgentDefinitionUpdateIn(Schema):
name: str | None = None
description: str | None = None
class AgentDraftUpdateIn(Schema):
model_deployment_id: int | None = None
system_prompt: str | None = None
input_schema: dict[str, Any] | None = None
example_input: dict[str, Any] | None = None
temperature_override: float | None = None
max_output_tokens_override: int | None = None
steps: list[AgentStepIn] | None = None
class AgentStepOut(Schema):
id: int
code: str
order: int
skill_version_id: int
skill_name: str
skill_version: int
skill_status: str
input_mapping: dict[str, str]
class AgentVersionOut(Schema):
id: int
version: int
status: str
model_deployment_id: int
model_display_name: str
system_prompt: str
input_schema: dict[str, Any]
example_input: dict[str, Any]
temperature_override: float | None
max_output_tokens_override: int | None
steps: list[AgentStepOut]
created_at: datetime
updated_at: datetime
published_at: datetime | None
class AgentDefinitionOut(Schema):
id: int
code: str
name: str
description: str
active_version: int | None
draft_version: int | None
updated_at: datetime
class AgentDetailOut(AgentDefinitionOut):
versions: list[AgentVersionOut]
class AgentRunIn(Schema):
version: str | int = "draft"
input: dict[str, Any]
class AgentRunAttemptOut(Schema):
id: int
attempt_type: str
status: str
raw_output: str
validation_error: str
input_tokens: int
output_tokens: int
duration_ms: int
created_at: datetime
class AgentRunStepOut(Schema):
id: int
code: str
name: str
order: int
status: str
input_payload: dict[str, Any]
output_payload: Any | None
input_tokens: int
output_tokens: int
duration_ms: int
error_code: str
error_message: str
attempts: list[AgentRunAttemptOut]
class AgentRunSummaryOut(Schema):
public_id: UUID
agent_id: int
agent_name: str
agent_version: int
status: str
sandbox: bool
current_step: str
total_steps: int
input_tokens: int
output_tokens: int
duration_ms: int
error_code: str
error_message: str
created_at: datetime
started_at: datetime | None
finished_at: datetime | None
class AgentRunDetailOut(AgentRunSummaryOut):
input_payload: dict[str, Any]
final_output: Any | None
config_snapshot: dict[str, Any]
cancellation_requested_at: datetime | None
steps: list[AgentRunStepOut]