Spaces:
Runtime error
Runtime error
from __future__ import annotations | |
from dataclasses import dataclass | |
from .Provider import RetryProvider, ProviderType | |
from .Provider import ( | |
Chatgpt4Online, | |
ChatgptDemoAi, | |
GeminiProChat, | |
ChatgptNext, | |
HuggingChat, | |
ChatgptDemo, | |
FreeChatgpt, | |
GptForLove, | |
ChatgptAi, | |
DeepInfra, | |
ChatBase, | |
Liaobots, | |
GeekGpt, | |
FakeGpt, | |
FreeGpt, | |
Llama2, | |
Vercel, | |
Phind, | |
GptGo, | |
Gpt6, | |
Bard, | |
Bing, | |
You, | |
H2o, | |
Pi, | |
) | |
class Model: | |
""" | |
Represents a machine learning model configuration. | |
Attributes: | |
name (str): Name of the model. | |
base_provider (str): Default provider for the model. | |
best_provider (ProviderType): The preferred provider for the model, typically with retry logic. | |
""" | |
name: str | |
base_provider: str | |
best_provider: ProviderType = None | |
def __all__() -> list[str]: | |
"""Returns a list of all model names.""" | |
return _all_models | |
default = Model( | |
name = "", | |
base_provider = "", | |
best_provider = RetryProvider([ | |
Bing, | |
ChatgptAi, GptGo, GeekGpt, | |
You, | |
Chatgpt4Online | |
]) | |
) | |
# GPT-3.5 too, but all providers supports long requests and responses | |
gpt_35_long = Model( | |
name = 'gpt-3.5-turbo', | |
base_provider = 'openai', | |
best_provider = RetryProvider([ | |
FreeGpt, You, | |
GeekGpt, FakeGpt, | |
Chatgpt4Online, | |
ChatgptDemoAi, | |
ChatgptNext, | |
ChatgptDemo, | |
Gpt6, | |
]) | |
) | |
# GPT-3.5 / GPT-4 | |
gpt_35_turbo = Model( | |
name = 'gpt-3.5-turbo', | |
base_provider = 'openai', | |
best_provider=RetryProvider([ | |
GptGo, You, | |
GptForLove, ChatBase, | |
Chatgpt4Online, | |
]) | |
) | |
gpt_4 = Model( | |
name = 'gpt-4', | |
base_provider = 'openai', | |
best_provider = RetryProvider([ | |
Bing, Phind, Liaobots, | |
]) | |
) | |
gpt_4_turbo = Model( | |
name = 'gpt-4-turbo', | |
base_provider = 'openai', | |
best_provider = Bing | |
) | |
llama2_7b = Model( | |
name = "meta-llama/Llama-2-7b-chat-hf", | |
base_provider = 'huggingface', | |
best_provider = RetryProvider([Llama2, DeepInfra]) | |
) | |
llama2_13b = Model( | |
name = "meta-llama/Llama-2-13b-chat-hf", | |
base_provider = 'huggingface', | |
best_provider = RetryProvider([Llama2, DeepInfra]) | |
) | |
llama2_70b = Model( | |
name = "meta-llama/Llama-2-70b-chat-hf", | |
base_provider = "huggingface", | |
best_provider = RetryProvider([Llama2, DeepInfra, HuggingChat]) | |
) | |
# Mistal | |
mixtral_8x7b = Model( | |
name = "mistralai/Mixtral-8x7B-Instruct-v0.1", | |
base_provider = "huggingface", | |
best_provider = RetryProvider([DeepInfra, HuggingChat]) | |
) | |
mistral_7b = Model( | |
name = "mistralai/Mistral-7B-Instruct-v0.1", | |
base_provider = "huggingface", | |
best_provider = RetryProvider([DeepInfra, HuggingChat]) | |
) | |
# Dolphin | |
dolphin_mixtral_8x7b = Model( | |
name = "cognitivecomputations/dolphin-2.6-mixtral-8x7b", | |
base_provider = "huggingface", | |
best_provider = DeepInfra | |
) | |
# OpenChat | |
openchat_35 = Model( | |
name = "openchat/openchat_3.5", | |
base_provider = "huggingface", | |
best_provider = RetryProvider([DeepInfra, HuggingChat]) | |
) | |
# Bard | |
palm = Model( | |
name = 'palm', | |
base_provider = 'google', | |
best_provider = Bard) | |
# H2o | |
falcon_7b = Model( | |
name = 'h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3', | |
base_provider = 'huggingface', | |
best_provider = H2o) | |
falcon_40b = Model( | |
name = 'h2oai/h2ogpt-gm-oasst1-en-2048-falcon-40b-v1', | |
base_provider = 'huggingface', | |
best_provider = H2o) | |
llama_13b = Model( | |
name = 'h2oai/h2ogpt-gm-oasst1-en-2048-open-llama-13b', | |
base_provider = 'huggingface', | |
best_provider = H2o) | |
# Vercel | |
claude_instant_v1 = Model( | |
name = 'claude-instant-v1', | |
base_provider = 'anthropic', | |
best_provider = Vercel) | |
claude_v1 = Model( | |
name = 'claude-v1', | |
base_provider = 'anthropic', | |
best_provider = Vercel) | |
claude_v2 = Model( | |
name = 'claude-v2', | |
base_provider = 'anthropic', | |
best_provider = RetryProvider([FreeChatgpt, Vercel])) | |
command_light_nightly = Model( | |
name = 'command-light-nightly', | |
base_provider = 'cohere', | |
best_provider = Vercel) | |
command_nightly = Model( | |
name = 'command-nightly', | |
base_provider = 'cohere', | |
best_provider = Vercel) | |
gpt_neox_20b = Model( | |
name = 'EleutherAI/gpt-neox-20b', | |
base_provider = 'huggingface', | |
best_provider = Vercel) | |
oasst_sft_1_pythia_12b = Model( | |
name = 'OpenAssistant/oasst-sft-1-pythia-12b', | |
base_provider = 'huggingface', | |
best_provider = Vercel) | |
oasst_sft_4_pythia_12b_epoch_35 = Model( | |
name = 'OpenAssistant/oasst-sft-4-pythia-12b-epoch-3.5', | |
base_provider = 'huggingface', | |
best_provider = Vercel) | |
santacoder = Model( | |
name = 'bigcode/santacoder', | |
base_provider = 'huggingface', | |
best_provider = Vercel) | |
bloom = Model( | |
name = 'bigscience/bloom', | |
base_provider = 'huggingface', | |
best_provider = Vercel) | |
flan_t5_xxl = Model( | |
name = 'google/flan-t5-xxl', | |
base_provider = 'huggingface', | |
best_provider = Vercel) | |
code_davinci_002 = Model( | |
name = 'code-davinci-002', | |
base_provider = 'openai', | |
best_provider = Vercel) | |
gpt_35_turbo_16k = Model( | |
name = 'gpt-3.5-turbo-16k', | |
base_provider = 'openai', | |
best_provider = gpt_35_long.best_provider) | |
gpt_35_turbo_16k_0613 = Model( | |
name = 'gpt-3.5-turbo-16k-0613', | |
base_provider = 'openai', | |
best_provider = gpt_35_long.best_provider | |
) | |
gpt_35_turbo_0613 = Model( | |
name = 'gpt-3.5-turbo-0613', | |
base_provider = 'openai', | |
best_provider = gpt_35_turbo.best_provider | |
) | |
gpt_4_0613 = Model( | |
name = 'gpt-4-0613', | |
base_provider = 'openai', | |
best_provider = gpt_4.best_provider | |
) | |
gpt_4_32k = Model( | |
name = 'gpt-4-32k', | |
base_provider = 'openai', | |
best_provider = gpt_4.best_provider | |
) | |
gpt_4_32k_0613 = Model( | |
name = 'gpt-4-32k-0613', | |
base_provider = 'openai', | |
best_provider = gpt_4.best_provider | |
) | |
gemini_pro = Model( | |
name = 'gemini-pro', | |
base_provider = 'google', | |
best_provider = RetryProvider([FreeChatgpt, GeminiProChat]) | |
) | |
text_ada_001 = Model( | |
name = 'text-ada-001', | |
base_provider = 'openai', | |
best_provider = Vercel) | |
text_babbage_001 = Model( | |
name = 'text-babbage-001', | |
base_provider = 'openai', | |
best_provider = Vercel) | |
text_curie_001 = Model( | |
name = 'text-curie-001', | |
base_provider = 'openai', | |
best_provider = Vercel) | |
text_davinci_002 = Model( | |
name = 'text-davinci-002', | |
base_provider = 'openai', | |
best_provider = Vercel) | |
text_davinci_003 = Model( | |
name = 'text-davinci-003', | |
base_provider = 'openai', | |
best_provider = Vercel) | |
llama13b_v2_chat = Model( | |
name = 'replicate:a16z-infra/llama13b-v2-chat', | |
base_provider = 'replicate', | |
best_provider = Vercel) | |
llama7b_v2_chat = Model( | |
name = 'replicate:a16z-infra/llama7b-v2-chat', | |
base_provider = 'replicate', | |
best_provider = Vercel) | |
llama70b_v2_chat = Model( | |
name = 'replicate/llama70b-v2-chat', | |
base_provider = 'replicate', | |
best_provider = Vercel) | |
pi = Model( | |
name = 'pi', | |
base_provider = 'inflection', | |
best_provider=Pi | |
) | |
class ModelUtils: | |
""" | |
Utility class for mapping string identifiers to Model instances. | |
Attributes: | |
convert (dict[str, Model]): Dictionary mapping model string identifiers to Model instances. | |
""" | |
convert: dict[str, Model] = { | |
# gpt-3.5 | |
'gpt-3.5-turbo' : gpt_35_turbo, | |
'gpt-3.5-turbo-0613' : gpt_35_turbo_0613, | |
'gpt-3.5-turbo-16k' : gpt_35_turbo_16k, | |
'gpt-3.5-turbo-16k-0613' : gpt_35_turbo_16k_0613, | |
'gpt-3.5-long': gpt_35_long, | |
# gpt-4 | |
'gpt-4' : gpt_4, | |
'gpt-4-0613' : gpt_4_0613, | |
'gpt-4-32k' : gpt_4_32k, | |
'gpt-4-32k-0613' : gpt_4_32k_0613, | |
'gpt-4-turbo' : gpt_4_turbo, | |
# Llama 2 | |
'llama2-7b' : llama2_7b, | |
'llama2-13b': llama2_13b, | |
'llama2-70b': llama2_70b, | |
# Mistral | |
'mixtral-8x7b': mixtral_8x7b, | |
'mistral-7b': mistral_7b, | |
# Dolphin | |
'dolphin-mixtral-8x7b': dolphin_mixtral_8x7b, | |
# OpenChat | |
'openchat_3.5': openchat_35, | |
# Gemini Pro | |
'gemini-pro': gemini_pro, | |
# Bard | |
'palm2' : palm, | |
'palm' : palm, | |
'google' : palm, | |
'google-bard' : palm, | |
'google-palm' : palm, | |
'bard' : palm, | |
# H2o | |
'falcon-40b' : falcon_40b, | |
'falcon-7b' : falcon_7b, | |
'llama-13b' : llama_13b, | |
# Vercel | |
#'claude-instant-v1' : claude_instant_v1, | |
#'claude-v1' : claude_v1, | |
#'claude-v2' : claude_v2, | |
'command-nightly' : command_nightly, | |
'gpt-neox-20b' : gpt_neox_20b, | |
'santacoder' : santacoder, | |
'bloom' : bloom, | |
'flan-t5-xxl' : flan_t5_xxl, | |
'code-davinci-002' : code_davinci_002, | |
'text-ada-001' : text_ada_001, | |
'text-babbage-001' : text_babbage_001, | |
'text-curie-001' : text_curie_001, | |
'text-davinci-002' : text_davinci_002, | |
'text-davinci-003' : text_davinci_003, | |
'llama70b-v2-chat' : llama70b_v2_chat, | |
'llama13b-v2-chat' : llama13b_v2_chat, | |
'llama7b-v2-chat' : llama7b_v2_chat, | |
'oasst-sft-1-pythia-12b' : oasst_sft_1_pythia_12b, | |
'oasst-sft-4-pythia-12b-epoch-3.5' : oasst_sft_4_pythia_12b_epoch_35, | |
'command-light-nightly' : command_light_nightly, | |
'pi': pi | |
} | |
_all_models = list(ModelUtils.convert.keys()) | |