fc / apps /core /models /llm_record.py
jun2024's picture
Upload 2241 files
b4f2238 verified
Raw History Blame Contribute Delete
1.32 kB
"""
LLM 调用记录模型
记录每次 LLM API 调用的详细信息,用于监控使用量和成本分析.
"""
from typing import ClassVar
from django.db import models
from django.utils.translation import gettext_lazy as _
class LLMCallRecord(models.Model):
"""
LLM 调用记录(用于成本追踪)
记录每次 LLM API 调用的详细信息,用于监控使用量和成本分析.
Requirements: 6.1, 6.2
"""
id: int
model = models.CharField(max_length=100, verbose_name=_("模型"))
prompt_tokens = models.IntegerField(verbose_name=_("输入 Token"))
completion_tokens = models.IntegerField(verbose_name=_("输出 Token"))
total_tokens = models.IntegerField(verbose_name=_("总 Token"))
duration_ms = models.FloatField(verbose_name=_("耗时(ms)"))
created_at = models.DateTimeField(auto_now_add=True, verbose_name=_("调用时间"))
class Meta:
verbose_name = _("LLM 调用记录")
verbose_name_plural = _("LLM 调用记录")
indexes: ClassVar = [
models.Index(fields=["created_at"], name="core_llmcal_created_830747_idx"),
models.Index(fields=["model"], name="core_llmcal_model_df0279_idx"),
]
def __str__(self) -> str:
return f"{self.model} - {self.total_tokens} tokens - {self.created_at}"