From 07a8dfdff76ae0117e8811346236485116e94c4e Mon Sep 17 00:00:00 2001 From: kqlio67 <166700875+kqlio67@users.noreply.github.com> Date: Mon, 24 Feb 2025 14:53:20 +0000 Subject: AI Provider and Model Updates: Adding New, Removing Deprecated, and Enhancing Functionality (#2739) * docs(docs/providers-and-models.md): Update provider listings and model information * feat(g4f/models.py): update model configurations and expand provider support * fix(g4f/gui/client/static/js/chat.v1.js): correct provider checkbox initialization logic * feat(g4f/Provider/Blackbox.py): update model configurations and premium handling * feat(g4f/Provider/ChatGLM.py): add finish reason handling and update default model * chore(g4f/Provider/DDG.py): Reorder model entries for consistency * feat(g4f/Provider/ImageLabs.py): Update default image model to sdxl-turbo * feat(g4f/Provider/Liaobots.py): update supported model configurations and aliases * feat(g4f/Provider/OIVSCode.py): Update API endpoint and expand model support * fix(g4f/Provider/needs_auth/CablyAI.py): Enforce authentication requirement * Removed the provider (g4f/Provider/BlackboxAPI.py) * fix(g4f/providers/base_provider.py): improve cache validation in AsyncAuthedProvider * Update g4f/models.py * fix(g4f/Provider/Liaobots.py): remove deprecated Gemini model aliases * chore(g4f/models.py): Remove Grok-2 and update Gemini provider configurations * chore(docs/providers-and-models.md): Remove deprecated Grok models from provider listings * New provider added (g4f/Provider/AllenAI.py) * feat(g4f/models.py): Add Ai2 models and update provider references * feat(docs/providers-and-models.md): update providers and models documentation * fix(g4f/models.py): update experimental model provider configuration * fix(g4f/Provider/PollinationsImage.py): Initialize image_models list and update label * fix(g4f/Provider/PollinationsAI.py): Resolve model initialization and alias conflicts * refactor(g4f/Provider/PollinationsAI.py): improve model initialization and error handling * refactor(g4f/Provider/PollinationsImage.py): Improve model synchronization and initialization * Update g4f/Provider/AllenAI.py --------- Co-authored-by: kqlio67 <> --- g4f/models.py | 90 ++++++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 67 insertions(+), 23 deletions(-) (limited to 'g4f/models.py') diff --git a/g4f/models.py b/g4f/models.py index ee969168..d14390f2 100644 --- a/g4f/models.py +++ b/g4f/models.py @@ -5,8 +5,8 @@ from dataclasses import dataclass from .Provider import IterListProvider, ProviderType from .Provider import ( ### no auth required ### + AllenAI, Blackbox, - BlackboxAPI, ChatGLM, ChatGptEs, Cloudflare, @@ -115,14 +115,14 @@ default_vision = Model( gpt_4 = Model( name = 'gpt-4', base_provider = 'OpenAI', - best_provider = IterListProvider([Blackbox, DDG, Jmuz, ChatGptEs, PollinationsAI, Yqcloud, Copilot, OpenaiChat, Liaobots, Mhystical]) + best_provider = IterListProvider([DDG, Jmuz, ChatGptEs, PollinationsAI, Yqcloud, Copilot, OpenaiChat, Liaobots, Mhystical]) ) # gpt-4o gpt_4o = VisionModel( name = 'gpt-4o', base_provider = 'OpenAI', - best_provider = IterListProvider([Blackbox, Jmuz, ChatGptEs, PollinationsAI, Copilot, Liaobots, OpenaiChat]) + best_provider = IterListProvider([Jmuz, ChatGptEs, PollinationsAI, Copilot, Liaobots, OpenaiChat]) ) gpt_4o_mini = Model( @@ -144,17 +144,11 @@ o1_preview = Model( best_provider = Liaobots ) -o1_mini = Model( - name = 'o1-mini', - base_provider = 'OpenAI', - best_provider = Liaobots -) - # o3 o3_mini = Model( name = 'o3-mini', base_provider = 'OpenAI', - best_provider = IterListProvider([DDG, Blackbox]) + best_provider = IterListProvider([DDG, Liaobots]) ) ### GigaChat ### @@ -268,14 +262,14 @@ mixtral_small_24b = Model( mixtral_small_28b = Model( name = "mixtral-small-28b", base_provider = "Mistral", - best_provider = IterListProvider([Blackbox, BlackboxAPI, DeepInfraChat]) + best_provider = IterListProvider([Blackbox, DeepInfraChat]) ) ### NousResearch ### hermes_2_dpo = Model( name = "hermes-2-dpo", base_provider = "NousResearch", - best_provider = IterListProvider([Blackbox, BlackboxAPI]) + best_provider = Blackbox ) ### Microsoft ### @@ -324,13 +318,13 @@ gemini_exp = Model( gemini_1_5_flash = Model( name = 'gemini-1.5-flash', base_provider = 'Google DeepMind', - best_provider = IterListProvider([Blackbox, Jmuz, GeminiPro, Liaobots]) + best_provider = IterListProvider([Blackbox, Jmuz, GeminiPro]) ) gemini_1_5_pro = Model( name = 'gemini-1.5-pro', base_provider = 'Google DeepMind', - best_provider = IterListProvider([Blackbox, Jmuz, GeminiPro, Liaobots]) + best_provider = IterListProvider([Jmuz, GeminiPro]) ) # gemini-2.0 @@ -449,7 +443,7 @@ qwen_2_5_1m = Model( qwq_32b = Model( name = 'qwq-32b', base_provider = 'Qwen', - best_provider = IterListProvider([Blackbox, BlackboxAPI, Jmuz, HuggingChat]) + best_provider = IterListProvider([Blackbox, Jmuz, HuggingChat]) ) qvq_72b = VisionModel( name = 'qvq-72b', @@ -468,19 +462,19 @@ pi = Model( deepseek_chat = Model( name = 'deepseek-chat', base_provider = 'DeepSeek', - best_provider = IterListProvider([Blackbox, BlackboxAPI, Jmuz, PollinationsAI]) + best_provider = IterListProvider([Blackbox, Jmuz, PollinationsAI]) ) deepseek_v3 = Model( name = 'deepseek-v3', base_provider = 'DeepSeek', - best_provider = IterListProvider([Blackbox, BlackboxAPI, DeepInfraChat, Liaobots]) + best_provider = IterListProvider([Blackbox, DeepInfraChat, OIVSCode, Liaobots]) ) deepseek_r1 = Model( name = 'deepseek-r1', base_provider = 'DeepSeek', - best_provider = IterListProvider([Blackbox, BlackboxAPI, DeepInfraChat, Glider, PollinationsAI, Jmuz, Liaobots, HuggingChat, HuggingFace]) + best_provider = IterListProvider([Blackbox, DeepInfraChat, Glider, PollinationsAI, Jmuz, Liaobots, HuggingChat, HuggingFace]) ) janus_pro_7b = VisionModel( @@ -490,8 +484,14 @@ janus_pro_7b = VisionModel( ) ### x.ai ### -grok_2 = Model( - name = 'grok-2', +grok_3 = Model( + name = 'grok-3', + base_provider = 'x.ai', + best_provider = Liaobots +) + +grok_3_r1 = Model( + name = 'grok-3-r1', base_provider = 'x.ai', best_provider = Liaobots ) @@ -521,6 +521,12 @@ sonar_reasoning_pro = Model( best_provider = PerplexityLabs ) +r1_1776 = Model( + name = 'r1-1776', + base_provider = 'Perplexity AI', + best_provider = PerplexityLabs +) + ### Nvidia ### nemotron_70b = Model( name = 'nemotron-70b', @@ -532,7 +538,7 @@ nemotron_70b = Model( dbrx_instruct = Model( name = 'dbrx-instruct', base_provider = 'Databricks', - best_provider = IterListProvider([Blackbox, BlackboxAPI, DeepInfraChat]) + best_provider = IterListProvider([Blackbox, DeepInfraChat]) ) ### THUDM ### @@ -590,6 +596,37 @@ minicpm_2_5 = Model( best_provider = DeepInfraChat ) +### Ai2 ### +tulu_3_405b = Model( + name = "tulu-3-405b", + base_provider = "Ai2", + best_provider = AllenAI +) + +olmo_2_13b = Model( + name = "olmo-2-13b", + base_provider = "Ai2", + best_provider = AllenAI +) + +tulu_3_1_8b = Model( + name = "tulu-3-1-8b", + base_provider = "Ai2", + best_provider = AllenAI +) + +tulu_3_70b = Model( + name = "tulu-3-70b", + base_provider = "Ai2", + best_provider = AllenAI +) + +olmoe_0125 = Model( + name = "olmoe-0125", + base_provider = "Ai2", + best_provider = AllenAI +) + ### Uncensored AI ### evil = Model( name = 'evil', @@ -678,7 +715,6 @@ class ModelUtils: # o1 o1.name: o1, o1_preview.name: o1_preview, - o1_mini.name: o1_mini, # o3 o3_mini.name: o3_mini, @@ -776,13 +812,14 @@ class ModelUtils: pi.name: pi, ### x.ai ### - grok_2.name: grok_2, + grok_3.name: grok_3, ### Perplexity AI ### sonar.name: sonar, sonar_pro.name: sonar_pro, sonar_reasoning.name: sonar_reasoning, sonar_reasoning_pro.name: sonar_reasoning_pro, + r1_1776.name: r1_1776, ### DeepSeek ### deepseek_chat.name: deepseek_chat, @@ -803,6 +840,13 @@ class ModelUtils: lzlv_70b.name: lzlv_70b, ### Lizpreciatior ### minicpm_2_5.name: minicpm_2_5, ### OpenBMB ### + ### Ai2 ### + tulu_3_405b.name: tulu_3_405b, + olmo_2_13b.name: olmo_2_13b, + tulu_3_1_8b.name: tulu_3_1_8b, + tulu_3_70b.name: tulu_3_70b, + olmoe_0125.name: olmoe_0125, + evil.name: evil, ### Uncensored AI ### ############# -- cgit v1.2.3