| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- # coding=utf-8
- """
- @project: MaxKB
- @Author:虎虎
- @file: knowledge_action.py
- @date:2025/11/18 17:59
- @desc:
- """
- import uuid_utils.compat as uuid
- from django.db import models
- from common.encoder.encoder import SystemEncoder
- from common.mixins.app_model_mixin import AppModelMixin
- from knowledge.models import Knowledge
- class State(models.TextChoices):
- # 等待
- PENDING = 'PENDING'
- # 执行中
- STARTED = 'STARTED'
- # 成功
- SUCCESS = 'SUCCESS'
- # 失败
- FAILURE = 'FAILURE'
- # 取消任务
- REVOKE = 'REVOKE'
- # 取消成功
- REVOKED = 'REVOKED'
- class KnowledgeAction(AppModelMixin):
- id = models.UUIDField(primary_key=True, max_length=128, default=uuid.uuid7, editable=False, verbose_name="主键id")
- knowledge = models.ForeignKey(Knowledge, on_delete=models.DO_NOTHING, verbose_name="知识库", db_constraint=False)
- state = models.CharField(verbose_name='状态', max_length=20,
- choices=State.choices,
- default=State.STARTED)
- details = models.JSONField(verbose_name="执行详情", default=dict, encoder=SystemEncoder)
- run_time = models.FloatField(verbose_name="运行时长", default=0)
- meta = models.JSONField(verbose_name="元数据", default=dict)
- class Meta:
- db_table = "knowledge_action"
|