增加排片指导提示词

main
rogersun 1 week ago
parent ff7f1c6c07
commit 39fc8272ba
  1. 31
      ai/migrations/0023_movieguidance.py
  2. 19
      ai/models.py
  3. 5
      ai/serializers.py
  4. 11
      ai/utils/show_func.py
  5. 7
      ai/utils/show_prompt.py

@ -0,0 +1,31 @@
# Generated by Django 4.2.7 on 2026-07-10 06:53
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('ai', '0022_newmoviesuggestion_cinema_newmoviesuggestion_zz_code_and_more'),
]
operations = [
migrations.CreateModel(
name='MovieGuidance',
fields=[
('id', models.AutoField(primary_key=True, serialize=False)),
('cinema', models.CharField(default='', max_length=50)),
('zz_code', models.CharField(default='', max_length=50)),
('show_date', models.CharField(default='', max_length=50)),
('movie_zz_code', models.CharField(default='', max_length=50)),
('movie_name', models.CharField(default='', max_length=50)),
('guidance', models.CharField(default='', max_length=50)),
('delete_flag', models.BooleanField(default=False)),
],
options={
'verbose_name': '集团排片指导',
'verbose_name_plural': '集团排片指导',
'db_table': 'ai_movie_guidance',
},
),
]

@ -172,3 +172,22 @@ class NewMovieSuggestion(models.Model):
verbose_name = '新片推荐排片数' verbose_name = '新片推荐排片数'
verbose_name_plural = '新片推荐排片数' verbose_name_plural = '新片推荐排片数'
db_table = 'ai_new_movie_suggestion' 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'

@ -49,3 +49,8 @@ class NewMovieSuggestionSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = NewMovieSuggestion model = NewMovieSuggestion
fields = '__all__' fields = '__all__'
class MovieGuidanceSerializer(serializers.ModelSerializer):
class Meta:
model = MovieGuidance
fields = '__all__'

@ -183,3 +183,14 @@ def get_new_movie(start_date):
{'movie_zz_code': new['cinema_movie_num'], 'movie_name': new['cinema_movie_cn_name']}) {'movie_zz_code': new['cinema_movie_num'], 'movie_name': new['cinema_movie_cn_name']})
new_data = True new_data = True
return None if new_data == False else new_dict return None if new_data == False else new_dict
# 模拟用户设置的新片推荐数量
def get_movie_guidance(cinema, show_date):
movie_guidance = MovieGuidance.objects.filter(Q(zz_code=cinema.zz_code) & Q(show_date=show_date) & Q(delete_flag=False)).all()
if movie_guidance:
movie_list = []
for m in movie_guidance:
movie_list.append(f"\t{m.movie_name}》强制排片占比为{m.guidance}%;")
return '\n'.join(movie_list)
return '\t'

@ -203,6 +203,13 @@ class ShowAI:
basic = basic.replace('{end}', end) basic = basic.replace('{end}', end)
prompt_list.append(basic) prompt_list.append(basic)
# 处理集团排片指导
movie_guidance = PromptTemplate.objects.filter(
Q(del_flag=False) & Q(prompt_type='show') & Q(prompt_key='Guide')).first().prompt_val # 获取提示词模板
guidance = get_movie_guidance(self.cinema, self.show_date)
movie_guidance = movie_guidance.replace('{movie_guidance}', guidance)
prompt_list.append(movie_guidance)
# 处理增减场次规则 # 处理增减场次规则
add_reduce = PromptTemplate.objects.filter( add_reduce = PromptTemplate.objects.filter(
Q(del_flag=False) & Q(prompt_type='show') & Q(prompt_key='AddReduce')).first().prompt_val # 获取提示词模板 Q(del_flag=False) & Q(prompt_type='show') & Q(prompt_key='AddReduce')).first().prompt_val # 获取提示词模板

Loading…
Cancel
Save