routeur_ia_api / domain /enums.py
Cyril Dupland
FIrst Commit
d28f1ed
raw
history blame
1.35 kB
"""Enums for the domain layer."""
from enum import Enum
class ModelProvider(str, Enum):
"""LLM model providers."""
OPENAI = "openai"
MISTRALAI = "mistralai"
class ModelName(str, Enum):
"""Available LLM models."""
# OpenAI models
GPT_5_PRO = "gpt-5-pro"
GPT_4 = "gpt-4"
# GPT_4_TURBO = "gpt-4-turbo-preview"
# GPT_4O = "gpt-4o"
# GPT_35_TURBO = "gpt-3.5-turbo"
# Mistral AI models
MISTRAL_LARGE = "mistral-large-latest"
# MISTRAL_MEDIUM = "mistral-medium-latest"
# MISTRAL_SMALL = "mistral-small-latest"
# MISTRAL_TINY = "mistral-tiny"
@property
def provider(self) -> ModelProvider:
"""Get the provider for this model."""
if self.value.startswith("gpt-"):
return ModelProvider.OPENAI
elif self.value.startswith("mistral-"):
return ModelProvider.MISTRALAI
raise ValueError(f"Unknown provider for model: {self.value}")
@classmethod
def list_by_provider(cls, provider: ModelProvider) -> list[str]:
"""List all models for a given provider."""
return [
model.value for model in cls
if model.provider == provider
]
class AgentType(str, Enum):
"""Available agent types."""
SIMPLE = "simple"
RAG = "rag"
TOOLS = "tools"
CUSTOM = "custom"