When integrating LLM or AI models into your application, implement model selection in a way that accommodates the rapid evolution of AI capabilities without requiring frequent code deployments.
When integrating LLM or AI models into your application, implement model selection in a way that accommodates the rapid evolution of AI capabilities without requiring frequent code deployments.
Use Django enums or similar in-code definitions for validation while avoiding database-level constraints like Postgres enums that are difficult to modify:
# Recommended approach:
class AIModelConfig(models.Model):
# Define choices in code for validation
MODEL_CHOICES = [
"gpt-4o",
"gpt-4o-mini",
# Add new models here without database migrations
]
# Use CharField with validation in clean() instead of ChoiceField
model = models.CharField(
max_length=50,
blank=False,
null=False,
help_text="Must be one of the supported model names"
)
def clean(self):
# Validate model name
if self.model not in self.MODEL_CHOICES:
raise ValidationError(
f"Model must be one of: {', '.join(self.MODEL_CHOICES)}"
)
This pattern allows you to add support for new AI models by updating the MODEL_CHOICES list without requiring database migrations or application updates, while still maintaining validation to ensure only supported models are used.
Enter the URL of a public GitHub repository