Files
igny8/docs/AI_SYSTEM_AUDIT.md
IGNY8 VPS (Salman) 3283a83b42 feat(migrations): Rename indexes and update global integration settings fields for improved clarity and functionality
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
2025-12-20 12:55:05 +00:00

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)