mirror of
https://github.com/xtekky/gpt4free.git
synced 2025-10-03 23:46:29 +08:00
Add missing webview requirements
Fix web_search in Web UI
This commit is contained in:
@@ -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({
|
||||||
|
@@ -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
|
||||||
|
@@ -16,6 +16,8 @@ brotli
|
|||||||
beautifulsoup4
|
beautifulsoup4
|
||||||
aiohttp_socks
|
aiohttp_socks
|
||||||
pywebview
|
pywebview
|
||||||
|
plyer
|
||||||
|
setuptools
|
||||||
cryptography
|
cryptography
|
||||||
nodriver
|
nodriver
|
||||||
python-multipart
|
python-multipart
|
||||||
|
Reference in New Issue
Block a user