No description
Find a file
nickviljoen 16741a96d6 Add L'Oréal Static General profile with multi-file queue and enhanced reporting
## New Features

### L'Oréal Static General Profile
- Created new profile with 3 checks optimized for digital marketing assets
- Even weighting (33.3% each) for 100-point scoring scale
- Removed print-specific requirements (3m viewing distance)
- Focus on marketing text vs product packaging distinction

### Multi-File Queue System (web_ui.html)
- Added file queue functionality for batch processing
- Users can now upload and process multiple files simultaneously
- Queue displays file status (pending, analyzing, complete, error)
- Individual file removal and queue clearing options
- Progress tracking for batch operations

### New General QC Checks
1. background_contrast_general
   - Optimized for digital assets (no distance requirements)
   - Checks logo, product, and marketing text contrast
   - Detects overlapping and blending issues
   - Provides element-by-element breakdown

2. text_readability_general
   - Focus on marketing text only (excludes product packaging)
   - Checks for overlapping elements
   - Digital readability optimization
   - Specific issue identification

3. language_consistency (enhanced)
   - Better distinction between marketing and packaging text
   - Detailed language detection and reporting
   - Lists specific text analyzed

### Usage Tracking System
- Added usage_tracker.py for analysis logging
- Tracks user activity, profile usage, and costs
- Daily log files in JSONL format
- Cost estimation per LLM provider

## Bug Fixes

### Authentication & User Management
- Fixed Flask 'g' import missing issue
- Fixed user info access in background threads
- Pass user_info to threads instead of accessing g.user
- Improved error handling for usage logging

### HTML Report Generation
- Fixed missing analysis details in reports
- Now extracts and displays all JSON fields properly
- Shows comprehensive breakdowns:
  - Analysis details
  - Elements checked (logo, product, text)
  - Marketing text found
  - Issues identified
  - Specific recommendations
- No more blank "Pass/Fail" results

### Scoring System
- Fixed usage_tracker to handle dict of check results (not list)
- Better handling of model_used field variations
- Skip non-dict check results gracefully

## Configuration Changes

### Model Versions (llm_config.py)
- Fixed invalid GPT-4.1 model ID to gpt-4o
- Added Gemini 3 Pro beta model option
- AVAILABLE_MODELS dict for UI selection
- Model version override support

### Profile Updates
- Static General: 3 checks, total weight 10.0
- Each check: text_readability_general (3.33), background_contrast_general (3.33), language_consistency (3.34)
- Maximum score: 100 points

## Technical Improvements

