37 lines
1.2 KiB
Bash
37 lines
1.2 KiB
Bash
# Copy to .env and fill in. Never commit .env.
|
|
|
|
OPENAI_API_KEY=
|
|
|
|
# Must be a structured-outputs model family: gpt-5*, gpt-4.1*, o3*, o4*.
|
|
# "-chat-latest" variants are rejected -- they track the ChatGPT product surface and
|
|
# do not expose reasoning effort.
|
|
# Note gpt-4.1 is allowed but is not a reasoning model, so OPENAI_EFFORT is ignored
|
|
# for it (the adapter omits the parameter rather than sending a 400).
|
|
OPENAI_MODEL=gpt-5.4-mini
|
|
|
|
# Covers reasoning tokens AND the visible response on a reasoning model. Too low and
|
|
# the JSON truncates mid-object, failing the candidate with MODEL_RESPONSE_INVALID.
|
|
# Enforced floor is 2048. Do not lower this to save cost -- lower OPENAI_EFFORT.
|
|
OPENAI_MAX_OUTPUT_TOKENS=4000
|
|
|
|
# none | minimal | low | medium | high | xhigh
|
|
# Per-model support varies; the API rejects a level the model does not implement.
|
|
OPENAI_EFFORT=low
|
|
|
|
OPENAI_MAX_RETRIES=3
|
|
OPENAI_TIMEOUT_SECONDS=120
|
|
|
|
# OpenAI prompt caching is automatic and cannot be turned off. This only controls
|
|
# whether a prompt_cache_key routing hint is sent to raise the cache hit rate.
|
|
OPENAI_ENABLE_PROMPT_CACHE=true
|
|
|
|
SCORING_CONCURRENCY=5
|
|
MAX_RESUMES_PER_REQUEST=50
|
|
MAX_PDF_SIZE_MB=10
|
|
MAX_JD_CHARS=30000
|
|
MAX_RESUME_CHARS=60000
|
|
|
|
# text | json
|
|
LOG_FORMAT=json
|
|
LOG_LEVEL=INFO
|