feat(admin): Add API monitoring, debug console, and system health templates for enhanced admin interface docs: Add AI system cleanup summary and audit report detailing architecture, token management, and recommendations docs: Introduce credits and tokens system guide outlining configuration, data flow, and monitoring strategies
80 lines
2.7 KiB
Markdown
80 lines
2.7 KiB
Markdown
# AI System Audit Report
|
|
|
|
## Current State
|
|
|
|
### Active AI System (New Architecture)
|
|
**Location:** `backend/igny8_core/ai/`
|
|
|
|
**Core Components:**
|
|
- `ai_core.py` - Central AI request handler (run_ai_request method)
|
|
- `engine.py` - Orchestrator for all AI functions
|
|
- `settings.py` - Model configuration loader
|
|
- `prompts.py` - Prompt templates
|
|
- `base.py` - Base class for AI functions
|
|
- `tasks.py` - Celery tasks
|
|
- `models.py` - AITaskLog for logging
|
|
- `tracker.py` - Progress/step tracking
|
|
- `registry.py` - Function registry
|
|
- `constants.py` - Shared constants (MODEL_RATES, etc.)
|
|
|
|
**AI Functions:**
|
|
- `functions/auto_cluster.py` - Keyword clustering
|
|
- `functions/generate_ideas.py` - Content idea generation
|
|
- `functions/generate_content.py` - Article content generation
|
|
- `functions/generate_images.py` - Image generation
|
|
- `functions/generate_image_prompts.py` - Image prompt generation
|
|
- `functions/optimize_content.py` - Content optimization
|
|
|
|
**Usage:** All new code uses `AIEngine` + function classes
|
|
|
|
### Legacy AI System (Old Architecture)
|
|
**Location:** `backend/igny8_core/utils/ai_processor.py`
|
|
|
|
**Purpose:** Original AI interface from reference plugin migration
|
|
**Size:** 1390 lines
|
|
**Status:** PARTIALLY USED - Only for:
|
|
- MODEL_RATES constant (imported by settings.py and integration_views.py)
|
|
- Integration test views
|
|
|
|
**NOT USED FOR:** Actual AI function execution (replaced by AIEngine)
|
|
|
|
## max_tokens Fallback Analysis
|
|
|
|
### Current Fallbacks Found:
|
|
|
|
1. **settings.py:103** - `config.get('max_tokens', 16384)`
|
|
- Falls back to 16384 if not in IntegrationSettings
|
|
|
|
2. **ai_core.py:116** - `max_tokens: int = 8192`
|
|
- Default parameter in run_ai_request()
|
|
|
|
3. **ai_core.py:856** - `max_tokens: int = 4000` **[LEGACY]**
|
|
- Legacy call_openai() method
|
|
|
|
4. **ai_processor.py:111** - `max_tokens: int = 4000` **[LEGACY]**
|
|
- Legacy _call_openai() method
|
|
|
|
5. **ai_processor.py:437** - `max_tokens: int = 4000` **[LEGACY]**
|
|
- Legacy generate_content() method
|
|
|
|
6. **ai_processor.py:531** - Hardcoded `max_tokens=1000`
|
|
|
|
7. **ai_processor.py:1133** - Hardcoded `max_tokens=3000`
|
|
|
|
8. **ai_processor.py:1340** - Hardcoded `max_tokens=4000`
|
|
|
|
## Recommended Actions
|
|
|
|
### 1. Standardize max_tokens to 8192
|
|
- Remove fallback in settings.py (line 103): Change to just `config['max_tokens']` and require it
|
|
- Keep ai_core.py:116 default at 8192 (main entry point)
|
|
- Update IntegrationSettings to have 8192 as required value
|
|
|
|
### 2. Mark Legacy Code
|
|
- Add deprecation warnings to ai_processor.py
|
|
- Document that it's only kept for MODEL_RATES constant
|
|
- Consider extracting MODEL_RATES to constants.py and removing ai_processor.py entirely
|
|
|
|
### 3. Remove Dead Code
|
|
- call_openai() legacy method in ai_core.py (if not used)
|