|
|
|
|
from ai.models import *
|
|
|
|
|
from ai.utils.show_prompt import *
|
|
|
|
|
import datetime
|
|
|
|
|
from django_redis import get_redis_connection
|
|
|
|
|
import re
|
|
|
|
|
|
|
|
|
|
# ai排片主流程
|
|
|
|
|
def show_main_process():
|
|
|
|
|
# 查看状态
|
|
|
|
|
redis_conn = get_redis_connection()
|
|
|
|
|
redis_key = f'ai_show{datetime.date.today().strftime("%Y%m%d")}'
|
|
|
|
|
if redis_conn.exists(redis_key):
|
|
|
|
|
return False
|
|
|
|
|
# 获取影院列表
|
|
|
|
|
redis_conn.set(redis_key, 1, ex=60*60*20)
|
|
|
|
|
test_cinema_list = TestCinema.objects.filter(is_active=True).all()
|
|
|
|
|
# 生成目标日期
|
|
|
|
|
show_date = datetime.date.strftime(datetime.date.today() + datetime.timedelta(days=3), '%Y-%m-%d')
|
|
|
|
|
for cinema in test_cinema_list:
|
|
|
|
|
print(cinema.name)
|
|
|
|
|
show_ai = ShowAI(cinema, show_date)
|
|
|
|
|
prompt = show_ai.general_prompt()
|
|
|
|
|
start = datetime.datetime.now()
|
|
|
|
|
# result, message, tokens = show_ai.get_show_result_ai()
|
|
|
|
|
# end = datetime.datetime.now()
|
|
|
|
|
# print('prompt:', prompt)
|
|
|
|
|
# print('result:', result)
|
|
|
|
|
# print('message:', message)
|
|
|
|
|
# print('tokens:', tokens)
|
|
|
|
|
# # 获取排片数据
|
|
|
|
|
# _show = next((s for s in result.split('------') if s.startswith('\n影厅别名,影厅id')), '')
|
|
|
|
|
# _show = _show.strip()
|
|
|
|
|
# print('_show:', _show)
|
|
|
|
|
# # 获取销售额
|
|
|
|
|
# _sales = next((s for s in result.split('\n') if re.search('预估销售数据', s)), '')
|
|
|
|
|
# _sales = str(re.findall(r'\d+\.?\d*', _sales)[0])
|
|
|
|
|
# print('_sales:', _sales)
|
|
|
|
|
# # 处理返回结果
|
|
|
|
|
# try:
|
|
|
|
|
# AiShow.objects.create(
|
|
|
|
|
# cinema=cinema.name,
|
|
|
|
|
# zz_code=cinema.zz_code,
|
|
|
|
|
# show_date=show_date,
|
|
|
|
|
# is_ai_show=True,
|
|
|
|
|
# show=_show,
|
|
|
|
|
# sales=_sales,
|
|
|
|
|
# prompt=prompt,
|
|
|
|
|
# result=result,
|
|
|
|
|
# message=message,
|
|
|
|
|
# take_times=int((end - start).seconds),
|
|
|
|
|
# take_tokens=tokens
|
|
|
|
|
# )
|
|
|
|
|
# except Exception as e:
|
|
|
|
|
# print(e)
|
|
|
|
|
return True
|