File size: 5,772 Bytes
517919c | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 | # Main application settings (copy to config/app_config.env β do not commit secrets).
#
# Loaded at startup by tools/config.py (APP_CONFIG_PATH defaults to config/app_config.env).
# Variables already set in the process environment (e.g. Docker compose environment:)
# are not overridden by this file.
#
# Full list of supported keys: tools/config.py and the user guide.
# For Docker Compose-only overrides on redaction-app services, see docker_app_config.env.example.
# Optional separate AWS keys file: set AWS_CONFIG_PATH=config/aws_config.env
# --- Local dependencies (Windows/Linux paths if not on PATH) ---
TESSERACT_FOLDER=tesseract/
POPPLER_FOLDER=poppler/poppler-24.02.0/Library/bin/
# TESSERACT_DATA_FOLDER=
# --- Input / output folders ---
# GRADIO_INPUT_FOLDER=input/
# GRADIO_OUTPUT_FOLDER=output/
SESSION_OUTPUT_FOLDER=True
# --- Gradio / FastAPI ---
GRADIO_SERVER_NAME=127.0.0.1
GRADIO_SERVER_PORT=7860
RUN_FASTAPI=False
# RUN_MCP_SERVER=False
# ROOT_PATH=
# FASTAPI_ROOT_PATH=/
# ALLOWED_HOSTS=
# MAX_DOC_PAGES=3000
# MAX_FILE_SIZE=250mb
# AGENT_API_KEY=
# --- Intro / branding ---
USER_GUIDE_URL=<ENTER_URL>
FAVICON_PATH=favicon.png
INTRO_TEXT=intros/short_intro.txt
# PI agent Gradio UI (agent-redact/shared/gradio_app.py) β separate from INTRO_TEXT above
# AGENT_INTRO_TEXT=intros/pi_intro.txt
# --- GUI visibility ---
SHOW_QUICKSTART=False
SHOW_SUMMARISATION=True
SHOW_EXAMPLES=True
SHOW_DIFFICULT_OCR_EXAMPLES=True
SHOW_LANGUAGE_SELECTION=True
SHOW_ALL_OUTPUTS_IN_OUTPUT_FOLDER=True
SHOW_PII_IDENTIFICATION_OPTIONS=True
SHOW_LOCAL_PII_DETECTION_OPTIONS=True
SHOW_OCR_GUI_OPTIONS=True
EXTRACTION_AND_PII_OPTIONS_OPEN_BY_DEFAULT=True
SHOW_LOCAL_OCR_MODEL_OPTIONS=True
SHOW_AWS_TEXT_EXTRACTION_OPTIONS=True
SHOW_AWS_PII_DETECTION_OPTIONS=True
SHOW_AWS_EXAMPLES=True
SHOW_HYBRID_MODELS=False
SHOW_CUSTOM_VLM_ENTITIES=False
SHOW_VLM_MODEL_OPTIONS=True
SHOW_INFERENCE_SERVER_PII_OPTIONS=False
SHOW_INFERENCE_SERVER_VLM_OPTIONS=False
SHOW_TRANSFORMERS_LLM_PII_DETECTION_OPTIONS=False
SHOW_BEDROCK_VLM_MODELS=False
SHOW_AWS_BEDROCK_LLM_MODELS=False
# --- OCR / redaction processing ---
DEFAULT_LOCAL_OCR_MODEL=tesseract
OVERWRITE_EXISTING_OCR_RESULTS=False
PREPROCESS_LOCAL_OCR_IMAGES=False
MAX_WORKERS=4
EFFICIENT_OCR=True
INCLUDE_OCR_VISUALISATION_IN_OUTPUT_FILES=True
# Local OCR reading order: column | legacy | paddle_native
LOCAL_OCR_READING_ORDER=column
CONVERT_LINE_TO_WORD_LEVEL=True
MERGE_BOUNDING_BOXES=True
# --- Redaction box appearance ---
CUSTOM_BOX_COLOUR=(128, 128, 128)
USE_GUI_BOX_COLOURS_FOR_OUTPUTS=False
# --- Image save options ---
SAVE_PAGE_OCR_VISUALISATIONS=True
SAVE_PREPROCESS_IMAGES=True
# --- PaddleOCR ---
SHOW_PADDLE_MODEL_OPTIONS=False
LOAD_PADDLE_AT_STARTUP=False # On ZeroGPU, Paddle loads in the GPU worker on first OCR (not at Space startup).
PADDLE_DEVICE=gpu:0 # transformers backend device (cpu, gpu, gpu:0). Auto-defaults to gpu:0 on ZeroGPU.
PADDLE_MAX_WORKERS=4
# --- VLM / LLM β local Transformers ---
SELECTED_LOCAL_TRANSFORMERS_VLM_MODEL=Qwen3.5-9B
QUANTISE_VLM_MODELS=False
USE_TRANSFORMERS_VLM_MODEL_AS_LLM=True
LOCAL_TRANSFORMERS_LLM_PII_MODEL_CHOICE=None
QUANTISE_TRANSFORMERS_LLM_MODELS=False
LOAD_TRANSFORMERS_LLM_PII_MODEL_AT_START=False
LOAD_TRANSFORMERS_VLM_MODEL_AT_START=True
# --- VLM / LLM β inference server (vLLM / llama.cpp) ---
INFERENCE_SERVER_API_URL=http://192.168.0.220:8080
USE_LLAMA_SWAP=True
INFERENCE_SERVER_LLM_PII_MODEL_CHOICE=qwen_3_5_27b
# --- VLM / LLM β general / cloud backend ---
VLM_DISABLE_QWEN3_5_THINKING=True
LLM_MAX_NEW_TOKENS=8192
CUSTOM_VLM_BACKEND=bedrock_vlm
HYBRID_TEXTRACT_BEDROCK_VLM=False
CLOUD_LLM_PII_MODEL_CHOICE=amazon.nova-pro-v1:0
CLOUD_LLM_PII_CUSTOM_INSTRUCTIONS_MODEL_CHOICE=anthropic.claude-sonnet-4-6
CLOUD_VLM_MODEL_CHOICE=amazon.nova-pro-v1:0
CLOUD_SUMMARISATION_MODEL_CHOICE=amazon.nova-lite-v1:0
# --- AWS (core) ---
RUN_AWS_FUNCTIONS=True
PRIORITISE_SSO_OVER_AWS_ENV_ACCESS_KEYS=True
AWS_REGION=example-region
# AWS_ACCESS_KEY=
# AWS_SECRET_KEY=
DOCUMENT_REDACTION_BUCKET=example-bucket
# SCAN_UPLOADS_FOR_MALWARE=False
# MALWARE_SCAN_S3_BUCKET=
# MALWARE_SCAN_S3_PREFIX=upload-staging/
# MALWARE_SCAN_POLL_INTERVAL_SEC=2.0
# MALWARE_SCAN_TIMEOUT_SEC=120.0
# MALWARE_SCAN_SHOW_CHECKING_INFO=True # also shows success toast when scan is clean
# S3_OUTPUTS_BUCKET=
# S3_OUTPUTS_FOLDER=
# SAVE_OUTPUTS_TO_S3=False
RUN_ALL_EXAMPLES_THROUGH_AWS=True
# --- AWS Textract ---
SHOW_WHOLE_DOCUMENT_TEXTRACT_CALL_OPTIONS=True
LOAD_PREVIOUS_TEXTRACT_JOBS_S3=True
TEXTRACT_WHOLE_DOCUMENT_ANALYSIS_BUCKET=example-bucket-output
INCLUDE_FORM_EXTRACTION_TEXTRACT_OPTION=False
INCLUDE_LAYOUT_EXTRACTION_TEXTRACT_OPTION=False
INCLUDE_TABLE_EXTRACTION_TEXTRACT_OPTION=False
INCLUDE_FACE_IDENTIFICATION_TEXTRACT_OPTION=False
# --- Logging ---
SAVE_LOGS_TO_CSV=True
SAVE_LOGS_TO_DYNAMODB=True
DISPLAY_FILE_NAMES_IN_LOGS=False
ACCESS_LOG_DYNAMODB_TABLE_NAME=example-dynamodb-access-log
USAGE_LOG_DYNAMODB_TABLE_NAME=example-dynamodb-usage
FEEDBACK_LOG_DYNAMODB_TABLE_NAME=example-dynamodb-feedback
# --- Cost codes ---
SHOW_COSTS=True
GET_COST_CODES=True
COST_CODES_PATH=config/cost_codes.csv
ENFORCE_COST_CODES=True
DEFAULT_COST_CODE=example_cost_code
S3_COST_CODES_PATH=cost_codes.csv
# --- Cognito / hosted auth (when RUN_FASTAPI=True) ---
# COGNITO_AUTH=False
# AWS_USER_POOL_ID=
# AWS_CLIENT_ID=
# AWS_CLIENT_SECRET=
# SHOW_LOGOUT_BUTTON=False
# LOGOUT_BUTTON_URL=https://your-domain.auth.region.amazoncognito.com/logout?client_id=...&logout_uri=...
# LOGOUT_BUTTON_LABEL=Log out
# --- Post-redaction Pass 1 QA (pre-review_apply sanity checks) ---
# POST_REDACT_PASS1_QA=False
# POST_REDACT_PASS1_AUTO_PRUNE=False
# POST_REDACT_PASS1_USE_DENY_ALLOW_LISTS=True
# POST_REDACT_PASS1_MUST_REDACT_PATH=
# POST_REDACT_PASS1_MUST_NOT_REDACT_PATH=
|