diff --git a/docs/providers-and-models.md b/docs/providers-and-models.md index 7dfb56ce..31744eb0 100644 --- a/docs/providers-and-models.md +++ b/docs/providers-and-models.md @@ -38,7 +38,7 @@ This document provides an overview of various AI providers and models, including |----------|-------------|--------------|---------------|--------|--------|------|------| |[playground.allenai.org](https://playground.allenai.org)|No auth required|`g4f.Provider.AllenAI`|`tulu-3-405b, olmo-2-13b, tulu-3-1-8b, tulu-3-70b, olmoe-0125`|❌|❌|❌|![](https://img.shields.io/badge/Active-brightgreen)| |[ai-arta.com](https://ai-arta.com)|No auth required|`g4f.Provider.ARTA`|❌|✔ _**(17+)**_|❌|❌|![](https://img.shields.io/badge/Active-brightgreen)| -|[blackbox.ai](https://www.blackbox.ai)|No auth required|`g4f.Provider.Blackbox`|`blackboxai, gpt-4o-mini, deepseek-chat, deepseek-v3, deepseek-r1, gpt-4o, o1, o3-mini, claude-3.7-sonnet` _**(40+)**_|`flux`|❌|`blackboxai, gpt-4o, o1, o3-mini, deepseek-v3` _**(7+)**_|![](https://img.shields.io/badge/Active-brightgreen)| +|[blackbox.ai](https://www.blackbox.ai)|No auth required|`g4f.Provider.Blackbox`|`blackboxai, blackboxai-pro, gpt-4o-mini, deepseek-chat, deepseek-v3, deepseek-r1, gpt-4o, o1, o3-mini, claude-3.7-sonnet` _**(40+)**_|`flux`|❌|`blackboxai, gpt-4o, o1, o3-mini, deepseek-v3` _**(7+)**_|![](https://img.shields.io/badge/Active-brightgreen)| |[chatglm.cn](https://chatglm.cn)|No auth required|`g4f.Provider.ChatGLM`|`glm-4`|❌|❌|❌|![](https://img.shields.io/badge/Active-brightgreen)| |[chatgpt.com](https://chatgpt.com)|No auth required|`g4f.Provider.ChatGpt`|✔ _**(7+)**_|❌|❌|❌|![Error](https://img.shields.io/badge/HTTPError-f48d37)| |[chatgpt.es](https://chatgpt.es)|No auth required|`g4f.Provider.ChatGptEs`|`gpt-4, gpt-4o, gpt-4o-mini`|❌|❌|❌|![](https://img.shields.io/badge/Active-brightgreen)| @@ -187,6 +187,7 @@ This document provides an overview of various AI providers and models, including |claude-3.7-sonnet-thinking|Anthropic|1+ Providers|[anthropic.com](https://www.anthropic.com/claude/sonnet)| |reka-core|Reka AI|1+ Providers|[reka.ai](https://www.reka.ai/ourmodels)| |blackboxai|Blackbox AI|1+ Providers|[docs.blackbox.chat](https://docs.blackbox.chat/blackbox-ai-1)| +|blackboxai-pro|Blackbox AI|1+ Providers|[docs.blackbox.chat](https://docs.blackbox.chat/blackbox-ai-1)| |command-r|CohereForAI|1+ Providers|[docs.cohere.com](https://docs.cohere.com/docs/command-r-plus)| |command-r-plus|CohereForAI|2+ Providers|[docs.cohere.com](https://docs.cohere.com/docs/command-r-plus)| |command-r7b|CohereForAI|1+ Providers|[huggingface.co](https://huggingface.co/CohereForAI/c4ai-command-r7b-12-2024)| diff --git a/g4f/Provider/Blackbox.py b/g4f/Provider/Blackbox.py index 448ba370..c7158b38 100644 --- a/g4f/Provider/Blackbox.py +++ b/g4f/Provider/Blackbox.py @@ -46,6 +46,7 @@ class Blackbox(AsyncGeneratorProvider, ProviderModelMixin): # Completely free models fallback_models = [ "blackboxai", + "blackboxai-pro", "gpt-4o-mini", "GPT-4o", "o1", @@ -111,6 +112,7 @@ class Blackbox(AsyncGeneratorProvider, ProviderModelMixin): # Trending agent modes trendingAgentMode = { + 'blackboxai-pro': {'mode': True, 'id': "BLACKBOXAI-PRO"}, "Gemini Agent": {'mode': True, 'id': 'gemini'}, "llama-3.1-405 Agent": {'mode': True, 'id': "llama-3.1-405"}, 'llama-3.1-70b Agent': {'mode': True, 'id': "llama-3.1-70b"}, diff --git a/g4f/gui/client/static/css/style.css b/g4f/gui/client/static/css/style.css index 384115a8..5e788b64 100644 --- a/g4f/gui/client/static/css/style.css +++ b/g4f/gui/client/static/css/style.css @@ -1000,6 +1000,7 @@ input.model:hover flex-direction: column; gap: 10px; margin: 4px 0; + margin-top: auto; } .bottom_buttons button, .mem0 button { @@ -1034,6 +1035,7 @@ input.model:hover flex-direction: column; gap: var(--inner-gap); overflow: auto; + flex-grow: 1; } .cursor { @@ -1506,6 +1508,8 @@ form textarea { transition: width 0.3s ease-in-out; overflow: hidden; width: 0; + height: 100%; + justify-content: space-between; } .chat-container { flex: 1; diff --git a/g4f/gui/server/backend_api.py b/g4f/gui/server/backend_api.py index 4ba080ea..0627b1f8 100644 --- a/g4f/gui/server/backend_api.py +++ b/g4f/gui/server/backend_api.py @@ -373,7 +373,7 @@ class Backend_Api(Api): return jsonify({"error": {"message": "Not found"}}), 404 if (request.args.get("random", False)): return redirect(f"/media/{random.choice(match_files)}"), 302 - return redirect(f"/media/{match_files[int(request.args.get("skip", 0))]}"), 302 + return redirect(f"/media/{match_files[int(request.args.get('skip', 0))]}", 302) @app.route('/backend-api/v2/upload_cookies', methods=['POST']) def upload_cookies(): @@ -457,4 +457,4 @@ class Backend_Api(Api): Returns: str: A JSON formatted string. """ - return json.dumps(super()._format_json(response_type, content, **kwargs)) + "\n" \ No newline at end of file + return json.dumps(super()._format_json(response_type, content, **kwargs)) + "\n" diff --git a/g4f/models.py b/g4f/models.py index b796376a..44f0dc82 100644 --- a/g4f/models.py +++ b/g4f/models.py @@ -408,6 +408,12 @@ blackboxai = Model( best_provider = Blackbox ) +blackboxai_pro = Model( + name = 'blackboxai-pro', + base_provider = 'Blackbox AI', + best_provider = Blackbox +) + ### CohereForAI ### command_r = Model( name = 'command-r', @@ -840,6 +846,7 @@ class ModelUtils: ### Blackbox AI ### blackboxai.name: blackboxai, + blackboxai_pro.name: blackboxai_pro, ### CohereForAI ### command_r.name: command_r,