diff --git a/backend/open_webui/utils/middleware.py b/backend/open_webui/utils/middleware.py index 97a220d9c..047277f99 100644 --- a/backend/open_webui/utils/middleware.py +++ b/backend/open_webui/utils/middleware.py @@ -1206,16 +1206,17 @@ async def process_chat_response( break if tool_result: - tool_calls_display_content = f'{tool_calls_display_content}\n
\nTool Executed\n
' + tool_calls_display_content = f'{tool_calls_display_content}\n
\nTool Executed\n
' else: - tool_calls_display_content = f'{tool_calls_display_content}\n
\nExecuting...\n
' + tool_calls_display_content = f'{tool_calls_display_content}\n
\nExecuting...\n
' if not raw: - content = f"{content}\n{tool_calls_display_content}\n" + content = f"{content}\n{tool_calls_display_content}\n\n" else: tool_calls_display_content = "" for tool_call in tool_calls: + tool_call_id = tool_call.get("id", "") tool_name = tool_call.get("function", {}).get( "name", "" ) @@ -1223,10 +1224,10 @@ async def process_chat_response( "arguments", "" ) - tool_calls_display_content = f'{tool_calls_display_content}\n
\nExecuting...\n
' + tool_calls_display_content = f'{tool_calls_display_content}\n
\nExecuting...\n
' if not raw: - content = f"{content}\n{tool_calls_display_content}\n" + content = f"{content}\n{tool_calls_display_content}\n\n" elif block["type"] == "reasoning": reasoning_display_content = "\n".join( diff --git a/src/lib/components/common/Collapsible.svelte b/src/lib/components/common/Collapsible.svelte index 515458115..252e35512 100644 --- a/src/lib/components/common/Collapsible.svelte +++ b/src/lib/components/common/Collapsible.svelte @@ -102,12 +102,14 @@ {:else if attributes?.type === 'tool_calls'} {#if attributes?.done === 'true'} {:else} \`\`\`json > ${JSON.parse(decode(attributes?.arguments))} > ${JSON.parse(decode(attributes?.result))} @@ -170,6 +173,7 @@ /> {:else} \`\`\`json > ${JSON.parse(decode(attributes?.arguments))} > \`\`\``}