- Enhanced prompt engineering for consistent LLM outputs
- Mandatory detailed explanations in all checks
- Structured JSON responses with comprehensive fields
- Better error messages and fallback handling
- Client configuration support (client_config.py)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-02 10:58:39 +02:00
__pycache__ Updated tool discriptions 2025-12-06 14:54:36 +02:00
backend Add L'Oréal Static General profile with multi-file queue and enhanced reporting 2026-02-02 10:58:39 +02:00
config updates 2025-11-06 09:40:34 +02:00
frontend Create frontend and backend folder structure for deployment 2025-11-06 11:55:53 +02:00
output Have created Dev and Prod enviroments to test locally 2025-09-11 21:58:44 +02:00
uploads updates 2025-11-06 09:40:34 +02:00
.gitignore diagnostic test 2026-01-19 22:17:18 +02:00
ai_qc.service Add production deployment migration guide and configuration files 2025-11-06 11:45:31 +02:00
apache_config.conf Add production deployment migration guide and configuration files 2025-11-06 11:45:31 +02:00
AUTH_FIX_GUIDE.md diagnostic test 2026-01-19 22:17:18 +02:00
backend_backup_20251206_153116.tar.gz Improvements to Prod vs Dev testing 2025-12-06 15:39:13 +02:00
CLAUDE.md Add comprehensive production deployment documentation 2025-11-06 23:23:02 +02:00
CLEANUP_SUMMARY.md initial commit 2025-08-12 14:52:49 -05:00
config.env SSO Added 2025-08-20 15:30:29 +02:00
debug_mode.txt Updated UI for creating profiles and profile discriptions 2025-12-06 14:32:47 +02:00
DEPLOYMENT_RESTRUCTURE.md Add production deployment migration guide and configuration files 2025-11-06 11:45:31 +02:00
DEPLOYMENT_STEPS.md UI Update to be more BTG look and feel 2025-11-15 10:52:52 +02:00
DEV_PROD_SETUP.md Have created Dev and Prod enviroments to test locally 2025-09-11 21:58:44 +02:00
FOLDER_STRUCTURE.md Create frontend and backend folder structure for deployment 2025-11-06 11:55:53 +02:00
headless_curl_examples.sh initial commit 2025-08-12 14:52:49 -05:00
MIGRATION_CHECKLIST.md Add production deployment migration guide and configuration files 2025-11-06 11:45:31 +02:00
MIGRATION_GUIDE.md Add production deployment migration guide and configuration files 2025-11-06 11:45:31 +02:00
MIGRATION_SUMMARY.md Add production deployment migration guide and configuration files 2025-11-06 11:45:31 +02:00
msal_pkce_flow.md SSO Added 2025-08-20 15:30:29 +02:00
README.md Improvements to Prod vs Dev testing 2025-12-06 15:39:13 +02:00
REORGANIZATION_COMPLETE.md Add reorganization completion summary document 2025-11-06 11:57:31 +02:00
requirements.txt Add production deployment migration guide and configuration files 2025-11-06 11:45:31 +02:00
server.log initial commit 2025-08-12 14:52:49 -05:00
server_debug.log initial commit 2025-08-12 14:52:49 -05:00
web_ui.html Add L'Oréal Static General profile with multi-file queue and enhanced reporting 2026-02-02 10:58:39 +02:00

Visual AI QC - Repository Structure

⚠️ Important: Work in backend/ Directory

All development and production code is now in the backend/ directory.

Directory Structure

ai_qc/
├── backend/              # 👈 MAIN APPLICATION - Work here!
│   ├── api_server.py     # Flask application
│   ├── llm_config.py     # LLM configuration (Gemini model settings)
│   ├── profile_config.py # Profile management
│   ├── visual_qc_apps/   # QC check modules (33 checks)
│   ├── profiles/         # QC profile configurations (6 profiles)
│   ├── brand_guidelines/ # Reference assets
│   ├── scripts/          # Deployment scripts
│   ├── config/           # Environment configs
│   ├── uploads/          # File uploads (production)
│   ├── output/           # Generated reports (production)
│   └── ...               # All other application files
│
├── frontend/             # Frontend-only deployment (optional)
├── config/               # Legacy config (deprecated)
└── CLAUDE.md             # Development guide

Quick Start

Local Development

cd backend/
./scripts/run-local.sh
# Access at http://localhost:7183

Production Deployment

# SSH to production server
ssh user@server

# Deploy backend to /opt/ai_qc
cd /opt/ai_qc
git pull origin main
cd backend
sudo systemctl restart ai_qc.service

Why This Structure?

Previously, we had duplicate files in both root and backend/ directories, causing sync issues. Now:

Single source of truth: All code in backend/ No sync issues: No duplicate files to keep in sync Clear structure: Production deploys from backend/ Simpler workflow: One place to make changes

Documentation

  • Full Documentation: See backend/CLAUDE.md
  • Deployment Guide: See backend/DEV_PROD_SETUP.md
  • API Endpoints: See backend/README.md

Making Changes

  1. Navigate to backend/
  2. Make your changes
  3. Test locally with ./scripts/run-local.sh
  4. Commit and push
  5. Deploy to production: git pull on server

🚀 Always work in the backend/ directory!