| |
| |
| |
| |
| |
| |
| |
|
|
| |
| |
| |
| |
|
|
| |
| |
| |
| |
| |
|
|
| |
| |
| |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| x-redaction-app-env: &redaction-app-env |
| env_file: |
| - path: config/docker_app_config.env |
| required: false |
|
|
| x-pi-agent-common: &pi-agent-common |
| build: |
| context: . |
| dockerfile: agent-redact/pi-agent/Dockerfile |
| target: dev |
| image: pi-agent-doc-redaction |
| env_file: |
| - path: config/agent.env |
| required: false |
| - path: config/pi_agent.env |
| required: false |
| ports: |
| - "7862:7862" |
| volumes: |
| - .:/workspace/doc_redaction:rw |
| - ./workspace:/home/user/app/workspace:rw |
| - pi-agent-sessions:/home/user/.pi/agent/sessions |
| working_dir: /workspace/doc_redaction |
| stdin_open: true |
| tty: true |
| entrypoint: ["/bin/bash", "/workspace/doc_redaction/agent-redact/shared/start.sh"] |
| networks: |
| - redaction-net-llama |
|
|
| x-pi-agent-env: &pi-agent-env |
| APP_TYPE: agent |
| APP_CONFIG_PATH: /workspace/doc_redaction/config/agent.env |
| HOME: /home/user |
| PI_SKIP_VERSION_CHECK: "1" |
| PI_OFFLINE: "1" |
| DOC_REDACTION_GRADIO_URL: ${DOC_REDACTION_GRADIO_URL:-http://redaction-app-llama:7860} |
| GRADIO_SERVER_NAME: ${GRADIO_SERVER_NAME:-0.0.0.0} |
| AGENT_GRADIO_PORT: ${AGENT_GRADIO_PORT:-7862} |
| GRADIO_SERVER_PORT: ${GRADIO_SERVER_PORT:-7862} |
| PYTHONPATH: /workspace/doc_redaction:/workspace/doc_redaction/agent-redact:/workspace/doc_redaction/agent-redact/shared:/workspace/doc_redaction/agent-redact/pi:/workspace/doc_redaction/agent-redact/agentcore |
| AGENT_WORKSPACE_DIR: /home/user/app/workspace |
| |
| |
| |
| |
| AGENT_LLAMA_BASE_URL: ${AGENT_LLAMA_BASE_URL:-http://llama-inference:8080/v1} |
| AGENT_ORCHESTRATOR: ${AGENT_ORCHESTRATOR:-pi} |
| AGENT_COMPACTION_ENABLED: ${AGENT_COMPACTION_ENABLED:-true} |
| AGENTCORE_RUNTIME_URL: ${AGENTCORE_RUNTIME_URL:-} |
| AGENTCORE_API_KEY: ${AGENTCORE_API_KEY:-} |
| LANGGRAPH_REQUIRE_REVIEW_APPROVAL: ${LANGGRAPH_REQUIRE_REVIEW_APPROVAL:-false} |
| GEMINI_API_KEY: ${GEMINI_API_KEY:-} |
| GOOGLE_API_KEY: ${GOOGLE_API_KEY:-} |
| AWS_REGION: ${AWS_REGION:-eu-west-2} |
| AWS_DEFAULT_REGION: ${AWS_DEFAULT_REGION:-${AWS_REGION:-eu-west-2}} |
| AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID:-} |
| AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY:-} |
| AWS_SESSION_TOKEN: ${AWS_SESSION_TOKEN:-} |
| AWS_PROFILE: ${AWS_PROFILE:-} |
| RUN_AWS_FUNCTIONS: ${RUN_AWS_FUNCTIONS:-False} |
| PRIORITISE_SSO_OVER_AWS_ENV_ACCESS_KEYS: ${PRIORITISE_SSO_OVER_AWS_ENV_ACCESS_KEYS:-True} |
| |
| RUN_FASTAPI: ${RUN_FASTAPI:-False} |
| ROOT_PATH: ${ROOT_PATH:-} |
| FASTAPI_ROOT_PATH: ${FASTAPI_ROOT_PATH:-/} |
| ALLOWED_HOSTS: ${ALLOWED_HOSTS:-} |
| ALLOWED_ORIGINS: ${ALLOWED_ORIGINS:-} |
| COGNITO_AUTH: ${COGNITO_AUTH:-False} |
| AWS_USER_POOL_ID: ${AWS_USER_POOL_ID:-} |
| AWS_CLIENT_ID: ${AWS_CLIENT_ID:-} |
| AWS_CLIENT_SECRET: ${AWS_CLIENT_SECRET:-} |
| SESSION_OUTPUT_FOLDER: ${SESSION_OUTPUT_FOLDER:-True} |
| SAVE_LOGS_TO_CSV: ${SAVE_LOGS_TO_CSV:-True} |
| SAVE_LOGS_TO_DYNAMODB: ${SAVE_LOGS_TO_DYNAMODB:-False} |
| SAVE_OUTPUTS_TO_S3: ${SAVE_OUTPUTS_TO_S3:-False} |
| S3_OUTPUTS_FOLDER: ${S3_OUTPUTS_FOLDER:-} |
| S3_OUTPUTS_BUCKET: ${S3_OUTPUTS_BUCKET:-} |
| CUSTOM_HEADER: ${CUSTOM_HEADER:-} |
| CUSTOM_HEADER_VALUE: ${CUSTOM_HEADER_VALUE:-} |
| AGENT_MAX_PAGES: ${AGENT_MAX_PAGES:-${MAX_DOC_PAGES:-3000}} |
|
|
| x-redaction-app-build: &redaction-app-build |
| <<: *redaction-app-env |
| image: redaction-app-main |
| build: |
| context: . |
| dockerfile: Dockerfile |
| target: gradio |
| args: |
| - TORCH_GPU_ENABLED=False |
| - INSTALL_VLM=False |
| - PADDLE_GPU_ENABLED=True |
| - INSTALL_PADDLEOCR=True |
| shm_size: '8gb' |
| deploy: |
| resources: |
| reservations: |
| devices: |
| - driver: nvidia |
| count: all |
| capabilities: [gpu] |
| ports: |
| - "7861:7860" |
| volumes: |
| - ./workspace:/home/user/app/workspace:rw |
| networks: |
| - redaction-net-llama |
|
|
| services: |
|
|
| |
| qwen36-27b_q4_gguf: |
| profiles: ["27b_36"] |
| image: ghcr.io/ggml-org/llama.cpp:server-cuda12 |
| command: |
| - -hf |
| - unsloth/Qwen3.6-27B-MTP-GGUF |
| - --hf-file |
| - Qwen3.6-27B-UD-Q6_K_XL.gguf |
| - --mmproj-url |
| - https://huggingface.co/unsloth/Qwen3.6-27B-MTP-GGUF/resolve/main/mmproj-BF16.gguf |
| - --n-gpu-layers |
| - "-1" |
| |
| |
| |
| |
| |
| |
| - --tensor-split |
| - "24,14" |
| - --ctx-size |
| - "114688" |
| - -ub |
| - "512" |
| - --fit |
| - "off" |
| - --temp |
| - "0.6" |
| - --top-k |
| - "20" |
| - --top-p |
| - "0.95" |
| - --min-p |
| - "0.0" |
| - --frequency-penalty |
| - "1" |
| - --presence-penalty |
| - "0.0" |
| - --jinja |
| - --chat-template-file |
| - /templates/chat_template.jinja |
| - --chat-template-kwargs |
| - "{\"preserve_thinking\": true}" |
| - --host |
| - "0.0.0.0" |
| - --port |
| - "8080" |
| - --no-warmup |
| - --seed |
| - "42" |
| - --image_min_tokens |
| - "300" |
| - --parallel |
| - "1" |
| - --cache-type-k |
| - "q8_0" |
| - --cache-type-v |
| - "q8_0" |
| - --spec-type |
| - "draft-mtp" |
| - --spec-draft-n-max |
| - "2" |
| ports: |
| - "8000:8080" |
| volumes: |
| - ./models:/models |
| - ./skills/chat_template.jinja:/templates/chat_template.jinja:ro |
| - hf-llama-cache-qwen36-27b:/root/.cache/llama.cpp |
| - hf-hub-cache-qwen36-27b:/root/.cache/huggingface |
| pull_policy: always |
| deploy: |
| resources: |
| reservations: |
| devices: |
| - driver: nvidia |
| count: all |
| capabilities: [gpu] |
| healthcheck: |
| test: ["CMD-SHELL", "curl -fsS http://localhost:8080/v1/models >/dev/null || exit 1"] |
| interval: 30s |
| timeout: 15s |
| retries: 8 |
| start_period: 1200s |
| networks: |
| redaction-net-llama: |
| aliases: |
| - llama-inference |
|
|
| |
| qwen36-35b_q4_gguf: |
| profiles: ["35b_36"] |
| image: ghcr.io/ggml-org/llama.cpp:server-cuda12 |
| command: |
| - -hf |
| - unsloth/Qwen3.6-35B-A3B-GGUF |
| - --hf-file |
| - Qwen3.6-35B-A3B-UD-IQ4_NL.gguf |
| - --mmproj-url |
| - https://huggingface.co/unsloth/Qwen3.6-35B-A3B-GGUF/resolve/main/mmproj-BF16.gguf |
| - --n-gpu-layers |
| - "-1" |
| - --ctx-size |
| - "114688" |
| - --fit |
| - "off" |
| - --temp |
| - "1.0" |
| - --top-k |
| - "20" |
| - --top-p |
| - "0.95" |
| - --min-p |
| - "0.0" |
| - --frequency-penalty |
| - "1" |
| - --presence-penalty |
| - "1.5" |
| - --repeat-penalty |
| - "1" |
| - --jinja |
| - --chat-template-file |
| - /templates/chat_template.jinja |
| - --chat-template-kwargs |
| - "{\"preserve_thinking\": true}" |
| - --host |
| - "0.0.0.0" |
| - --port |
| - "8080" |
| - --no-warmup |
| - --seed |
| - "42" |
| - --n-cpu-moe |
| - "0" |
| - --image_min_tokens |
| - "300" |
| - --parallel |
| - "1" |
| - --cache-type-k |
| - "q8_0" |
| - --cache-type-v |
| - "q8_0" |
| ports: |
| - "8005:8080" |
| volumes: |
| - ./models:/models |
| - ./skills/chat_template.jinja:/templates/chat_template.jinja:ro |
| - hf-llama-cache-qwen36-35b:/root/.cache/llama.cpp |
| - hf-hub-cache-qwen36-35b:/root/.cache/huggingface |
| pull_policy: always |
| deploy: |
| resources: |
| reservations: |
| devices: |
| - driver: nvidia |
| count: all |
| capabilities: [gpu] |
| healthcheck: |
| test: ["CMD-SHELL", "curl -fsS http://localhost:8080/v1/models >/dev/null || exit 1"] |
| interval: 30s |
| timeout: 15s |
| retries: 8 |
| start_period: 1200s |
| networks: |
| redaction-net-llama: |
| aliases: |
| - llama-inference |
|
|
| |
| gemma4-31b_q4_gguf: |
| profiles: ["gemma4-31b"] |
| image: ghcr.io/ggml-org/llama.cpp:server-cuda12 |
| command: |
| - -hf |
| - unsloth/gemma-4-31B-it-qat-GGUF |
| - --hf-file |
| - gemma-4-31B-it-qat-UD-Q4_K_XL.gguf |
| - --mmproj-url |
| - https://huggingface.co/unsloth/gemma-4-31B-it-qat-GGUF/resolve/main/mmproj-BF16.gguf |
| |
| - --n-gpu-layers |
| - "-1" |
| |
| |
| - --ctx-size |
| - "114688" |
| - -ub |
| - "1024" |
| - --fit |
| - "off" |
| - --temp |
| - "1.0" |
| - --top-k |
| - "64" |
| - --top-p |
| - "1.0" |
| - --host |
| - "0.0.0.0" |
| - --port |
| - "8080" |
| - --no-warmup |
| - --seed |
| - "42" |
| - --parallel |
| - "1" |
| - --cache-type-k |
| - "q8_0" |
| - --cache-type-v |
| - "q8_0" |
| - --chat-template-kwargs |
| - "{\"enable_thinking\": false}" |
| - --reasoning |
| - "off" |
| - --image_min_tokens |
| - "300" |
| - --image_max_tokens |
| - "1800" |
| - --split-mode |
| - "layer" |
| |
| |
| |
| |
| ports: |
| - "8002:8080" |
| volumes: |
| - ./models:/models |
| - hf-llama-cache-gemma4-31b:/root/.cache/llama.cpp |
| - hf-hub-cache-gemma4-31b:/root/.cache/huggingface |
| pull_policy: always |
| deploy: |
| resources: |
| reservations: |
| devices: |
| - driver: nvidia |
| count: all |
| capabilities: [gpu] |
| healthcheck: |
| test: ["CMD-SHELL", "curl -fsS http://localhost:8080/v1/models >/dev/null || exit 1"] |
| interval: 30s |
| timeout: 15s |
| retries: 8 |
| start_period: 1200s |
| networks: |
| redaction-net-llama: |
| aliases: |
| - llama-inference |
|
|
| |
| gemma4-26b_q4_gguf: |
| profiles: ["gemma4-26b"] |
| image: ghcr.io/ggml-org/llama.cpp:server-cuda12 |
| command: |
| - -hf |
| - unsloth/gemma-4-26B-A4B-it-GGUF |
| - --hf-file |
| - gemma-4-26B-A4B-it-UD-Q4_K_XL.gguf |
| - --mmproj-url |
| - https://huggingface.co/unsloth/gemma-4-26B-A4B-it-GGUF/resolve/main/mmproj-F16.gguf |
| - --n-gpu-layers |
| - "-1" |
| - --ctx-size |
| - "114688" |
| |
| |
| |
| |
| |
| - -dev |
| - "cuda0" |
| |
| |
| |
| |
| - -ub |
| - "1024" |
| - --fit |
| - "off" |
| - --temp |
| - "0.1" |
| - --top-k |
| - "64" |
| - --top-p |
| - "0.95" |
| - --host |
| - "0.0.0.0" |
| - --port |
| - "8080" |
| - --no-warmup |
| - --seed |
| - "42" |
| - --parallel |
| - "1" |
| |
| |
| |
| - --cache-type-k |
| - "q8_0" |
| - --cache-type-v |
| - "q8_0" |
| |
| |
| ports: |
| - "8002:8080" |
| volumes: |
| - ./models:/models |
| - hf-llama-cache-gemma4-26b:/root/.cache/llama.cpp |
| - hf-hub-cache-gemma4-26b:/root/.cache/huggingface |
| pull_policy: always |
| deploy: |
| resources: |
| reservations: |
| devices: |
| - driver: nvidia |
| count: all |
| capabilities: [gpu] |
| healthcheck: |
| test: ["CMD-SHELL", "curl -fsS http://localhost:8080/v1/models >/dev/null || exit 1"] |
| interval: 30s |
| timeout: 15s |
| retries: 8 |
| start_period: 1200s |
| networks: |
| redaction-net-llama: |
| aliases: |
| - llama-inference |
|
|
| redaction-app-llama: |
| <<: *redaction-app-env |
| profiles: ["35b_36", "27b_36", "gemma4-31b", "gemma4-26b"] |
| image: redaction-app-main |
| build: |
| context: . |
| dockerfile: Dockerfile |
| target: gradio |
| args: |
| - TORCH_GPU_ENABLED=False |
| - INSTALL_VLM=False |
| - PADDLE_GPU_ENABLED=True |
| - INSTALL_PADDLEOCR=True |
| shm_size: '8gb' |
| depends_on: |
| qwen36-35b_q4_gguf: |
| condition: service_healthy |
| required: false |
| qwen36-27b_q4_gguf: |
| condition: service_healthy |
| required: false |
| gemma4-31b_q4_gguf: |
| condition: service_healthy |
| required: false |
| gemma4-26b_q4_gguf: |
| condition: service_healthy |
| required: false |
| environment: |
| - FLAGS_fraction_of_gpu_memory_to_use=0.05 |
| - RUN_FASTAPI=True |
| - APP_MODE=fastapi |
| - SHOW_PADDLE_MODEL_OPTIONS=True |
| - SHOW_LOCAL_OCR_MODEL_OPTIONS=True |
| - SHOW_LOCAL_PII_DETECTION_OPTIONS=True |
| - SHOW_INFERENCE_SERVER_PII_OPTIONS=True |
| - SHOW_INFERENCE_SERVER_VLM_OPTIONS=True |
| - SHOW_HYBRID_MODELS=True |
| - SHOW_DIFFICULT_OCR_EXAMPLES=True |
| - SHOW_ALL_OUTPUTS_IN_OUTPUT_FOLDER=True |
| - SHOW_SUMMARISATION=True |
| - SHOW_AWS_API_KEYS=True |
| - DEFAULT_TEXT_EXTRACTION_MODEL=Local OCR model - PDFs without selectable text |
| - DEFAULT_LOCAL_OCR_MODEL=paddle |
| - DEFAULT_PII_DETECTION_MODEL=Local |
| - INFERENCE_SERVER_API_URL=http://llama-inference:8080 |
| - DEFAULT_INFERENCE_SERVER_VLM_MODEL="" |
| - DEFAULT_INFERENCE_SERVER_PII_MODEL="" |
| - CUSTOM_VLM_BACKEND=inference_vlm |
| - MAX_WORKERS=12 |
| - TESSERACT_MAX_WORKERS=8 |
| - PADDLE_MAX_WORKERS=1 |
| - LOAD_PADDLE_AT_STARTUP=False |
| - EFFICIENT_OCR=True |
| - SHOW_CUSTOM_VLM_ENTITIES=True |
| - SESSION_OUTPUT_FOLDER=True |
| - SAVE_PAGE_OCR_VISUALISATIONS=False |
| - HYBRID_OCR_CONFIDENCE_THRESHOLD=90 |
| - INCLUDE_OCR_VISUALISATION_IN_OUTPUT_FILES=True |
| - PREPROCESS_LOCAL_OCR_IMAGES=False |
| - INFERENCE_SERVER_DISABLE_THINKING=True |
| - MAX_NEW_TOKENS=8192 |
| - SAVE_EXAMPLE_HYBRID_IMAGES=False |
| - SAVE_VLM_INPUT_IMAGES=False |
| - VLM_MAX_DPI=200.0 |
| - DEFAULT_NEW_BATCH_CHAR_COUNT=1250 |
| - REPORT_VLM_OUTPUTS_TO_GUI=True |
| - REPORT_LLM_OUTPUTS_TO_GUI=True |
| - ADD_VLM_BOUNDING_BOX_RULES=False |
| - RUN_MCP_SERVER=True |
|
|
| deploy: |
| resources: |
| reservations: |
| devices: |
| - driver: nvidia |
| count: all |
| capabilities: [gpu] |
| ports: |
| - "7861:7860" |
| volumes: |
| - ./workspace:/home/user/app/workspace:rw |
| networks: |
| - redaction-net-llama |
|
|
| |
| redaction-app-llama-gemini: |
| <<: *redaction-app-build |
| profiles: ["pi-gemini"] |
| environment: |
| - FLAGS_fraction_of_gpu_memory_to_use=0.05 |
| - RUN_FASTAPI=True |
| - SHOW_PADDLE_MODEL_OPTIONS=True |
| - SHOW_LOCAL_OCR_MODEL_OPTIONS=True |
| - SHOW_LOCAL_PII_DETECTION_OPTIONS=True |
| - SHOW_INFERENCE_SERVER_PII_OPTIONS=False |
| - SHOW_INFERENCE_SERVER_VLM_OPTIONS=False |
| - SHOW_HYBRID_MODELS=False |
| - SHOW_VLM_MODEL_OPTIONS=False |
| - SHOW_GEMINI_VLM_MODELS=True |
| - SHOW_GEMINI_LLM_MODELS=True |
| - SHOW_GEMINI_LLM_PII_OPTIONS=True |
| - SHOW_DIFFICULT_OCR_EXAMPLES=True |
| - SHOW_ALL_OUTPUTS_IN_OUTPUT_FOLDER=True |
| - SHOW_SUMMARISATION=True |
| - SHOW_AWS_API_KEYS=True |
| - DEFAULT_TEXT_EXTRACTION_MODEL=Local OCR model - PDFs without selectable text |
| - DEFAULT_LOCAL_OCR_MODEL=paddle |
| - DEFAULT_PII_DETECTION_MODEL=Local |
| - CLOUD_VLM_MODEL_CHOICE=${CLOUD_VLM_MODEL_CHOICE:-gemini-flash-latest} |
| - CUSTOM_VLM_BACKEND=bedrock_vlm |
| - SHOW_CUSTOM_VLM_ENTITIES=False |
| - MAX_WORKERS=8 |
| - TESSERACT_MAX_WORKERS=4 |
| - PADDLE_MAX_WORKERS=1 |
| - LOAD_PADDLE_AT_STARTUP=False |
| - EFFICIENT_OCR=True |
| - SESSION_OUTPUT_FOLDER=True |
| - SAVE_PAGE_OCR_VISUALISATIONS=False |
| - HYBRID_OCR_CONFIDENCE_THRESHOLD=90 |
| - INCLUDE_OCR_VISUALISATION_IN_OUTPUT_FILES=False |
| - PREPROCESS_LOCAL_OCR_IMAGES=False |
| - MAX_NEW_TOKENS=8192 |
| - SAVE_EXAMPLE_HYBRID_IMAGES=False |
| - SAVE_VLM_INPUT_IMAGES=False |
| - VLM_MAX_DPI=200.0 |
| - ADD_VLM_BOUNDING_BOX_RULES=True |
| - GEMINI_API_KEY=${GEMINI_API_KEY:-} |
| - GOOGLE_API_KEY=${GOOGLE_API_KEY:-} |
| networks: |
| redaction-net-llama: |
| aliases: |
| - redaction-app-llama |
|
|
| redaction-app-llama-bedrock: |
| <<: *redaction-app-build |
| profiles: ["pi-bedrock"] |
| environment: |
| - FLAGS_fraction_of_gpu_memory_to_use=0.05 |
| - RUN_FASTAPI=True |
| - APP_MODE=fastapi |
| - SHOW_PADDLE_MODEL_OPTIONS=True |
| - SHOW_LOCAL_OCR_MODEL_OPTIONS=True |
| - SHOW_LOCAL_PII_DETECTION_OPTIONS=True |
| - SHOW_INFERENCE_SERVER_PII_OPTIONS=False |
| - SHOW_INFERENCE_SERVER_VLM_OPTIONS=False |
| - SHOW_HYBRID_MODELS=False |
| - SHOW_VLM_MODEL_OPTIONS=False |
| - SHOW_AWS_PII_DETECTION_OPTIONS=True |
| - SHOW_AWS_BEDROCK_LLM_MODELS=True |
| - SHOW_BEDROCK_VLM_MODELS=True |
| - SHOW_DIFFICULT_OCR_EXAMPLES=True |
| - SHOW_ALL_OUTPUTS_IN_OUTPUT_FOLDER=True |
| - SHOW_SUMMARISATION=True |
| - SHOW_AWS_API_KEYS=True |
| - DEFAULT_TEXT_EXTRACTION_MODEL=AWS Textract |
| - DEFAULT_LOCAL_OCR_MODEL=tesseract |
| - DEFAULT_PII_DETECTION_MODEL=AWS Comprehend |
| - CLOUD_VLM_MODEL_CHOICE=${CLOUD_VLM_MODEL_CHOICE:-amazon.nova-pro-v1:0} |
| - CUSTOM_VLM_BACKEND=bedrock_vlm |
| - HYBRID_TEXTRACT_BEDROCK_VLM=True |
| - SHOW_CUSTOM_VLM_ENTITIES=True |
| - MAX_WORKERS=8 |
| - TESSERACT_MAX_WORKERS=4 |
| - PADDLE_MAX_WORKERS=1 |
| - LOAD_PADDLE_AT_STARTUP=False |
| - EFFICIENT_OCR=True |
| - SESSION_OUTPUT_FOLDER=True |
| - SAVE_PAGE_OCR_VISUALISATIONS=False |
| - HYBRID_OCR_CONFIDENCE_THRESHOLD=90 |
| - INCLUDE_OCR_VISUALISATION_IN_OUTPUT_FILES=False |
| - PREPROCESS_LOCAL_OCR_IMAGES=False |
| - MAX_NEW_TOKENS=8192 |
| - SAVE_EXAMPLE_HYBRID_IMAGES=False |
| - SAVE_VLM_INPUT_IMAGES=False |
| - VLM_MAX_DPI=200.0 |
| - ADD_VLM_BOUNDING_BOX_RULES=True |
| - RUN_AWS_FUNCTIONS=True |
| - PRIORITISE_SSO_OVER_AWS_ENV_ACCESS_KEYS=${PRIORITISE_SSO_OVER_AWS_ENV_ACCESS_KEYS:-True} |
| - AWS_REGION=${AWS_REGION:-eu-west-2} |
| - AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION:-${AWS_REGION:-eu-west-2}} |
| - AWS_PROFILE=${AWS_PROFILE:-} |
| - USAGE_LOG_FILE_NAME=usage_log.csv |
| - SAVE_LOGS_TO_CSV=True |
| - SAVE_LOGS_TO_DYNAMODB=False |
| - SAVE_OUTPUTS_TO_S3=False |
| - S3_OUTPUTS_FOLDER=${S3_OUTPUTS_FOLDER:-} |
| - S3_OUTPUTS_BUCKET=${S3_OUTPUTS_BUCKET:-} |
| - DOCUMENT_REDACTION_BUCKET=${DOCUMENT_REDACTION_BUCKET:-} |
| - INCLUDE_FACE_IDENTIFICATION_TEXTRACT_OPTION=True |
|
|
| volumes: |
| - ./workspace:/home/user/app/workspace:rw |
| - ${USERPROFILE}/.aws:/home/user/.aws:rw |
| networks: |
| redaction-net-llama: |
| aliases: |
| - redaction-app-llama |
|
|
| pi-agent: |
| <<: *pi-agent-common |
| profiles: ["27b_36"] |
| depends_on: |
| qwen36-27b_q4_gguf: |
| condition: service_healthy |
| redaction-app-llama: |
| condition: service_started |
| environment: |
| <<: *pi-agent-env |
| AGENT_LLAMA_MODEL_ID: ${AGENT_LLAMA_MODEL_ID:-unsloth/Qwen3.6-27B-MTP-GGUF} |
| AGENT_LLAMA_CONTEXT_WINDOW: ${AGENT_LLAMA_CONTEXT_WINDOW:-114688} |
| AGENT_LLAMA_MAX_TOKENS: ${AGENT_LLAMA_MAX_TOKENS:-32768} |
| AGENT_VLM_MODEL: ${AGENT_VLM_MODEL:-unsloth/Qwen3.6-27B-MTP-GGUF} |
|
|
| pi-agent-35b: |
| <<: *pi-agent-common |
| profiles: ["35b_36"] |
| depends_on: |
| qwen36-35b_q4_gguf: |
| condition: service_healthy |
| redaction-app-llama: |
| condition: service_started |
| environment: |
| <<: *pi-agent-env |
| AGENT_LLAMA_MODEL_ID: ${AGENT_LLAMA_MODEL_ID:-unsloth/Qwen3.6-35B-A3B-GGUF} |
| AGENT_LLAMA_CONTEXT_WINDOW: ${AGENT_LLAMA_CONTEXT_WINDOW:-196608} |
| AGENT_LLAMA_MAX_TOKENS: ${AGENT_LLAMA_MAX_TOKENS:-65536} |
| AGENT_VLM_MODEL: ${AGENT_VLM_MODEL:-unsloth/Qwen3.6-35B-A3B-GGUF} |
|
|
| pi-agent-gemma-31b: |
| <<: *pi-agent-common |
| profiles: ["gemma4-31b"] |
| depends_on: |
| gemma4-31b_q4_gguf: |
| condition: service_healthy |
| redaction-app-llama: |
| condition: service_started |
| environment: |
| <<: *pi-agent-env |
| AGENT_LLAMA_MODEL_ID: ${AGENT_LLAMA_MODEL_ID:-unsloth/gemma-4-31B-it-GGUF} |
| AGENT_LLAMA_CONTEXT_WINDOW: ${AGENT_LLAMA_CONTEXT_WINDOW:-65536} |
| AGENT_LLAMA_MAX_TOKENS: ${AGENT_LLAMA_MAX_TOKENS:-32768} |
| AGENT_COMPACTION_RESERVE_TOKENS: ${AGENT_COMPACTION_RESERVE_TOKENS:-16384} |
| AGENT_COMPACTION_KEEP_RECENT_TOKENS: ${AGENT_COMPACTION_KEEP_RECENT_TOKENS:-12288} |
| AGENT_VLM_MODEL: ${AGENT_VLM_MODEL:-unsloth/gemma-4-31B-it-GGUF} |
|
|
| pi-agent-gemma-26b: |
| <<: *pi-agent-common |
| profiles: ["gemma4-26b"] |
| depends_on: |
| gemma4-26b_q4_gguf: |
| condition: service_healthy |
| redaction-app-llama: |
| condition: service_started |
| environment: |
| <<: *pi-agent-env |
| AGENT_LLAMA_MODEL_ID: ${AGENT_LLAMA_MODEL_ID:-unsloth/gemma-4-26B-A4B-it-GGUF} |
| AGENT_LLAMA_CONTEXT_WINDOW: ${AGENT_LLAMA_CONTEXT_WINDOW:-65536} |
| AGENT_LLAMA_MAX_TOKENS: ${AGENT_LLAMA_MAX_TOKENS:-32768} |
| AGENT_VLM_MODEL: ${AGENT_VLM_MODEL:-unsloth/gemma-4-26B-A4B-it-GGUF} |
|
|
| pi-agent-gemini: |
| <<: *pi-agent-common |
| profiles: ["pi-gemini"] |
| depends_on: |
| redaction-app-llama-gemini: |
| condition: service_started |
| environment: |
| <<: *pi-agent-env |
| AGENT_DEFAULT_PROVIDER: google-gemini |
| AGENT_DEFAULT_MODEL: ${AGENT_DEFAULT_MODEL:-gemini-flash-latest} |
| AGENT_DEFAULT_OCR_METHOD: hybrid-paddle-vlm |
| AGENT_DEFAULT_PII_METHOD: Local |
| AGENT_VLM_BASE_URL: http://redaction-app-llama:7860 |
| AGENT_VLM_MODEL: ${AGENT_VLM_MODEL:-gemini-flash-latest} |
|
|
| pi-agent-bedrock: |
| <<: *pi-agent-common |
| profiles: ["pi-bedrock"] |
| volumes: |
| - .:/workspace/doc_redaction:rw |
| - ./workspace:/home/user/app/workspace:rw |
| - pi-agent-sessions:/home/user/.pi/agent/sessions |
| - ${USERPROFILE}/.aws:/home/user/.aws:rw |
| depends_on: |
| redaction-app-llama-bedrock: |
| condition: service_started |
| environment: |
| <<: *pi-agent-env |
| AGENT_DEFAULT_PROVIDER: amazon-bedrock |
| |
| |
| |
| AGENT_VLM_BASE_URL: http://redaction-app-llama:7860 |
| |
| RUN_AWS_FUNCTIONS: "True" |
| |
| |
| |
| |
|
|
| networks: |
| redaction-net-llama: |
| driver: bridge |
|
|
| volumes: |
| hf-llama-cache-qwen36-35b: |
| hf-llama-cache-qwen36-27b: |
| hf-llama-cache-gemma4-31b: |
| hf-llama-cache-gemma4-26b: |
| hf-hub-cache-qwen36-35b: |
| hf-hub-cache-qwen36-27b: |
| hf-hub-cache-gemma4-31b: |
| hf-hub-cache-gemma4-26b: |
| pi-agent-sessions: |