summaryrefslogtreecommitdiffstats
path: root/g4f/Provider/Airforce.py
diff options
context:
space:
mode:
authorkqlio67 <kqlio67@users.noreply.github.com>2024-10-11 08:36:32 +0200
committerkqlio67 <kqlio67@users.noreply.github.com>2024-10-11 08:36:32 +0200
commitd4e0fd7cb485d070606bfe90e23fea34cd554259 (patch)
treebbcd30a41e7968ca9696764f0d7e46a9b5852299 /g4f/Provider/Airforce.py
parentrefactor(g4f/Provider/Nexra.py): restructure Nexra service providers (diff)
downloadgpt4free-d4e0fd7cb485d070606bfe90e23fea34cd554259.tar
gpt4free-d4e0fd7cb485d070606bfe90e23fea34cd554259.tar.gz
gpt4free-d4e0fd7cb485d070606bfe90e23fea34cd554259.tar.bz2
gpt4free-d4e0fd7cb485d070606bfe90e23fea34cd554259.tar.lz
gpt4free-d4e0fd7cb485d070606bfe90e23fea34cd554259.tar.xz
gpt4free-d4e0fd7cb485d070606bfe90e23fea34cd554259.tar.zst
gpt4free-d4e0fd7cb485d070606bfe90e23fea34cd554259.zip
Diffstat (limited to '')
-rw-r--r--g4f/Provider/Airforce.py200
1 files changed, 18 insertions, 182 deletions
diff --git a/g4f/Provider/Airforce.py b/g4f/Provider/Airforce.py
index e2b4be21..3ec08b99 100644
--- a/g4f/Provider/Airforce.py
+++ b/g4f/Provider/Airforce.py
@@ -1,6 +1,7 @@
from __future__ import annotations
import random
import json
+import re
from aiohttp import ClientSession
from ..typing import AsyncResult, Messages
from .base_provider import AsyncGeneratorProvider, ProviderModelMixin
@@ -24,176 +25,55 @@ class Airforce(AsyncGeneratorProvider, ProviderModelMixin):
supports_message_history = True
text_models = [
- # anthorpic
'claude-3-haiku-20240307',
'claude-3-sonnet-20240229',
'claude-3-5-sonnet-20240620',
'claude-3-opus-20240229',
-
- # openai
'chatgpt-4o-latest',
'gpt-4',
- #'gpt-4-0613',
'gpt-4-turbo',
'gpt-4o-mini-2024-07-18',
'gpt-4o-mini',
'gpt-3.5-turbo',
'gpt-3.5-turbo-0125',
'gpt-3.5-turbo-1106',
- #'gpt-3.5-turbo-16k', # No response from the API.
- #'gpt-3.5-turbo-0613', # No response from the API.
- #'gpt-3.5-turbo-16k-0613', # No response from the API.
- 'gpt-4o',
- #'o1-mini', # No response from the API.
-
- # meta-llama
'llama-3-70b-chat',
'llama-3-70b-chat-turbo',
'llama-3-8b-chat',
'llama-3-8b-chat-turbo',
'llama-3-70b-chat-lite',
'llama-3-8b-chat-lite',
- #'llama-2-70b-chat', # Failed to load response after multiple retries.
'llama-2-13b-chat',
- #'llama-2-7b-chat', # Failed to load response after multiple retries.
'llama-3.1-405b-turbo',
'llama-3.1-70b-turbo',
'llama-3.1-8b-turbo',
'LlamaGuard-2-8b',
'Llama-Guard-7b',
'Llama-3.2-90B-Vision-Instruct-Turbo',
-
- # codellama
- #'CodeLlama-7b-Python-hf', # Failed to load response after multiple retries.
- #'CodeLlama-7b-Python',
- #'CodeLlama-13b-Python-hf', # Failed to load response after multiple retries.
- #'CodeLlama-34b-Python-hf', # Failed to load response after multiple retries.
- #'CodeLlama-70b-Python-hf', # Failed to load response after multiple retries.
-
- # 01-ai
- #'Yi-34B-Chat', # Failed to load response after multiple retries.
- #'Yi-34B', # Failed to load response after multiple retries.
- #'Yi-6B', # Failed to load response after multiple retries.
-
- # mistral-ai
- #'Mixtral-8x7B-v0.1',
- #'Mixtral-8x22B', # Failed to load response after multiple retries.
'Mixtral-8x7B-Instruct-v0.1',
'Mixtral-8x22B-Instruct-v0.1',
'Mistral-7B-Instruct-v0.1',
'Mistral-7B-Instruct-v0.2',
'Mistral-7B-Instruct-v0.3',
-
- # openchat
- #'openchat-3.5', # Failed to load response after multiple retries.
-
- # wizardlm
- #'WizardLM-13B-V1.2', # Failed to load response after multiple retries.
- #'WizardCoder-Python-34B-V1.0', # Failed to load response after multiple retries.
-
- # qwen
- #'Qwen1.5-0.5B-Chat', # Failed to load response after multiple retries.
- #'Qwen1.5-1.8B-Chat', # Failed to load response after multiple retries.
- #'Qwen1.5-4B-Chat', # Failed to load response after multiple retries.
'Qwen1.5-7B-Chat',
'Qwen1.5-14B-Chat',
'Qwen1.5-72B-Chat',
'Qwen1.5-110B-Chat',
'Qwen2-72B-Instruct',
-
- # google
'gemma-2b-it',
- #'gemma-7b-it', # Failed to load response after multiple retries.
- #'gemma-2b', # Failed to load response after multiple retries.
- #'gemma-7b', # Failed to load response after multiple retries.
- 'gemma-2-9b-it', # fix bug
+ 'gemma-2-9b-it',
'gemma-2-27b-it',
-
- # gemini
'gemini-1.5-flash',
'gemini-1.5-pro',
-
- # databricks
- 'dbrx-instruct',
-
- # lmsys
- #'vicuna-7b-v1.5', # Failed to load response after multiple retries.
- #'vicuna-13b-v1.5', # Failed to load response after multiple retries.
-
- # cognitivecomputations
- #'dolphin-2.5-mixtral-8x7b', # Failed to load response after multiple retries.
-
- # deepseek-ai
- #'deepseek-coder-33b-instruct', # No response from the API.
- #'deepseek-coder-67b-instruct', # Failed to load response after multiple retries.
'deepseek-llm-67b-chat',
-
- # NousResearch
- #'Nous-Capybara-7B-V1p9', # Failed to load response after multiple retries.
'Nous-Hermes-2-Mixtral-8x7B-DPO',
- #'Nous-Hermes-2-Mixtral-8x7B-SFT', # Failed to load response after multiple retries.
- #'Nous-Hermes-llama-2-7b', # Failed to load response after multiple retries.
- #'Nous-Hermes-Llama2-13b', # Failed to load response after multiple retries.
'Nous-Hermes-2-Yi-34B',
-
- # Open-Orca
- #'Mistral-7B-OpenOrca', # Failed to load response after multiple retries.
-
- # togethercomputer
- #'alpaca-7b', # Failed to load response after multiple retries.
-
- # teknium
- #'OpenHermes-2-Mistral-7B', # Failed to load response after multiple retries.
- #'OpenHermes-2.5-Mistral-7B', # Failed to load response after multiple retries.
-
- # microsoft
'WizardLM-2-8x22B',
-
- # Nexusflow
- #'NexusRaven-V2-13B', # Failed to load response after multiple retries.
-
- # Phind
- #'Phind-CodeLlama-34B-v2', # Failed to load response after multiple retries.
-
- # Snoflake
- #'snowflake-arctic-instruct', # No response from the API.
-
- # upstage
'SOLAR-10.7B-Instruct-v1.0',
-
- # togethercomputer
- #'StripedHyena-Hessian-7B', # Failed to load response after multiple retries.
- #'StripedHyena-Nous-7B', # Failed to load response after multiple retries.
- #'Llama-2-7B-32K-Instruct', # Failed to load response after multiple retries.
- #'CodeLlama-13b-Instruct', # No response from the API.
- #'evo-1-131k-base', # Failed to load response after multiple retries.
- #'OLMo-7B-Instruct', # Failed to load response after multiple retries.
-
- # garage-bAInd
- #'Platypus2-70B-instruct', # Failed to load response after multiple retries.
-
- # snorkelai
- #'Snorkel-Mistral-PairRM-DPO', # Failed to load response after multiple retries.
-
- # Undi95
- #'ReMM-SLERP-L2-13B', # Failed to load response after multiple retries.
-
- # Gryphe
'MythoMax-L2-13b',
-
- # Autism
- #'chronos-hermes-13b', # Failed to load response after multiple retries.
-
- # Undi95
- #'Toppy-M-7B', # Failed to load response after multiple retries.
-
- # iFlytek
- #'sparkdesk', # Failed to load response after multiple retries.
-
- # pawan
'cosmosrp',
-
]
+
image_models = [
'flux',
'flux-realism',
@@ -210,72 +90,19 @@ class Airforce(AsyncGeneratorProvider, ProviderModelMixin):
*text_models,
*image_models,
]
+
model_aliases = {
- # anthorpic
"claude-3-haiku": "claude-3-haiku-20240307",
"claude-3-sonnet": "claude-3-sonnet-20240229",
- "claude-3-5-sonnet": "claude-3-5-sonnet-20240620",
- "claude-3-opus": "claude-3-opus-20240229",
-
- # openai
"gpt-4o": "chatgpt-4o-latest",
- "gpt-4o-mini": "gpt-4o-mini-2024-07-18",
- "gpt-3.5-turbo": "gpt-3.5-turbo-0125",
- "gpt-3.5-turbo": "gpt-3.5-turbo-1106",
-
- # meta-llama
"llama-3-70b": "llama-3-70b-chat",
- "llama-3-70b": "llama-3-70b-chat-turbo",
"llama-3-8b": "llama-3-8b-chat",
- "llama-3-8b": "llama-3-8b-chat-turbo",
- "llama-3-70b": "llama-3-70b-chat-lite",
- "llama-3-8b": "llama-3-8b-chat-lite",
- "llama-2-13b": "llama-2-13b-chat",
- "llama-3.1-405b": "llama-3.1-405b-turbo",
- "llama-3.1-70b": "llama-3.1-70b-turbo",
- "llama-3.1-8b": "llama-3.1-8b-turbo",
- "llamaguard-2-8b": "LlamaGuard-2-8b",
- "llamaguard-7b": "Llama-Guard-7b",
- "llama-3.2-90b": "Llama-3.2-90B-Vision-Instruct-Turbo",
-
- # mistral-ai
"mixtral-8x7b": "Mixtral-8x7B-Instruct-v0.1",
- "mixtral-8x22b": "Mixtral-8x22B-Instruct-v0.1",
- "mistral-7b": "Mistral-7B-Instruct-v0.1",
- "mistral-7b": "Mistral-7B-Instruct-v0.2",
- "mistral-7b": "Mistral-7B-Instruct-v0.3",
-
- # qwen
"qwen-1.5-7b": "Qwen1.5-7B-Chat",
- "qwen-1.5-14b": "Qwen1.5-14B-Chat",
- "qwen-1.5-72b": "Qwen1.5-72B-Chat",
- "qwen-1.5-110b": "Qwen1.5-110B-Chat",
- "qwen-2-72b": "Qwen2-72B-Instruct",
-
- # google
"gemma-2b": "gemma-2b-it",
- "gemma-2-9b": "gemma-2-9b-it",
- "gemma-2-27b": "gemma-2-27b-it",
-
- # gemini
"gemini-flash": "gemini-1.5-flash",
- "gemini-pro": "gemini-1.5-pro",
-
- # deepseek-ai
- "deepseek": "deepseek-llm-67b-chat",
-
- # NousResearch
- "mixtral-8x7b-dpo": "Nous-Hermes-2-Mixtral-8x7B-DPO",
- "yi-34b": "Nous-Hermes-2-Yi-34B",
-
- # microsoft
- "wizardlm-2-8x22b": "WizardLM-2-8x22B",
-
- # upstage
- "solar-10.7b": "SOLAR-10.7B-Instruct-v1.0",
-
- # Gryphe
"mythomax-l2-13b": "MythoMax-L2-13b",
+ "solar-10.7b": "SOLAR-10.7B-Instruct-v1.0",
}
@classmethod
@@ -300,11 +127,9 @@ class Airforce(AsyncGeneratorProvider, ProviderModelMixin):
) -> AsyncResult:
model = cls.get_model(model)
- # If the model is an image model, use the image API
if model in cls.image_models:
async for result in cls._generate_image(model, messages, proxy, seed, size):
yield result
- # If the model is a text model, use the text API
elif model in cls.text_models:
async for result in cls._generate_text(model, messages, proxy, stream):
yield result
@@ -330,7 +155,6 @@ class Airforce(AsyncGeneratorProvider, ProviderModelMixin):
if seed is None:
seed = random.randint(0, 100000)
- # Assume the first message is the prompt for the image
prompt = messages[0]['content']
async with ClientSession(headers=headers) as session:
@@ -404,10 +228,22 @@ class Airforce(AsyncGeneratorProvider, ProviderModelMixin):
content = json_data['choices'][0]['message']['content']
part_response = content
+ # Видаляємо повідомлення про перевищення ліміту символів
+ part_response = re.sub(
+ r"One message exceeds the \d+chars per message limit\..+https:\/\/discord\.com\/invite\/\S+",
+ '',
+ part_response
+ )
+
+ part_response = re.sub(
+ r"Rate limit \(\d+\/minute\) exceeded\. Join our discord for more: .+https:\/\/discord\.com\/invite\/\S+",
+ '',
+ part_response
+ )
+
full_response += part_response
yield full_response
@classmethod
def _format_messages(cls, messages: Messages) -> str:
- """Formats messages for text generation."""
return " ".join([msg['content'] for msg in messages])