From 8d5d522c4e5770386e7e222b371ab17cbb1030b1 Mon Sep 17 00:00:00 2001 From: kqlio67 <166700875+kqlio67@users.noreply.github.com> Date: Thu, 28 Nov 2024 16:50:24 +0000 Subject: feat(g4f): Major provider updates and new model support (#2437) * refactor(g4f/Provider/Airforce.py): Enhance Airforce provider with dynamic model fetching * refactor(g4f/Provider/Blackbox.py): Enhance Blackbox AI provider configuration and streamline code * feat(g4f/Provider/RobocodersAPI.py): Add RobocodersAPI new async chat provider * refactor(g4f/client/__init__.py): Improve provider handling in async_generate method * refactor(g4f/models.py): Update provider configurations for multiple models * refactor(g4f/Provider/Blackbox.py): Streamline model configuration and improve response handling * feat(g4f/Provider/DDG.py): Enhance model support and improve conversation handling * refactor(g4f/Provider/Copilot.py): Enhance Copilot provider with model support * refactor(g4f/Provider/AmigoChat.py): update models and improve code structure * chore(g4f/Provider/not_working/AIUncensored.): move AIUncensored to not_working directory * chore(g4f/Provider/not_working/Allyfy.py): remove Allyfy provider * Update (g4f/Provider/not_working/AIUncensored.py g4f/Provider/not_working/__init__.py) * refactor(g4f/Provider/ChatGptEs.py): Implement format_prompt for message handling * refactor(g4f/Provider/Blackbox.py): Update message formatting and improve code structure * refactor(g4f/Provider/LLMPlayground.py): Enhance text generation and error handling * refactor(g4f/Provider/needs_auth/PollinationsAI.py): move PollinationsAI to needs_auth directory * refactor(g4f/Provider/Liaobots.py): Update Liaobots provider models and aliases * feat(g4f/Provider/DeepInfraChat.py): Add new DeepInfra models and aliases * Update (g4f/Provider/__init__.py) * Update (g4f/models.py) * g4f/models.py * Update g4f/models.py * Update g4f/Provider/LLMPlayground.py * Update (g4f/models.py g4f/Provider/Airforce.py g4f/Provider/__init__.py g4f/Provider/LLMPlayground.py) * Update g4f/Provider/__init__.py * Update (g4f/Provider/Airforce.py) --------- Co-authored-by: kqlio67 --- g4f/models.py | 231 +++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 198 insertions(+), 33 deletions(-) (limited to 'g4f/models.py') diff --git a/g4f/models.py b/g4f/models.py index 655aca9c..4092858d 100644 --- a/g4f/models.py +++ b/g4f/models.py @@ -5,25 +5,23 @@ from dataclasses import dataclass from .Provider import IterListProvider, ProviderType from .Provider import ( AIChatFree, - Airforce, - AIUncensored, - Bing, + AmigoChat, Blackbox, ChatGpt, - Chatgpt4Online, ChatGptEs, Cloudflare, + Copilot, DarkAI, DDG, DeepInfraChat, Free2GPT, - FreeNetfly, GigaChat, Gemini, GeminiPro, HuggingChat, HuggingFace, Liaobots, + Airforce, MagickPen, Mhystical, MetaAI, @@ -68,14 +66,13 @@ default = Model( Upstage, Blackbox, Free2GPT, - MagickPen, DeepInfraChat, Airforce, ChatGptEs, Cloudflare, - AIUncensored, DarkAI, Mhystical, + AmigoChat, ]) ) @@ -95,25 +92,38 @@ gpt_35_turbo = Model( gpt_4o = Model( name = 'gpt-4o', base_provider = 'OpenAI', - best_provider = IterListProvider([Blackbox, ChatGptEs, DarkAI, ChatGpt, Airforce, Liaobots, OpenaiChat]) + best_provider = IterListProvider([Blackbox, ChatGptEs, DarkAI, ChatGpt, AmigoChat, Airforce, Liaobots, OpenaiChat]) ) gpt_4o_mini = Model( name = 'gpt-4o-mini', base_provider = 'OpenAI', - best_provider = IterListProvider([DDG, ChatGptEs, FreeNetfly, Pizzagpt, ChatGpt, Airforce, RubiksAI, MagickPen, Liaobots, OpenaiChat]) + best_provider = IterListProvider([DDG, ChatGptEs, Pizzagpt, ChatGpt, AmigoChat, Airforce, RubiksAI, MagickPen, Liaobots, OpenaiChat]) ) gpt_4_turbo = Model( name = 'gpt-4-turbo', base_provider = 'OpenAI', - best_provider = IterListProvider([Liaobots, Bing]) + best_provider = IterListProvider([Liaobots, Airforce]) ) gpt_4 = Model( name = 'gpt-4', base_provider = 'OpenAI', - best_provider = IterListProvider([Chatgpt4Online, Bing, OpenaiChat, DDG, Liaobots, Airforce]) + best_provider = IterListProvider([DDG, Copilot, OpenaiChat, Liaobots, Airforce]) +) + +# o1 +o1_preview = Model( + name = 'o1-preview', + base_provider = 'OpenAI', + best_provider = Liaobots +) + +o1_mini = Model( + name = 'o1-mini', + base_provider = 'OpenAI', + best_provider = Liaobots ) ### GigaChat ### @@ -134,7 +144,7 @@ meta = Model( llama_2_7b = Model( name = "llama-2-7b", base_provider = "Meta Llama", - best_provider = Cloudflare + best_provider = IterListProvider([Cloudflare, Airforce]) ) # llama 3 llama_3_8b = Model( @@ -159,7 +169,7 @@ llama_3_1_70b = Model( llama_3_1_405b = Model( name = "llama-3.1-405b", base_provider = "Meta Llama", - best_provider = IterListProvider([Blackbox, DarkAI]) + best_provider = IterListProvider([Blackbox, DarkAI, AmigoChat]) ) # llama 3.2 @@ -175,16 +185,55 @@ llama_3_2_11b = Model( best_provider = IterListProvider([HuggingChat, HuggingFace]) ) +llama_3_2_90b = Model( + name = "llama-3.2-90b", + base_provider = "Meta Llama", + best_provider = AmigoChat +) + +# CodeLlama +codellama_34b = Model( + name = "codellama-34b", + base_provider = "Meta Llama", + best_provider = AmigoChat +) + +### Mistral ### +mixtral_7b = Model( + name = "mixtral-7b", + base_provider = "Mistral", + best_provider = AmigoChat +) + mixtral_8x7b = Model( name = "mixtral-8x7b", base_provider = "Mistral", best_provider = DDG ) +mistral_tiny = Model( + name = "mistral-tiny", + base_provider = "Mistral", + best_provider = AmigoChat +) + mistral_nemo = Model( name = "mistral-nemo", base_provider = "Mistral", - best_provider = IterListProvider([HuggingChat, HuggingFace]) + best_provider = IterListProvider([HuggingChat, AmigoChat, HuggingFace]) +) + +### NousResearch ### +hermes_2_dpo = Model( + name = "hermes-2-dpo", + base_provider = "NousResearch", + best_provider = Airforce +) + +hermes_2_pro = Model( + name = "hermes-2-pro", + base_provider = "NousResearch", + best_provider = Airforce ) hermes_3 = Model( @@ -193,6 +242,12 @@ hermes_3 = Model( best_provider = IterListProvider([HuggingChat, HuggingFace]) ) +mixtral_8x7b_dpo = Model( + name = "mixtral-8x7b-dpo", + base_provider = "NousResearch", + best_provider = IterListProvider([AmigoChat, Airforce]) +) + ### Microsoft ### phi_2 = Model( name = "phi-2", @@ -217,7 +272,7 @@ gemini_pro = Model( gemini_flash = Model( name = 'gemini-flash', base_provider = 'Google DeepMind', - best_provider = IterListProvider([Blackbox, Liaobots]) + best_provider = IterListProvider([Blackbox, AmigoChat, Liaobots]) ) gemini = Model( @@ -230,16 +285,10 @@ gemini = Model( gemma_2b = Model( name = 'gemma-2b', base_provider = 'Google', - best_provider = ReplicateHome + best_provider = IterListProvider([ReplicateHome, AmigoChat]) ) ### Anthropic ### -claude_2_1 = Model( - name = 'claude-2.1', - base_provider = 'Anthropic', - best_provider = Liaobots -) - # claude 3 claude_3_opus = Model( name = 'claude-3-opus', @@ -263,7 +312,13 @@ claude_3_haiku = Model( claude_3_5_sonnet = Model( name = 'claude-3.5-sonnet', base_provider = 'Anthropic', - best_provider = IterListProvider([Blackbox, Liaobots]) + best_provider = IterListProvider([Blackbox, AmigoChat, Liaobots]) +) + +claude_3_5_haiku = Model( + name = 'claude-3.5-haiku', + base_provider = 'Anthropic', + best_provider = AmigoChat ) ### Reka AI ### @@ -290,7 +345,7 @@ blackboxai_pro = Model( command_r_plus = Model( name = 'command-r-plus', base_provider = 'CohereForAI', - best_provider = HuggingChat + best_provider = IterListProvider([HuggingChat, AmigoChat]) ) ### Qwen ### @@ -309,10 +364,16 @@ qwen_2_72b = Model( ) # qwen 2.5 +qwen_2_5_72b = Model( + name = 'qwen-2.5-72b', + base_provider = 'Qwen', + best_provider = AmigoChat +) + qwen_2_5_coder_32b = Model( name = 'qwen-2.5-coder-32b', base_provider = 'Qwen', - best_provider = IterListProvider([HuggingChat, HuggingFace]) + best_provider = IterListProvider([DeepInfraChat, HuggingChat, HuggingFace]) ) ### Upstage ### @@ -337,6 +398,12 @@ pi = Model( ) ### DeepSeek ### +deepseek_chat = Model( + name = 'deepseek-chat', + base_provider = 'DeepSeek', + best_provider = AmigoChat +) + deepseek_coder = Model( name = 'deepseek-coder', base_provider = 'DeepSeek', @@ -381,7 +448,7 @@ grok_2_mini = Model( grok_beta = Model( name = 'grok-beta', base_provider = 'x.ai', - best_provider = Liaobots + best_provider = IterListProvider([AmigoChat, Liaobots]) ) @@ -402,7 +469,7 @@ sonar_chat = Model( nemotron_70b = Model( name = 'nemotron-70b', base_provider = 'Nvidia', - best_provider = IterListProvider([HuggingChat, HuggingFace]) + best_provider = IterListProvider([DeepInfraChat, HuggingChat, HuggingFace]) ) @@ -442,6 +509,41 @@ neural_7b = Model( best_provider = Airforce ) +### Gryphe ### +mythomax_13b = Model( + name = 'mythomax-13b', + base_provider = 'Gryphe', + best_provider = AmigoChat +) + +### databricks ### +dbrx_instruct = Model( + name = 'dbrx-instruct', + base_provider = 'databricks', + best_provider = AmigoChat +) + +### anthracite-org ### +magnum_72b = Model( + name = 'magnum-72b', + base_provider = 'anthracite-org', + best_provider = AmigoChat +) + +### ai21 ### +jamba_mini = Model( + name = 'jamba-mini', + base_provider = 'ai21', + best_provider = AmigoChat +) + +### llmplayground.net ### +any_uncensored = Model( + name = 'any-uncensored', + base_provider = 'llmplayground.net', + best_provider = Airforce +) + ############# ### Image ### ############# @@ -450,7 +552,7 @@ neural_7b = Model( sdxl = Model( name = 'sdxl', base_provider = 'Stability AI', - best_provider = ReplicateHome + best_provider = IterListProvider([ReplicateHome, Airforce]) ) @@ -474,7 +576,7 @@ playground_v2_5 = Model( flux = Model( name = 'flux', base_provider = 'Flux AI', - best_provider = IterListProvider([Blackbox, AIUncensored, Airforce]) + best_provider = IterListProvider([Blackbox, Airforce]) ) flux_pro = Model( @@ -483,10 +585,16 @@ flux_pro = Model( best_provider = Airforce ) +flux_dev = Model( + name = 'flux-dev', + base_provider = 'Flux AI', + best_provider = AmigoChat +) + flux_realism = Model( name = 'flux-realism', base_provider = 'Flux AI', - best_provider = Airforce + best_provider = IterListProvider([Airforce, AmigoChat]) ) flux_anime = Model( @@ -519,10 +627,24 @@ flux_4o = Model( best_provider = Airforce ) +### OpenAI ### +dalle_3 = Model( + name = 'dalle-3', + base_provider = 'OpenAI', + best_provider = AmigoChat +) + +### Recraft ### +recraft_v3 = Model( + name = 'recraft-v3', + base_provider = 'Recraft', + best_provider = AmigoChat +) + ### Other ### any_dark = Model( name = 'any-dark', - base_provider = '', + base_provider = 'Other', best_provider = Airforce ) @@ -550,6 +672,10 @@ class ModelUtils: 'gpt-4o-mini': gpt_4o_mini, 'gpt-4': gpt_4, 'gpt-4-turbo': gpt_4_turbo, + + # o1 + 'o1-preview': o1_preview, + 'o1-mini': o1_mini, ### Meta ### "meta-ai": meta, @@ -568,12 +694,21 @@ class ModelUtils: # llama-3.2 'llama-3.2-1b': llama_3_2_1b, 'llama-3.2-11b': llama_3_2_11b, + 'llama-3.2-90b': llama_3_2_90b, + + # CodeLlama + 'codellama-34b': codellama_34b, ### Mistral ### + 'mixtral-7b': mixtral_7b, 'mixtral-8x7b': mixtral_8x7b, + 'mistral-tiny': mistral_tiny, 'mistral-nemo': mistral_nemo, ### NousResearch ### + 'mixtral-8x7b-dpo': mixtral_8x7b_dpo, + 'hermes-2-dpo': hermes_2_dpo, + 'hermes-2-pro': hermes_2_pro, 'hermes-3': hermes_3, ### Microsoft ### @@ -590,8 +725,6 @@ class ModelUtils: 'gemma-2b': gemma_2b, ### Anthropic ### - 'claude-2.1': claude_2_1, - # claude 3 'claude-3-opus': claude_3_opus, 'claude-3-sonnet': claude_3_sonnet, @@ -599,6 +732,7 @@ class ModelUtils: # claude 3.5 'claude-3.5-sonnet': claude_3_5_sonnet, + 'claude-3.5-haiku': claude_3_5_haiku, ### Reka AI ### 'reka-core': reka_core, @@ -613,8 +747,16 @@ class ModelUtils: ### GigaChat ### 'gigachat': gigachat, + ### Qwen ### + # qwen 1_5 'qwen-1.5-7b': qwen_1_5_7b, + + # qwen 2 'qwen-2-72b': qwen_2_72b, + + # qwen 2.5 + 'qwen-2.5-72b': qwen_2_5_72b, + 'qwen-2.5-coder-32b': qwen_2_5_coder_32b, ### Upstage ### 'solar-pro': solar_pro, @@ -639,12 +781,28 @@ class ModelUtils: ### Perplexity AI ### 'sonar-online': sonar_online, 'sonar-chat': sonar_chat, + + ### DeepSeek ### + 'deepseek-chat': deepseek_chat, + 'deepseek-coder': deepseek_coder, ### TheBloke ### 'german-7b': german_7b, ### Nvidia ### 'nemotron-70b': nemotron_70b, + + ### databricks ### + 'dbrx-instruct': dbrx_instruct, + + ### anthracite-org ### + 'magnum-72b': magnum_72b, + + ### anthracite-org ### + 'jamba-mini': jamba_mini, + + ### llmplayground.net ### + 'any-uncensored': any_uncensored, ############# ### Image ### @@ -660,6 +818,7 @@ class ModelUtils: ### Flux AI ### 'flux': flux, 'flux-pro': flux_pro, + 'flux-dev': flux_dev, 'flux-realism': flux_realism, 'flux-anime': flux_anime, 'flux-3d': flux_3d, @@ -667,6 +826,12 @@ class ModelUtils: 'flux-pixel': flux_pixel, 'flux-4o': flux_4o, + ### OpenAI ### + 'dalle-3': dalle_3, + + ### Recraft ### + 'recraft-v3': recraft_v3, + ### Other ### 'any-dark': any_dark, } -- cgit v1.2.3