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.
193 lines
7.0 KiB
193 lines
7.0 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生成的排片,否则为影院真实排片 |
|
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' |
|
|
|
|
|
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='') |
|
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'
|
|
|