

class Model:

    class OpenAI:
        GPT_4_0314 = "gpt-4-0314"
        GPT_35_TURBO_0301 = "gpt-3.5-turbo-0301"
        GPT_35_TURBO = "gpt-3.5-turbo"
        GPT_35_TURBO_16K = "gpt-3.5-turbo-16k"
        GPT_4_0125_PREVIEW = "gpt-4-0125-preview"
        GPT_4_TURBO_PREVIEW = "gpt-4-turbo-preview"
        GPT_4_1106_PREVIEW = "gpt-4-1106-preview"
        GPT_4_0613 = "gpt-4-0613"
        GPT_4_VISION_PREVIEW = "gpt-4-vision-preview"
        GPT_4 = "gpt-4"
        GPT_35_TURBO_1106 = "gpt-3.5-turbo-1106"
        GPT_35_TURBO_0613 = "gpt-3.5-turbo-0613"
        GPT_35_TURBO_16K_0613 = "gpt-3.5-turbo-16k-0613"
        GPT_35_TURBO_0125 = "gpt-3.5-turbo-0125"
        GPT_4O = "gpt-4o"
        CHATGPT_4O_LATEST = "chatgpt-4o-latest"
        TEXT_EMBEDDING_ADA_002_V2 = "text-embedding-ada-002-v2"
        TEXT_EMBEDDING_ADA_002 = "text-embedding-ada-002"
        TEXT_EMBEDDING_3_SMALL = "text-embedding-3-small"
        TEXT_EMBEDDING_3_LARGE = "text-embedding-3-large"
        DALL_E_2 = "dall-e-2"
        DALL_E_3 = "dall-e-3"
        GPT_4O_MINI = "gpt-4o-mini"
        GPT_4O_MINI_2024_07_18 = "gpt-4o-mini-2024-07-18"
        GPT_4O_2024_08_06 = "gpt-4o-2024-08-06"
        O1_PREVIEW = "o1-preview"
        O1_MINI = "o1-mini"
        GPT_4O_2024_11_20 = "gpt-4o-2024-11-20"
        O1 = "o1"
        O3_MINI = "o3-mini"

    class Anthropic:
        CLAUDE_3_SONNET_20240229 = "claude-3-sonnet-20240229"
        CLAUDE_3_HAIKU_20240307 = "claude-3-haiku-20240307"
        CLAUDE_3_OPUS_20240229 = "claude-3-opus-20240229"
        CLAUDE_3_5_SONNET_20240620 = "claude-3-5-sonnet-20240620"
        CLAUDE_3_5_SONNET_20241022 = "claude-3-5-sonnet-20241022"
        CLAUDE_3_5_HAIKU_20241022 = "claude-3-5-haiku-20241022"

    class AWSBedrock:
        ANTHROPIC_CLAUDE_3_HAIKU = "anthropic.claude-3-haiku"
        ANTHROPIC_CLAUDE_3_SONNET = "anthropic.claude-3-sonnet"
        ANTHROPIC_CLAUDE_3_OPUS = "anthropic.claude-3-opus"
        ANTHROPIC_CLAUDE_3_5_SONNET = "anthropic.claude-3.5-sonnet"
        ANTHROPIC_CLAUDE_3_5_SONNET_V2 = "anthropic.claude-3.5-sonnet-v2"
        META_LLAMA3_8B = "meta.llama3-8b"
        META_LLAMA3_70B = "meta.llama3-70b"
        AMAZON_TITAN_LITE_V1 = "amazon.titan-lite-v1"
        AMAZON_TITAN_EXPRESS_V1 = "amazon.titan-express-v1"
        AMAZON_TITAN_EMBED_V2 = "amazon.titan-embed-v2"
        COHERE_COMMAND = "cohere.command"
        COHERE_EMBED_ENGLISH = "cohere.embed-english"
        COHERE_EMBED_MULTILINGUAL = "cohere.embed-multilingual"
        META_LLAMA3_1_70B = "meta.llama3-1-70b"
        META_LLAMA3_1_405B = "meta.llama3-1-405b"
        META_LLAMA3_2_1B = "meta.llama3-2-1b"
        META_LLAMA3_2_3B = "meta.llama3-2-3b"
        META_LLAMA3_2_11B = "meta.llama3-2-11b"
        META_LLAMA3_2_90B = "meta.llama3-2-90b"
        ANTHROPIC_CLAUDE_3_5_HAIKU = "anthropic.claude-3.5-haiku"
        AMAZON_NOVA_MICRO_V1_0 = "amazon.nova-micro-v1:0"
        AMAZON_NOVA_LITE_V1_0 = "amazon.nova-lite-v1:0"
        AMAZON_NOVA_PRO_V1_0 = "amazon.nova-pro-v1:0"
        COHERE_RERANK_V3_5 = "cohere.rerank-v3.5"
        AMAZON_RERANK_V1 = "amazon.rerank-v1"
        AMAZON_TITAN_EMBED_IMAGE_V1 = "amazon.titan-embed-image-v1"

    class AzureOpenAI:
        GPT_35_TURBO_16K = "gpt-3.5-turbo-16k"
        GPT_4 = "gpt-4"
        GPT_4O_MINI = "gpt-4o-mini"
        GPT_4O = "gpt-4o"
        TEXT_EMBEDDING_ADA_002 = "text-embedding-ada-002"
        TEXT_EMBEDDING_3_SMALL = "text-embedding-3-small"
        DEEPSEEK_R1 = "deepseek-r1"

    class Cerebras:
        LLAMA3_1_8B = "llama3.1-8b"
        LLAMA3_1_70B = "llama3.1-70b"
        LLAMA3_3_70B = "llama-3.3-70b"

    class CohereModels:
        COMMAND_R = "command-r"
        COMMAND_R_08_2024 = "command-r-08-2024"
        COMMAND_R_PLUS = "command-r-plus"
        COMMAND_R_PLUS_08_2024 = "command-r-plus-08-2024"
        COMMAND_R7B_12_2024 = "command-r7b-12-2024"
        EMBED_ENGLISH_V3_0 = "embed-english-v3.0"
        EMBED_MULTILINGUAL_V3_0 = "embed-multilingual-v3.0"
        EMBED_ENGLISH_LIGHT_V3_0 = "embed-english-light-v3.0"
        EMBED_MULTILINGUAL_LIGHT_V3_0 = "embed-multilingual-light-v3.0"
        RERANK_V3_5 = "rerank-v3.5"

    class Gemini:
        GEMINI_1_5_FLASH_LATEST = "gemini-1.5-flash-latest"
        GEMINI_1_5_FLASH_EXP_0827 = "gemini-1.5-flash-exp-0827"
        GEMINI_1_5_FLASH_8B_EXP_0827 = "gemini-1.5-flash-8b-exp-0827"
        GEMINI_1_5_PRO_LATEST = "gemini-1.5-pro-latest"
        GEMINI_1_5_PRO_EXP_0801 = "gemini-1.5-pro-exp-0801"
        GEMINI_1_5_PRO_EXP_0827 = "gemini-1.5-pro-exp-0827"
        GEMINI_EXP_1114 = "gemini-exp-1114"
        GEMINI_EXP_1121 = "gemini-exp-1121"
        GEMINI_EXP_1206 = "gemini-exp-1206"
        GEMINI_2_0_FLASH_EXP = "gemini-2.0-flash-exp"
        GEMINI_2_0_FLASH_THINKING_EXP_1219 = "gemini-2.0-flash-thinking-exp-1219"
        GEMINI_2_0_FLASH_THINKING_EXP_01_21 = "gemini-2.0-flash-thinking-exp-01-21"
        GEMINI_2_0_FLASH_LITE_PREVIEW = "gemini-2.0-flash-lite-preview"
        GEMINI_2_0_PRO_EXP = "gemini-2.0-pro-exp"

    class VertexAI:
        GEMINI_1_5_FLASH_PREVIEW_0514 = "gemini-1.5-flash-preview-0514"
        GEMINI_1_5_PRO_PREVIEW_0409 = "gemini-1.5-pro-preview-0409"
        GEMINI_1_5_PRO_PREVIEW_0514 = "gemini-1.5-pro-preview-0514"
        GEMINI_1_0_PRO = "gemini-1.0-pro"
        GEMINI_PRO = "gemini-pro"
        CLAUDE_3_SONNET_20240229 = "claude-3-sonnet-20240229"
        CLAUDE_3_HAIKU_20240307 = "claude-3-haiku-20240307"
        CLAUDE_3_OPUS_20240229 = "claude-3-opus-20240229"
        CLAUDE_3_5_SONNET_20240620 = "claude-3-5-sonnet-20240620"
        GEMINI_1_5_FLASH = "gemini-1.5-flash"
        GEMINI_1_5_PRO = "gemini-1.5-pro"
        GEMINI_1_5_PRO_LATEST = "gemini-1.5-pro-latest"
        GEMINI_1_5_PRO_EXP_0801 = "gemini-1.5-pro-exp-0801"
        TEXT_EMBEDDING_004 = "text-embedding-004"
        TEXT_EMBEDDING_GECKO = "textembedding-gecko"
        TEXT_EMBEDDING_GECKO_MULTILINGUAL = "textembedding-gecko-multilingual"
        META_LLAMA_3_2_90B_VISION_INSTRUCT_MAAS = "meta.llama-3.2-90b-vision-instruct-maas"
        CLAUDE_3_5_SONNET_V2_20241022 = "claude-3-5-sonnet-v2-20241022"
        GEMINI_1_5_PRO_002 = "gemini-1.5-pro-002"
        GEMINI_1_5_PRO_002_LB = "gemini-1.5-pro-002-lb"
        GEMINI_1_5_FLASH_002 = "gemini-1.5-flash-002"
        GEMINI_1_5_FLASH_002_LB = "gemini-1.5-flash-002-lb"
        CLAUDE_3_5_HAIKU_20241022 = "claude-3-5-haiku-20241022"
        META_LLAMA_3_1_405B_INSTRUCT_MAAS = "meta.llama-3.1-405b-instruct-maas"
        META_LLAMA_3_1_70B_INSTRUCT_MAAS = "meta.llama-3.1-70b-instruct-maas"
        META_LLAMA_3_1_8B_INSTRUCT_MAAS = "meta.llama-3.1-8b-instruct-maas"
        GEMINI_2_0_FLASH_EXP = "gemini-2.0-flash-exp"
        CODESTRAL_2501 = "codestral-2501"
        GEMINI_2_0_FLASH_THINKING_EXP_01_21 = "gemini-2.0-flash-thinking-exp-01-21"
        GEMINI_2_0_FLASH_001 = "gemini-2.0-flash-001"

    class Groq:
        LLAMA_3_1_70B_VERSATILE = "llama-3.1-70b-versatile"
        LLAMA_3_1_405B_REASONING = "llama-3.1-405b-reasoning"
        LLAMA_3_2_1B_PREVIEW = "llama-3.2-1b-preview"
        LLAMA_3_2_3B_PREVIEW = "llama-3.2-3b-preview"
        LLAMA_3_2_11B_VISION_PREVIEW = "llama-3.2-11b-vision-preview"
        LLAMA_3_2_90B_VISION_PREVIEW = "llama-3.2-90b-vision-preview"
        LLAMA_3_1_8B_INSTANT = "llama-3.1-8b-instant"
        MIXTRAL_8X7B_32768 = "mixtral-8x7b-32768"
        LLAMA_3_3_70B_VERSATILE = "llama-3.3-70b-versatile"
        DEEPSEEK_R1_DISTILL_LLAMA_70B = "deepseek-r1-distill-llama-70b"

    class Nvidia:
        NEMOTRON_MINI_4B_INSTRUCT = "nvidia.nemotron-mini-4b-instruct"
        META_LLAMA_3_1_8B_INSTRUCT = "meta.llama-3.1-8b-instruct"
        META_LLAMA_3_1_70B_INSTRUCT = "meta.llama-3.1-70b-instruct"
        META_LLAMA_3_1_405B_INSTRUCT = "meta.llama-3.1-405b-instruct"
        META_LLAMA_3_2_1B_INSTRUCT = "meta.llama-3.2-1b-instruct"
        META_LLAMA_3_2_3B_INSTRUCT = "meta.llama-3.2-3b-instruct"
        BAAI_BGE_M3 = "baai.bge-m3"
        NV_EMBED_V1 = "nv-embed-v1"
        NVCLIP = "nvclip"
        EMBED_QA_4 = "embed-qa-4"
        NV_EMBEDQA_E5_V5 = "nv-embedqa-e5-v5"
        SNOWFLAKE_ARCTIC_EMBED_L = "snowflake.arctic-embed-l"
        NV_EMBEDQA_MISTRAL_7B_V2 = "nv-embedqa-mistral-7b-v2"
        LLAMA_3_1_NEMOTRON_70B_INSTRUCT = "llama-3.1-nemotron-70b-instruct"
        DEEPSEEK_AI_DEEPSEEK_R1 = "deepseek-ai-deepseek-r1"

    class SambaNova:
        QWEN_2_5_72B_INSTRUCT = "Qwen2.5-72B-Instruct"
        QWEN_2_5_CODER_32B_INSTRUCT = "Qwen2.5-Coder-32B-Instruct"
        META_LLAMA_3_1_8B_INSTRUCT = "Meta-Llama-3.1-8B-Instruct"
        META_LLAMA_3_1_70B_INSTRUCT = "Meta-Llama-3.1-70B-Instruct"
        META_LLAMA_3_1_405B_INSTRUCT = "Meta-Llama-3.1-405B-Instruct"
        META_LLAMA_3_2_1B_INSTRUCT = "Meta-Llama-3.2-1B-Instruct"
        META_LLAMA_3_2_3B_INSTRUCT = "Meta-Llama-3.2-3B-Instruct"
        LLAMA_3_2_11B_VISION_INSTRUCT = "Llama-3.2-11B-Vision-Instruct"
        LLAMA_3_2_90B_VISION_INSTRUCT = "Llama-3.2-90B-Vision-Instruct"
        META_LLAMA_3_3_70B_INSTRUCT = "Meta-Llama-3.3-70B-Instruct"
