|
|
|
|
from django.db import models
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Create your models here.
|
|
|
|
|
class TestCinema(models.Model):
|
|
|
|
|
"""
|
|
|
|
|
用于存储测试影院基本信息、数据库配置信息
|
|
|
|
|
user_config用于模拟用户设置情况
|
|
|
|
|
is_active设置为False时不会自动生成影院的排片,需要手动生成
|
|
|
|
|
"""
|
|
|
|
|
id = models.AutoField(primary_key=True)
|
|
|
|
|
name = models.CharField(max_length=50)
|
|
|
|
|
zz_code = models.CharField(max_length=50)
|
|
|
|
|
db_config = models.TextField()
|
|
|
|
|
user_config = models.TextField()
|
|
|
|
|
is_active = models.BooleanField(default=True)
|
|
|
|
|
|
|
|
|
|
def __str__(self):
|
|
|
|
|
return self.name
|
|
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
|
verbose_name = '测试影院'
|
|
|
|
|
verbose_name_plural = '测试影院'
|
|
|
|
|
db_table = 'ai_show_cinema'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class PromptTemplate(models.Model):
|
|
|
|
|
"""
|
|
|
|
|
分板块的提示词模板,用于动态调整提示词的内容和结构。
|
|
|
|
|
ShowPromptVersion为当前提示词版本
|
|
|
|
|
"""
|
|
|
|
|
id = models.AutoField(primary_key=True)
|
|
|
|
|
prompt_type = models.CharField(max_length=50)
|
|
|
|
|
prompt_key = models.CharField(max_length=50)
|
|
|
|
|
prompt_val = models.TextField()
|
|
|
|
|
del_flag = models.BooleanField(default=False)
|
|
|
|
|
|
|
|
|
|
def __str__(self):
|
|
|
|
|
return self.prompt_key
|
|
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
|
verbose_name = '提示词'
|
|
|
|
|
verbose_name_plural = '提示词'
|
|
|
|
|
db_table = 'ai_prompt_template'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class AiShow(models.Model):
|
|
|
|
|
"""
|
|
|
|
|
用于存储ai生成的结果已经影院真实排片
|
|
|
|
|
temp_date: 模板数据日期
|
|
|
|
|
target: 目标日期已排影片数据,csv格式
|
|
|
|
|
show: 目标日期ai生成的排片数据,csv格式
|
|
|
|
|
sales: ai排片预期收入
|
|
|
|
|
prompt
|
|
|
|
|
"""
|
|
|
|
|
id = models.AutoField(primary_key=True)
|
|
|
|
|
cinema = models.CharField(max_length=50)
|
|
|
|
|
zz_code = models.CharField(max_length=50)
|
|
|
|
|
show_date = models.DateField() # 排片目标日期
|
|
|
|
|
is_ai_show = models.BooleanField(default=True) # 当is_ai_show为True时,记录为ai生成的排片,否则为影院真实排片
|
|
|
|
|
ai_model = models.CharField(default='', max_length=100) # ai生成排片时使用的模型
|
|
|
|
|
template = models.TextField(default='') # ai生成排片时的模板日期排片数据,csv格式
|
|
|
|
|
temp_date = models.CharField(max_length=50, default='') # 模板数据日期
|
|
|
|
|
target = models.TextField(default='') # 目标日期已排影片数据,csv格式
|
|
|
|
|
show = models.TextField() # 目标日期ai生成的排片数据,csv格式
|
|
|
|
|
sales = models.CharField(max_length=50) # ai排片预期收入
|
|
|
|
|
prompt = models.TextField() # 生成的用户提示词部分
|
|
|
|
|
result = models.TextField() # ai返回结果中最终输出部分
|
|
|
|
|
message = models.TextField() # ai返回结果的完整信息
|
|
|
|
|
created_at = models.DateTimeField(auto_now_add=True) # ai返回结果的时间
|
|
|
|
|
updated_at = models.DateTimeField(auto_now=True)
|
|
|
|
|
take_times = models.IntegerField(default=0) # 从提示词发给ai到取得返回结果的时间,单位秒
|
|
|
|
|
take_tokens = models.CharField(default='', max_length=2000) # ai返回结果中token消耗部分的信息
|
|
|
|
|
prompt_version = models.CharField(max_length=50, default='') # 使用的提示词版本
|
|
|
|
|
|
|
|
|
|
def __str__(self):
|
|
|
|
|
return self.cinema
|
|
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
|
verbose_name = 'AI排片数据'
|
|
|
|
|
verbose_name_plural = 'AI排片数据'
|
|
|
|
|
db_table = 'ai_show_result'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class CinemaHall(models.Model):
|
|
|
|
|
id = models.AutoField(primary_key=True)
|
|
|
|
|
cinema_code = models.CharField(max_length=50)
|
|
|
|
|
hall_id = models.CharField(max_length=50)
|
|
|
|
|
hall_name = models.CharField(max_length=50)
|
|
|
|
|
hall_type = models.CharField(max_length=500, default='')
|
|
|
|
|
|
|
|
|
|
def __str__(self):
|
|
|
|
|
return self.hall_name
|
|
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
|
verbose_name = '影厅数据'
|
|
|
|
|
verbose_name_plural = '影厅数据'
|
|
|
|
|
db_table = 'ai_show_hall'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class AiModel(models.Model):
|
|
|
|
|
id = models.AutoField(primary_key=True)
|
|
|
|
|
config_name = models.CharField(max_length=50)
|
|
|
|
|
base_url = models.CharField(max_length=100)
|
|
|
|
|
api_key = models.CharField(max_length=50)
|
|
|
|
|
model_name = models.CharField(max_length=500, default='')
|
|
|
|
|
delete_flag = models.BooleanField(default=False)
|
|
|
|
|
current_used = models.BooleanField(default=False)
|
|
|
|
|
|
|
|
|
|
def __str__(self):
|
|
|
|
|
return self.config_name
|
|
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
|
verbose_name = '模型配置'
|
|
|
|
|
verbose_name_plural = '模型配置'
|
|
|
|
|
db_table = 'ai_model_configs'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class AiRuntime(models.Model):
|
|
|
|
|
id = models.AutoField(primary_key=True)
|
|
|
|
|
runtime_key = models.CharField(max_length=50)
|
|
|
|
|
runtime_val = models.TextField()
|
|
|
|
|
|
|
|
|
|
def __str__(self):
|
|
|
|
|
return self.runtime_key
|
|
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
|
verbose_name = 'AI运行时'
|
|
|
|
|
verbose_name_plural = 'AI运行时'
|
|
|
|
|
db_table = 'ai_runtime'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class MovieHotInfo(models.Model):
|
|
|
|
|
id = models.AutoField(primary_key=True)
|
|
|
|
|
movie_zz_code = models.CharField(max_length=50)
|
|
|
|
|
movie_name = models.CharField(max_length=50)
|
|
|
|
|
req_date = models.DateField()
|
|
|
|
|
api_response = models.TextField()
|
|
|
|
|
show_type = models.CharField(max_length=500, default='')
|
|
|
|
|
title = models.CharField(max_length=1000, default='')
|
|
|
|
|
wants = models.CharField(max_length=50, default='')
|
|
|
|
|
hots = models.CharField(max_length=50, default='')
|
|
|
|
|
day1_val = models.CharField(max_length=50, default='')
|
|
|
|
|
day2_val = models.CharField(max_length=50, default='')
|
|
|
|
|
day3_val = models.CharField(max_length=50, default='')
|
|
|
|
|
day4_val = models.CharField(max_length=50, default='')
|
|
|
|
|
day5_val = models.CharField(max_length=50, default='')
|
|
|
|
|
day_data = models.TextField(default='')
|
|
|
|
|
|
|
|
|
|
def __str__(self):
|
|
|
|
|
return self.movie_name
|
|
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
|
verbose_name = 'AI影片热度信息'
|
|
|
|
|
verbose_name_plural = 'AI影片热度信息'
|
|
|
|
|
db_table = 'ai_movie_hot'
|