dingxin_toolbox
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

196 lines
7.2 KiB

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生成的排片,否则为影院真实排片
is_manual_test = models.BooleanField(default=False) # 为手动提交的提示词提供标记
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返回结果的完整信息
create_datetime = models.CharField(max_length=50, default='') # 生成的时间
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'
class NewMovieSuggestion(models.Model):
id = models.AutoField(primary_key=True)
cinema = models.CharField(max_length=50, default='')
zz_code = models.CharField(max_length=50, default='')
movie_zz_code = models.CharField(max_length=50, default='')
movie_name = models.CharField(max_length=50, default='')
suggestion = models.CharField(max_length=50, default='')
delete_flag = models.BooleanField(default=False)
def __str__(self):
return self.movie_name
class Meta:
verbose_name = '新片推荐排片数'
verbose_name_plural = '新片推荐排片数'
db_table = 'ai_new_movie_suggestion'
class MovieGuidance(models.Model):
id = models.AutoField(primary_key=True)
cinema = models.CharField(max_length=50, default='')
zz_code = models.CharField(max_length=50, default='')
show_date = models.CharField(max_length=50, default='')
movie_zz_code = models.CharField(max_length=50, default='')
movie_name = models.CharField(max_length=50, default='')
guidance = models.CharField(max_length=50, default='')
type = models.CharField(max_length=50, default='')
delete_flag = models.BooleanField(default=False)
def __str__(self):
return self.movie_name
class Meta:
verbose_name = '集团排片指导'
verbose_name_plural = '集团排片指导'
db_table = 'ai_movie_guidance'