fix: pipes and tools get None instead of a file list when nothing is attached (#32380)

Pipes and tools received None instead of a list of files on messages without attachments, which does not match the docs and breaks plugins that loop over the files. Pipes and tools now get an empty list in that case.

Fixes #32379
This commit is contained in:
Classic298 2026-10-14 10:18:55 +02:00 • committed by GitHub
parent 3991035767
commit 29719c8bfb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 3 additions and 3 deletions

View file

@ -225,7 +225,7 @@ async def generate_function_chat_completion(request, form_data, user, models: di
metadata = form_data.pop('metadata', {})
files = metadata.get('files', [])
files = metadata.get('files') or []
tool_ids = metadata.get('tool_ids', [])
# Check if tool_ids is None
if tool_ids is None:

View file

@ -3117,7 +3117,7 @@ async def process_chat_payload(request, form_data, user, metadata, model):
**extra_params,
'__model__': models[task_model_id],
'__messages__': form_data['messages'],
'__files__': metadata.get('files', []),
'__files__': metadata.get('files') or [],
},
)
@ -3507,7 +3507,7 @@ async def execute_tool_call(form_data, metadata, event_caller, tool_call):
function=tool['callable'],
extra_params={
'__messages__': form_data.get('messages', []),
'__files__': metadata.get('files', []),
'__files__': metadata.get('files') or [],
},
)
result = await function(**params)