diff --git a/backend/open_webui/utils/middleware.py b/backend/open_webui/utils/middleware.py index d81170f01..4603903e0 100644 --- a/backend/open_webui/utils/middleware.py +++ b/backend/open_webui/utils/middleware.py @@ -355,29 +355,33 @@ async def chat_web_search_handler( all_results = [] - for searchQuery in queries: - await event_emitter( - { - "type": "status", - "data": { - "action": "web_search", - "description": 'Searching "{{searchQuery}}"', - "query": searchQuery, - "done": False, - }, - } - ) + await event_emitter( + { + "type": "status", + "data": { + "action": "web_search", + "description": "Searching the web", + "done": False, + }, + } + ) - try: - results = await process_web_search( + gathered_results = await asyncio.gather( + *( + process_web_search( request, - SearchForm( - **{ - "query": searchQuery, - } - ), + SearchForm(**{"query": searchQuery}), user=user, ) + for searchQuery in queries + ), + return_exceptions=True, + ) + + for searchQuery, results in zip(queries, gathered_results): + try: + if isinstance(results, Exception): + raise Exception(f"Error searching {searchQuery}: {str(results)}") if results: all_results.append(results) diff --git a/src/lib/components/chat/Messages/ResponseMessage.svelte b/src/lib/components/chat/Messages/ResponseMessage.svelte index 72459cd3e..2c6d94e2d 100644 --- a/src/lib/components/chat/Messages/ResponseMessage.svelte +++ b/src/lib/components/chat/Messages/ResponseMessage.svelte @@ -683,6 +683,8 @@ {$i18n.t('No search query generated')} {:else if status?.description === 'Generating search query'} {$i18n.t('Generating search query')} + {:else if status?.description === 'Searching the web'} + {$i18n.t('Searching the web')} {:else} {status?.description} {/if}