feat: init commint

This commit is contained in:
2026-09-18 15:26:19 +08:00
parent 3b61a767a0
commit 9f47dbb5cc
95 changed files with 7712 additions and 1137 deletions

View File

@@ -29,6 +29,11 @@ class SkillDefinition(models.Model):
class SkillVersion(models.Model):
class OutputEnforcement(models.TextChoices):
NATIVE_JSON_SCHEMA = "native_json_schema", "原生 JSON Schema"
JSON_OBJECT = "json_object", "JSON Object"
VALIDATED_JSON = "validated_json", "校验型 JSON"
definition = models.ForeignKey(
SkillDefinition,
on_delete=models.CASCADE,
@@ -39,6 +44,11 @@ class SkillVersion(models.Model):
prompt_template = models.TextField()
input_schema = models.JSONField(default=dict)
output_schema = models.JSONField(default=dict)
output_enforcement = models.CharField(
max_length=32,
choices=OutputEnforcement.choices,
default=OutputEnforcement.VALIDATED_JSON,
)
example_input = models.JSONField(default=dict, blank=True)
created_by = models.ForeignKey(
settings.AUTH_USER_MODEL,
@@ -71,3 +81,9 @@ class SkillVersion(models.Model):
name="unique_skill_draft",
),
]
@property
def structured_output_metrics(self) -> dict:
from apps.agents.structured_metrics import build_structured_output_metrics
return build_structured_output_metrics(skill_version_id=self.id)