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" "type": "function"
}] }]
do_web_search = json_data.get('web_search') web_search = json_data.get('web_search')
if do_web_search and provider: if web_search:
kwargs["tool_calls"].append({ kwargs["web_search"] = web_search
"function": {
"name": "safe_search_tool"
},
"type": "function"
})
action = json_data.get('action') action = json_data.get('action')
if action == "continue": if action == "continue":
kwargs["tool_calls"].append({ 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): async def async_iter_run_tools(async_iter_callback, model, messages, tool_calls: Optional[list] = None, **kwargs):
# Handle web_search from kwargs # Handle web_search from kwargs
if kwargs.get('web_search'): web_search = kwargs.get('web_search')
if web_search:
try: try:
messages = messages.copy() 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: except Exception as e:
debug.log(f"Couldn't do web search: {e.__class__.__name__}: {e}") debug.log(f"Couldn't do web search: {e.__class__.__name__}: {e}")
# Keep web_search in kwargs for provider native support # Keep web_search in kwargs for provider native support
@@ -78,10 +79,11 @@ def iter_run_tools(
**kwargs **kwargs
) -> AsyncIterator: ) -> AsyncIterator:
# Handle web_search from kwargs # Handle web_search from kwargs
if kwargs.get('web_search'): web_search = kwargs.get('web_search')
if web_search:
try: try:
messages = messages.copy() 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: except Exception as e:
debug.log(f"Couldn't do web search: {e.__class__.__name__}: {e}") debug.log(f"Couldn't do web search: {e.__class__.__name__}: {e}")
# Keep web_search in kwargs for provider native support # Keep web_search in kwargs for provider native support

View File

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

View File

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