feat: complete multimodal ticket intake

This commit is contained in:
hailin
2026-07-27 18:59:28 +08:00
parent 96452934a3
commit 93065c0a00
39 changed files with 6443 additions and 267 deletions

View File

@@ -49,6 +49,7 @@ class AgentVersion(models.Model):
system_prompt = models.TextField(blank=True)
input_schema = models.JSONField(default=dict)
example_input = models.JSONField(default=dict, blank=True)
allowed_actions = models.JSONField(default=list, blank=True)
temperature_override = models.FloatField(null=True, blank=True)
max_output_tokens_override = models.PositiveIntegerField(null=True, blank=True)
created_by = models.ForeignKey(
@@ -97,6 +98,13 @@ class AgentStepBinding(models.Model):
on_delete=models.PROTECT,
related_name="agent_bindings",
)
model_deployment = models.ForeignKey(
ModelDeployment,
null=True,
blank=True,
on_delete=models.PROTECT,
related_name="agent_step_bindings",
)
input_mapping = models.JSONField(default=dict)
class Meta:
@@ -131,6 +139,9 @@ class AgentRun(models.Model):
final_output = models.JSONField(null=True, blank=True)
config_snapshot = models.JSONField(default=dict)
current_step = models.CharField(max_length=80, blank=True)
progress_stage = models.CharField(max_length=40, default="queued")
progress_message = models.CharField(max_length=160, blank=True)
retry_count = models.PositiveSmallIntegerField(default=0)
total_steps = models.PositiveIntegerField(default=0)
input_tokens = models.PositiveIntegerField(default=0)
output_tokens = models.PositiveIntegerField(default=0)
@@ -158,6 +169,24 @@ class AgentRun(models.Model):
]
class AgentRunEvent(models.Model):
run = models.ForeignKey(AgentRun, on_delete=models.CASCADE, related_name="events")
sequence = models.PositiveBigIntegerField()
event_type = models.CharField(max_length=48)
payload = models.JSONField(default=dict, blank=True)
created_at = models.DateTimeField(auto_now_add=True)
class Meta:
ordering = ["sequence"]
constraints = [
models.UniqueConstraint(
fields=["run", "sequence"],
name="unique_agent_run_event_sequence",
)
]
indexes = [models.Index(fields=["run", "sequence"])]
class AgentArtifact(models.Model):
public_id = models.UUIDField(default=uuid.uuid4, unique=True, editable=False)
run = models.ForeignKey(
@@ -194,6 +223,13 @@ class AgentRunStep(models.Model):
on_delete=models.PROTECT,
related_name="run_steps",
)
model_deployment = models.ForeignKey(
ModelDeployment,
null=True,
blank=True,
on_delete=models.PROTECT,
related_name="agent_run_steps",
)
status = models.CharField(max_length=24, default="queued")
input_payload = models.JSONField(default=dict)
output_payload = models.JSONField(null=True, blank=True)