Video QC: * _extract_locale_from_filename now also handles the suffix form ..._XX-yy.ext (case-insensitive both sides), so DOOH/OOH-style adapt filenames like ..._ES-es.mp4 unblock the price_currency check instead of skipping with "could not extract locale". * Batch results page expires the SQLAlchemy session at the top of the route so the post-completion reload sees committed reports even when it lands on a different gunicorn worker than the one that wrote them. Reload delay bumped 1s → 2s for margin. * visual_quality prompt now passes the filename's market+language to the LLM and tells it the on-screen copy should be in the localized language, not the source-language guideline copy. Stops Spanish-market videos being flagged as "language mismatch with English campaign guidelines". Printer Check: * regions.json rewritten to cover all 10 H&M regions (AME, CEU, NEU, GCN, IND, SHE, SEU, EEU, EAS, Franchise) with default-all groups. Two judgement calls vs the screenshot: kept TR for Turkey (TK is Tokelau in ISO and would break filename matching) and BR for Brazil (every other code is 2-letter ISO). Campaign codes: * New core/utils/campaign_code.py is the single source of truth. Matches both the legacy 4-digits-plus-optional-letter (1013A, 4116) and the new 11-char alphanumeric with year at positions 5-6 (CFUL263C01D). All four prior parser sites now import from this helper. Video Master: * BOX_CAMPAIGNS_FOLDER_ID switched 156182880490 → 133295752718 (same root the Reporting tool uses). Updated config.py default and all three .env example files. * Match page now shows which Box folder the search runs against (with a clickable link), and on a not-found error explains what was searched for so missing-campaign cases are self-diagnosable.
31 lines
876 B
Text
31 lines
876 B
Text
# HM AI QC — Dev environment starter
|
|
# Copy to /opt/hm-aiqc/.env and fill in real secrets.
|
|
|
|
# Azure AD authentication (shared with AI QC sibling project)
|
|
AZURE_TENANT_ID=e519c2e6-bc6d-4fdf-8d9c-923c2f002385
|
|
AZURE_CLIENT_ID=9079054c-9620-4757-a256-23413042f1ef
|
|
|
|
ENVIRONMENT=development
|
|
|
|
# Box Configuration
|
|
BOX_CONFIG_PATH=config/box_config.json
|
|
BOX_REPORT_FOLDER_ID=133295752718
|
|
BOX_CAMPAIGNS_FOLDER_ID=133295752718
|
|
|
|
# Flask
|
|
FLASK_APP=app:app
|
|
FLASK_ENV=production
|
|
# Generate with: python -c 'import secrets; print(secrets.token_urlsafe(48))'
|
|
SECRET_KEY=replace-me-with-a-long-random-string
|
|
|
|
# Server
|
|
HOST=0.0.0.0
|
|
PORT=5000
|
|
|
|
# Database — absolute path inside the container, mapped to ./database on host
|
|
DATABASE_URI=sqlite:////app/database/qc_platform.db
|
|
|
|
# LLM Provider Keys (NO HARDCODED KEYS — set real values below)
|
|
OPENAI_API_KEY=
|
|
GOOGLE_API_KEY=
|
|
ANTHROPIC_API_KEY=
|