"""Screening pipeline configuration constants."""

# LLM Output Token Limits per stage
LABELLING_OUTPUT_TOKENS = 8192
REASONING_OUTPUT_TOKENS = 8192
CLUSTERING_OUTPUT_TOKENS = 32_000
CLUSTER_SELECTION_OUTPUT_TOKENS = 8192

# Concurrency
NUM_CONCURRENT_REQUESTS = 10

# Labelling
NUM_LABELLING_REPETITIONS = 5

# Input columns
INPUT_COLS = ["title", "abstract", "citation"]

# Criteria schema
CRITERIA_NAME_COL = "criteria_name"
CRITERIA_TYPE_COL = "criteria_type"
CRITERIA_VALUE_COL = "criteria_value"
RQ_COL = "questions"

# Model selection per stage
LABELLING_MODEL_NAME = "gpt-5-nano"
REASONING_MODEL_NAME = "gpt-5-nano"
CLUSTERING_MODEL_NAME = "gpt-4.1"  # MUST be GPT-4.1 (needs 400K context)
CLUSTER_SELECTION_MODEL_NAME = "gpt-5-nano"

# Decision thresholds
MAX_EXCLUDE_THRESHOLD = 1.0
MAX_NUM_CLUSTER = 20
