Сервис для хранения файлов аудио, индексации файлов, записи и выдачи результатов распознавания
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.
 
 
 

32 lines
1.1 KiB

"""
Исправленная версия для проверки Audio без AiConclusion
"""
from sqlalchemy import exists
def get_audio_without_conclusion(db, limit=100):
"""
Находит все Audio, у которых нет AiConclusion
Использует подзапрос через exists, так как AiConclusion - это relationship
"""
# Импортируем модели
from apiApp.database.Audio import Audio
from apiApp.database.AiConclusion import AiConclusion
# Создаём подзапрос для проверки наличия AiConclusion
subquery = db.query(AiConclusion.audio_id).filter(
AiConclusion.audio_id == Audio.id
)
# Находим Audio без AiConclusion
pending_audio = db.query(Audio).filter(
~exists().where(subquery.exists())
).order_by(Audio.index_date.asc()).limit(limit).all()
# Считаем total
total_pending = db.query(Audio).filter(
~exists().where(subquery.exists())
).count()
return pending_audio, total_pending