This commit is contained in:
@@ -43,25 +43,8 @@ class TranscriptionTask(models.Model):
|
||||
return f"{self.id} - {self.get_status_display()}"
|
||||
|
||||
|
||||
class AIEvaluation(models.Model):
|
||||
class Status(models.TextChoices):
|
||||
PENDING = 'PENDING', _('等待中')
|
||||
PROCESSING = 'PROCESSING', _('生成中')
|
||||
COMPLETED = 'COMPLETED', _('已完成')
|
||||
FAILED = 'FAILED', _('失败')
|
||||
|
||||
task = models.OneToOneField(
|
||||
TranscriptionTask,
|
||||
on_delete=models.CASCADE,
|
||||
related_name='ai_evaluation',
|
||||
verbose_name=_('关联任务')
|
||||
)
|
||||
|
||||
# 评分与评语
|
||||
score = models.IntegerField(verbose_name=_('AI评分'), blank=True, null=True, help_text=_('0-100分'))
|
||||
evaluation = models.TextField(verbose_name=_('AI评语'), blank=True, null=True)
|
||||
|
||||
# 配置选项 (可在Admin中设置)
|
||||
class AIEvaluationTemplate(models.Model):
|
||||
name = models.CharField(verbose_name=_('模板名称'), max_length=100, help_text=_('例如:销售话术评分、逻辑性分析'))
|
||||
model_selection = models.CharField(
|
||||
verbose_name=_('模型选择'),
|
||||
max_length=50,
|
||||
@@ -73,6 +56,53 @@ class AIEvaluation(models.Model):
|
||||
default='你是一个专业的评分助手。请根据提供的转写内容,对内容质量、逻辑清晰度、语言表达等方面进行综合评分(0-100分),并给出详细的评语。请以JSON格式返回,包含"score"和"evaluation"字段。',
|
||||
help_text=_('用于指导AI评分的提示词')
|
||||
)
|
||||
is_active = models.BooleanField(verbose_name=_('是否启用'), default=True, help_text=_('启用后,新的转写任务完成后将自动使用此模板进行评估'))
|
||||
|
||||
created_at = models.DateTimeField(verbose_name=_('创建时间'), auto_now_add=True)
|
||||
updated_at = models.DateTimeField(verbose_name=_('更新时间'), auto_now=True)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _('AI评估模板')
|
||||
verbose_name_plural = _('AI评估模板')
|
||||
ordering = ['-created_at']
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
|
||||
class AIEvaluation(models.Model):
|
||||
class Status(models.TextChoices):
|
||||
PENDING = 'PENDING', _('等待中')
|
||||
PROCESSING = 'PROCESSING', _('生成中')
|
||||
COMPLETED = 'COMPLETED', _('已完成')
|
||||
FAILED = 'FAILED', _('失败')
|
||||
|
||||
task = models.ForeignKey(
|
||||
TranscriptionTask,
|
||||
on_delete=models.CASCADE,
|
||||
related_name='ai_evaluations',
|
||||
verbose_name=_('关联任务')
|
||||
)
|
||||
template = models.ForeignKey(
|
||||
AIEvaluationTemplate,
|
||||
on_delete=models.SET_NULL,
|
||||
null=True,
|
||||
blank=True,
|
||||
related_name='evaluations',
|
||||
verbose_name=_('使用的模板')
|
||||
)
|
||||
|
||||
# 评分与评语
|
||||
score = models.IntegerField(verbose_name=_('AI评分'), blank=True, null=True, help_text=_('0-100分'))
|
||||
evaluation = models.TextField(verbose_name=_('AI评语'), blank=True, null=True)
|
||||
|
||||
# 记录当时的配置 (快照)
|
||||
model_selection = models.CharField(
|
||||
verbose_name=_('模型选择'),
|
||||
max_length=50,
|
||||
default='qwen-plus'
|
||||
)
|
||||
prompt = models.TextField(verbose_name=_('评分提示词'))
|
||||
|
||||
# 原始数据与推理
|
||||
raw_response = models.JSONField(verbose_name=_('原始响应'), blank=True, null=True, help_text=_('大模型返回的完整JSON'))
|
||||
@@ -90,9 +120,9 @@ class AIEvaluation(models.Model):
|
||||
updated_at = models.DateTimeField(verbose_name=_('更新时间'), auto_now=True)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _('AI智能评估')
|
||||
verbose_name_plural = _('AI智能评估')
|
||||
verbose_name = _('AI评估结果')
|
||||
verbose_name_plural = _('AI评估结果')
|
||||
ordering = ['-created_at']
|
||||
|
||||
def __str__(self):
|
||||
return f"Evaluation for Task {self.task.id}"
|
||||
return f"Evaluation for Task {self.task.id} ({self.template.name if self.template else 'Custom'})"
|
||||
|
||||
Reference in New Issue
Block a user