fix: resolve N+1 query in knowledge batch file add (#21006)

This commit is contained in:
Classic298
2026-02-09 16:17:30 -06:00
committed by GitHub
parent 9b1fd86aa7
commit f236192fe1
+12 -10
View File
@@ -958,17 +958,19 @@ async def add_files_to_knowledge_batch(
detail=ERROR_MESSAGES.ACCESS_PROHIBITED, detail=ERROR_MESSAGES.ACCESS_PROHIBITED,
) )
# Get files content # Batch-fetch all files to avoid N+1 queries
log.info(f"files/batch/add - {len(form_data)} files") log.info(f"files/batch/add - {len(form_data)} files")
files: List[FileModel] = [] file_ids = [form.file_id for form in form_data]
for form in form_data: files = Files.get_files_by_ids(file_ids, db=db)
file = Files.get_file_by_id(form.file_id, db=db)
if not file: # Verify all requested files were found
raise HTTPException( found_ids = {file.id for file in files}
status_code=status.HTTP_400_BAD_REQUEST, missing_ids = [fid for fid in file_ids if fid not in found_ids]
detail=f"File {form.file_id} not found", if missing_ids:
) raise HTTPException(
files.append(file) status_code=status.HTTP_400_BAD_REQUEST,
detail=f"File {missing_ids[0]} not found",
)
# Process files # Process files
try: try: