Add missing webview requirements

Fix web_search in Web UI
This commit is contained in:
hlohaus
2025-01-15 22:45:52 +01:00
parent 55d6709efc
commit ae978ad541
4 changed files with 14 additions and 12 deletions

View File

@@ -99,14 +99,9 @@ class Api:
},
"type": "function"
}]
do_web_search = json_data.get('web_search')
if do_web_search and provider:
kwargs["tool_calls"].append({
"function": {
"name": "safe_search_tool"
},
"type": "function"
})
web_search = json_data.get('web_search')
if web_search:
kwargs["web_search"] = web_search
action = json_data.get('action')
if action == "continue":
kwargs["tool_calls"].append({

View File

@@ -29,10 +29,11 @@ def validate_arguments(data: dict) -> dict:
async def async_iter_run_tools(async_iter_callback, model, messages, tool_calls: Optional[list] = None, **kwargs):
# Handle web_search from kwargs
if kwargs.get('web_search'):
web_search = kwargs.get('web_search')
if web_search:
try:
messages = messages.copy()
messages[-1]["content"] = await do_search(messages[-1]["content"])
messages[-1]["content"] = await do_search(messages[-1]["content"], web_search if web_search != "true" else None)
except Exception as e:
debug.log(f"Couldn't do web search: {e.__class__.__name__}: {e}")
# Keep web_search in kwargs for provider native support
@@ -78,10 +79,11 @@ def iter_run_tools(
**kwargs
) -> AsyncIterator:
# Handle web_search from kwargs
if kwargs.get('web_search'):
web_search = kwargs.get('web_search')
if web_search:
try:
messages = messages.copy()
messages[-1]["content"] = asyncio.run(do_search(messages[-1]["content"]))
messages[-1]["content"] = asyncio.run(do_search(messages[-1]["content"], web_search if web_search != "true" else None))
except Exception as e:
debug.log(f"Couldn't do web search: {e.__class__.__name__}: {e}")
# Keep web_search in kwargs for provider native support

View File

@@ -16,6 +16,8 @@ brotli
beautifulsoup4
aiohttp_socks
pywebview
plyer
setuptools
cryptography
nodriver
python-multipart

View File

@@ -36,6 +36,9 @@ EXTRA_REQUIRE = {
"uvicorn", # api
"nodriver",
"python-multipart",
"pywebview",
"plyer",
"setuptools",
"pypdf2", # files
"docx",
"odfpy",