knowledge_action.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. # coding=utf-8
  2. """
  3. @project: MaxKB
  4. @Author:虎虎
  5. @file: knowledge_action.py
  6. @date:2025/11/18 17:59
  7. @desc:
  8. """
  9. import uuid_utils.compat as uuid
  10. from django.db import models
  11. from common.encoder.encoder import SystemEncoder
  12. from common.mixins.app_model_mixin import AppModelMixin
  13. from knowledge.models import Knowledge
  14. class State(models.TextChoices):
  15. # 等待
  16. PENDING = 'PENDING'
  17. # 执行中
  18. STARTED = 'STARTED'
  19. # 成功
  20. SUCCESS = 'SUCCESS'
  21. # 失败
  22. FAILURE = 'FAILURE'
  23. # 取消任务
  24. REVOKE = 'REVOKE'
  25. # 取消成功
  26. REVOKED = 'REVOKED'
  27. class KnowledgeAction(AppModelMixin):
  28. id = models.UUIDField(primary_key=True, max_length=128, default=uuid.uuid7, editable=False, verbose_name="主键id")
  29. knowledge = models.ForeignKey(Knowledge, on_delete=models.DO_NOTHING, verbose_name="知识库", db_constraint=False)
  30. state = models.CharField(verbose_name='状态', max_length=20,
  31. choices=State.choices,
  32. default=State.STARTED)
  33. details = models.JSONField(verbose_name="执行详情", default=dict, encoder=SystemEncoder)
  34. run_time = models.FloatField(verbose_name="运行时长", default=0)
  35. meta = models.JSONField(verbose_name="元数据", default=dict)
  36. class Meta:
  37. db_table = "knowledge_action"