142 lines
3.1 KiB
Python
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]
|