mirror of
https://github.com/open-webui/open-webui.git
synced 2026-07-10 04:20:44 +02:00
fix: handle MCP resource content type blob and URI variants (#25260)
This commit is contained in:
@@ -1162,6 +1162,29 @@ async def process_tool_result(
|
||||
except json.JSONDecodeError:
|
||||
pass
|
||||
tool_response.append(text)
|
||||
elif resource.get('blob'):
|
||||
mime_type = resource.get('mimeType', 'application/octet-stream')
|
||||
blob = resource.get('blob', '')
|
||||
if mime_type.startswith('image/'):
|
||||
file_url = await get_file_url_from_base64(
|
||||
request,
|
||||
f'data:{mime_type};base64,{blob}',
|
||||
{
|
||||
'chat_id': metadata.get('chat_id', None),
|
||||
'message_id': metadata.get('message_id', None),
|
||||
'session_id': metadata.get('session_id', None),
|
||||
'result': item,
|
||||
},
|
||||
user,
|
||||
)
|
||||
tool_result_files.append({'type': 'image', 'url': file_url})
|
||||
else:
|
||||
uri = resource.get('uri', 'resource')
|
||||
tool_response.append(
|
||||
f'[Resource: {uri}] (binary data, mimeType: {mime_type})'
|
||||
)
|
||||
elif resource.get('uri'):
|
||||
tool_response.append(resource.get('uri'))
|
||||
tool_result = tool_response[0] if len(tool_response) == 1 else tool_response
|
||||
else: # OpenAPI
|
||||
for item in tool_result:
|
||||
|
||||
Reference in New Issue
Block a user