99 lines
3.1 KiB
Python
99 lines
3.1 KiB
Python
"""
|
|
Configuration v2.0 - Zero Risk Production Settings
|
|
"""
|
|
import os
|
|
from pathlib import Path
|
|
|
|
# Load .env file if present
|
|
try:
|
|
from dotenv import load_dotenv
|
|
env_path = Path(__file__).resolve().parent / ".env"
|
|
# print(f"🔍 Looking for .env at: {env_path}")
|
|
load_dotenv(dotenv_path=env_path)
|
|
except ImportError:
|
|
pass # dotenv not installed, use system env
|
|
|
|
# Base Directory
|
|
BASE_DIR = Path(__file__).resolve().parent
|
|
|
|
# Data Paths
|
|
DATA_DIR = BASE_DIR / "data"
|
|
OUTPUT_DIR = BASE_DIR / "output"
|
|
|
|
# Ensure directories exist
|
|
DATA_DIR.mkdir(parents=True, exist_ok=True)
|
|
OUTPUT_DIR.mkdir(parents=True, exist_ok=True)
|
|
|
|
# API Configuration
|
|
ANTHROPIC_API_KEY = os.getenv("ANTHROPIC_API_KEY")
|
|
|
|
# Model Settings
|
|
LLM_MODEL = "claude-3-haiku-20240307" # Stable, cost-effective
|
|
LLM_TEMPERATURE = 0.5 # Balance between creativity and consistency
|
|
LLM_MAX_TOKENS = 4000
|
|
|
|
# Batch Processing
|
|
BATCH_SIZE = 50 # Students per batch
|
|
QUESTIONS_PER_PROMPT = 15 # Optimized for reliability (avoiding LLM refusals)
|
|
LLM_DELAY = 0.5 # Optimized for Turbo Production (Phase 9)
|
|
MAX_WORKERS = 5 # Thread pool size for concurrent simulation
|
|
|
|
# Dry Run Settings (set to None for full run)
|
|
# DRY_RUN: 1 adolescent + 1 adult across all domains
|
|
DRY_RUN_STUDENTS = 2 # Set to None for full run
|
|
|
|
# Domain Configuration
|
|
DOMAINS = [
|
|
'Personality',
|
|
'Grit',
|
|
'Emotional Intelligence',
|
|
'Vocational Interest',
|
|
'Learning Strategies',
|
|
]
|
|
|
|
# Age Groups
|
|
AGE_GROUPS = {
|
|
'adolescent': '14-17',
|
|
'adult': '18-23',
|
|
}
|
|
|
|
# Cognition Test Names
|
|
COGNITION_TESTS = [
|
|
'Cognitive_Flexibility_Test',
|
|
'Color_Stroop_Task',
|
|
'Problem_Solving_Test_MRO',
|
|
'Problem_Solving_Test_MR',
|
|
'Problem_Solving_Test_NPS',
|
|
'Problem_Solving_Test_SBDM',
|
|
'Reasoning_Tasks_AR',
|
|
'Reasoning_Tasks_DR',
|
|
'Reasoning_Tasks_NR',
|
|
'Response_Inhibition_Task',
|
|
'Sternberg_Working_Memory_Task',
|
|
'Visual_Paired_Associates_Test'
|
|
]
|
|
|
|
# Output File Names for Cognition
|
|
COGNITION_FILE_NAMES = {
|
|
'Cognitive_Flexibility_Test': 'Cognitive_Flexibility_Test_{age}.xlsx',
|
|
'Color_Stroop_Task': 'Color_Stroop_Task_{age}.xlsx',
|
|
'Problem_Solving_Test_MRO': 'Problem_Solving_Test_MRO_{age}.xlsx',
|
|
'Problem_Solving_Test_MR': 'Problem_Solving_Test_MR_{age}.xlsx',
|
|
'Problem_Solving_Test_NPS': 'Problem_Solving_Test_NPS_{age}.xlsx',
|
|
'Problem_Solving_Test_SBDM': 'Problem_Solving_Test_SBDM_{age}.xlsx',
|
|
'Reasoning_Tasks_AR': 'Reasoning_Tasks_AR_{age}.xlsx',
|
|
'Reasoning_Tasks_DR': 'Reasoning_Tasks_DR_{age}.xlsx',
|
|
'Reasoning_Tasks_NR': 'Reasoning_Tasks_NR_{age}.xlsx',
|
|
'Response_Inhibition_Task': 'Response_Inhibition_Task_{age}.xlsx',
|
|
'Sternberg_Working_Memory_Task': 'Sternberg_Working_Memory_Task_{age}.xlsx',
|
|
'Visual_Paired_Associates_Test': 'Visual_Paired_Associates_Test_{age}.xlsx'
|
|
}
|
|
# Output File Names for Survey
|
|
OUTPUT_FILE_NAMES = {
|
|
'Personality': 'Personality_{age}.xlsx',
|
|
'Grit': 'Grit_{age}.xlsx',
|
|
'Emotional Intelligence': 'Emotional_Intelligence_{age}.xlsx',
|
|
'Vocational Interest': 'Vocational_Interest_{age}.xlsx',
|
|
'Learning Strategies': 'Learning_Strategies_{age}.xlsx',
|
|
}
|