feat: init commint
This commit is contained in:
@@ -4,7 +4,9 @@ from django.utils import timezone
|
||||
|
||||
from apps.agents.models import AgentDefinition, AgentStepBinding, AgentVersion
|
||||
from apps.modelhub.models import ModelDeployment
|
||||
from apps.modelhub.structured_output import StructuredOutputError, ensure_compatible
|
||||
from apps.skills.models import SkillDefinition, SkillVersion
|
||||
from apps.skills.services import validate_skill_version
|
||||
|
||||
TICKET_FIELDS = {
|
||||
"type": "object",
|
||||
@@ -75,6 +77,14 @@ class Command(BaseCommand):
|
||||
)
|
||||
if deployment is None:
|
||||
raise CommandError("请先配置并启用模型渠道和模型配置")
|
||||
try:
|
||||
ensure_compatible(
|
||||
mode=deployment.structured_output_mode,
|
||||
test_status=deployment.structured_output_test_status,
|
||||
enforcement="native_json_schema",
|
||||
)
|
||||
except StructuredOutputError as error:
|
||||
raise CommandError(f"{error.code}: {error}") from error
|
||||
|
||||
skill, _ = SkillDefinition.objects.get_or_create(
|
||||
code="ticket-draft",
|
||||
@@ -85,7 +95,7 @@ class Command(BaseCommand):
|
||||
next_version = (
|
||||
skill.versions.order_by("-version").values_list("version", flat=True).first() or 0
|
||||
) + 1
|
||||
skill_version = SkillVersion.objects.create(
|
||||
skill_version = SkillVersion.objects.create(
|
||||
definition=skill,
|
||||
version=next_version,
|
||||
status="published",
|
||||
@@ -100,14 +110,16 @@ class Command(BaseCommand):
|
||||
),
|
||||
input_schema=AGENT_INPUT_SCHEMA,
|
||||
output_schema=OUTPUT_SCHEMA,
|
||||
output_enforcement="native_json_schema",
|
||||
example_input={
|
||||
"source_text": "生产环境采集任务两小时没有更新",
|
||||
"current_fields": {},
|
||||
"messages": [],
|
||||
"image_refs": [],
|
||||
},
|
||||
published_at=timezone.now(),
|
||||
)
|
||||
published_at=timezone.now(),
|
||||
)
|
||||
validate_skill_version(skill_version)
|
||||
skill.active_version = skill_version
|
||||
skill.save(update_fields=["active_version", "updated_at"])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user