Django admin cleanup
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
My Recommendation: Simplify to 3 Core Concepts
|
||||
Based on analyzing your plans and the current system, here's the simplest path forward:
|
||||
Current Pain Points (Summarized)
|
||||
Area Problem
|
||||
API Keys Scattered in GlobalIntegrationSettings with unused fields (anthropic, bria)
|
||||
Models Duplicated in DB (AIModelConfig), constants.py, GlobalIntegrationSettings CHOICES, frontend
|
||||
Credits Split between CreditCostConfig (token-based) and image models (per-image) - confusing
|
||||
Frontend Hardcoded model lists, not dynamic
|
||||
Proposed Simplified Architecture
|
||||
Instead of 7-phase migration, do this:
|
||||
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ SIMPLIFIED TARGET STATE │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
|
||||
1. AIModelConfig (ENHANCED) - SINGLE SOURCE OF TRUTH
|
||||
├── All models (text + image)
|
||||
├── is_default flag (one per type)
|
||||
├── tokens_per_credit (text models)
|
||||
├── credits_per_image (image models)
|
||||
├── quality_tier (basic/quality/premium for user display)
|
||||
└── provider field links to API key source
|
||||
|
||||
2. IntegrationProvider (NEW) - API KEYS ONLY
|
||||
├── openai → api_key
|
||||
├── runware → api_key
|
||||
└── (future: resend, stripe, etc.)
|
||||
|
||||
3. GlobalIntegrationSettings (SIMPLIFIED) - NON-MODEL SETTINGS ONLY
|
||||
├── image_style: "photorealistic"
|
||||
├── max_in_article_images: 4
|
||||
└── temperature: 0.7
|
||||
(NO model names, NO API keys, NO hardcoded choices)
|
||||
User-Facing Simplification
|
||||
For Images (what user sees):
|
||||
|
||||
Quality Selection:
|
||||
○ Basic (1 credit/image) ← maps to runware:97@1
|
||||
○ Quality (5 credits/image) ← maps to dall-e-3
|
||||
○ Premium (15 credits/image) ← maps to google:4@2
|
||||
|
||||
Image Count: [1-8 dropdown]
|
||||
User picks quality tier + count. Backend handles:
|
||||
Model selection based on quality_tier
|
||||
Credit calculation: credits_per_image × count
|
||||
API routing to correct provider
|
||||
For Text (hidden from user):
|
||||
Admin controls default model in AIModelConfig.is_default
|
||||
User has NO options - uses system default
|
||||
Credits calculated: ceil(tokens / tokens_per_credit)
|
||||
Simplest Migration Path
|
||||
Phase 1: Add fields to AIModelConfig (no breaking changes)
|
||||
|
||||
# Add to existing AIModelConfig
|
||||
credits_per_image = IntegerField(null=True) # For image models
|
||||
tokens_per_credit = IntegerField(null=True) # For text models
|
||||
quality_tier = CharField(choices=['basic','quality','premium'])
|
||||
Phase 2: Create IntegrationProvider (move API keys)
|
||||
|
||||
# New simple model
|
||||
class IntegrationProvider(Model):
|
||||
provider_id = CharField(primary_key=True) # openai, runware
|
||||
api_key = CharField()
|
||||
is_active = BooleanField()
|
||||
Phase 3: Create single API endpoint
|
||||
|
||||
GET /api/v1/system/ai-config/
|
||||
Returns:
|
||||
{
|
||||
"image_qualities": [
|
||||
{"tier": "basic", "credits_per_image": 1, "label": "Basic"},
|
||||
{"tier": "quality", "credits_per_image": 5, "label": "Quality"},
|
||||
{"tier": "premium", "credits_per_image": 15, "label": "Premium"}
|
||||
],
|
||||
"text_model": "gpt-5.1", // Admin-controlled, user can't change
|
||||
"image_style": "photorealistic",
|
||||
"max_images": 4
|
||||
}
|
||||
Phase 4: Update frontend - load from API, remove hardcodes Phase 5: Cleanup - remove legacy fields from GlobalIntegrationSettings
|
||||
Key Simplifications
|
||||
Before After
|
||||
User picks model name User picks quality tier
|
||||
Multiple credit calculation paths One path: AIModelConfig
|
||||
API keys in GlobalIntegrationSettings API keys in IntegrationProvider
|
||||
Hardcoded constants.py rates All from database
|
||||
6+ admin pages to configure 2 pages: Models + Providers
|
||||
Do you want me to:
|
||||
Start implementing this simplified approach? - I can create the migration files and update the models
|
||||
Create a more detailed breakdown of each phase with specific file changes?
|
||||
Focus on a specific area first (e.g., just fix image credits, or just move API keys)?
|
||||
The existing plans in your docs are comprehensive but may be over-engineered. The core problem is simpler: consolidate to AIModelConfig as single source of truth, give users quality tiers instead of model names, and move API keys to a dedicated model.
|
||||
Reference in New Issue
Block a user