mirror of
https://github.com/open-webui/open-webui
synced 2025-04-16 21:42:50 +00:00
enh: web search behaviour
This commit is contained in:
parent
5465cabd40
commit
9ca4727573
@ -321,89 +321,94 @@ async def chat_web_search_handler(
|
|||||||
)
|
)
|
||||||
return form_data
|
return form_data
|
||||||
|
|
||||||
searchQuery = queries[0]
|
all_results = []
|
||||||
|
|
||||||
await event_emitter(
|
for searchQuery in queries:
|
||||||
{
|
await event_emitter(
|
||||||
"type": "status",
|
{
|
||||||
"data": {
|
"type": "status",
|
||||||
"action": "web_search",
|
"data": {
|
||||||
"description": 'Searching "{{searchQuery}}"',
|
"action": "web_search",
|
||||||
"query": searchQuery,
|
"description": 'Searching "{{searchQuery}}"',
|
||||||
"done": False,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
try:
|
|
||||||
|
|
||||||
results = await process_web_search(
|
|
||||||
request,
|
|
||||||
SearchForm(
|
|
||||||
**{
|
|
||||||
"query": searchQuery,
|
"query": searchQuery,
|
||||||
}
|
"done": False,
|
||||||
),
|
},
|
||||||
user=user,
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
if results:
|
try:
|
||||||
await event_emitter(
|
results = await process_web_search(
|
||||||
{
|
request,
|
||||||
"type": "status",
|
SearchForm(
|
||||||
"data": {
|
**{
|
||||||
"action": "web_search",
|
|
||||||
"description": "Searched {{count}} sites",
|
|
||||||
"query": searchQuery,
|
"query": searchQuery,
|
||||||
"urls": results["filenames"],
|
}
|
||||||
"done": True,
|
),
|
||||||
},
|
user=user,
|
||||||
}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
files = form_data.get("files", [])
|
if results:
|
||||||
|
all_results.append(results)
|
||||||
|
files = form_data.get("files", [])
|
||||||
|
|
||||||
if request.app.state.config.RAG_WEB_SEARCH_FULL_CONTEXT:
|
if request.app.state.config.RAG_WEB_SEARCH_FULL_CONTEXT:
|
||||||
files.append(
|
files.append(
|
||||||
{
|
{
|
||||||
"docs": results.get("docs", []),
|
"docs": results.get("docs", []),
|
||||||
"name": searchQuery,
|
"name": searchQuery,
|
||||||
"type": "web_search_docs",
|
"type": "web_search_docs",
|
||||||
"urls": results["filenames"],
|
"urls": results["filenames"],
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
files.append(
|
files.append(
|
||||||
{
|
{
|
||||||
"collection_name": results["collection_name"],
|
"collection_name": results["collection_name"],
|
||||||
"name": searchQuery,
|
"name": searchQuery,
|
||||||
"type": "web_search_results",
|
"type": "web_search_results",
|
||||||
"urls": results["filenames"],
|
"urls": results["filenames"],
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
form_data["files"] = files
|
form_data["files"] = files
|
||||||
else:
|
except Exception as e:
|
||||||
|
log.exception(e)
|
||||||
await event_emitter(
|
await event_emitter(
|
||||||
{
|
{
|
||||||
"type": "status",
|
"type": "status",
|
||||||
"data": {
|
"data": {
|
||||||
"action": "web_search",
|
"action": "web_search",
|
||||||
"description": "No search results found",
|
"description": 'Error searching "{{searchQuery}}"',
|
||||||
"query": searchQuery,
|
"query": searchQuery,
|
||||||
"done": True,
|
"done": True,
|
||||||
"error": True,
|
"error": True,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
except Exception as e:
|
|
||||||
log.exception(e)
|
if all_results:
|
||||||
|
urls = []
|
||||||
|
for results in all_results:
|
||||||
|
if "filenames" in results:
|
||||||
|
urls.extend(results["filenames"])
|
||||||
|
|
||||||
await event_emitter(
|
await event_emitter(
|
||||||
{
|
{
|
||||||
"type": "status",
|
"type": "status",
|
||||||
"data": {
|
"data": {
|
||||||
"action": "web_search",
|
"action": "web_search",
|
||||||
"description": 'Error searching "{{searchQuery}}"',
|
"description": "Searched {{count}} sites",
|
||||||
"query": searchQuery,
|
"urls": urls,
|
||||||
|
"done": True,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
await event_emitter(
|
||||||
|
{
|
||||||
|
"type": "status",
|
||||||
|
"data": {
|
||||||
|
"action": "web_search",
|
||||||
|
"description": "No search results found",
|
||||||
"done": True,
|
"done": True,
|
||||||
"error": True,
|
"error": True,
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user