Files
email-dlp/docs/email-dlp-workflow.md
2026-03-20 10:28:28 +08:00

5.3 KiB

 [ Directory of .eml Files ]
             │
             ▼
     ┌───────────────┐
     │ CLI (cli.py)  ├────────────────────────────────────────────────┐
     └───────┬───────┘                                                │
             │ Loop through EMLs                                      │
             ▼                                                        │
     ┌───────────────┐         Metadata (Subject, From, To, Date)     │
     │  EML Parser   │──────────────────────────────────────────┐     │
     │  (parser.py)  │                                          │     │
     ├───────────────┤         Body Text (Parsed via bs4)       │     │
     │ - Decode Heads├────────────────────────────────────┐     │     │
     │ - Extract HTML│                                    │     │     │
     │ - Save Attach │         Attachment Files           ▼     ▼     ▼
     │   to Temp Dir ├─────────────┐               ┌────────────────────────┐
     └───────────────┘             │               │     Prompt Builder     │
                                   ▼               │     (analyzer.py)      │
     ┌───────────────┐     ┌───────────────┐       ├────────────────────────┤
     │   Converter   │◄────┤ Temporary Dir │       │ System Prompt:         │
     │(converter.py) │     └───────────────┘       │ - DLP Policy rules     │
     ├───────────────┤                             │   (from policy.py)     │
     │ - MarkItDown  │                             │ - Schemas & Thresholds │
     │ - Zip/7z Loop │                             │                        │
     │ - PyMuPDF Ext │                             │ User Prompt:           │
     │ - Text Extrac │                             │ - Email Metadata       │
     │ - Image Base64│                             │ - Body Text            │
     └───────┬───────┘                             │ - Multimodal list      │
             │                                     │   (Texts + Image URLs) │
             │ Converted Texts & IMAGE_SENTINELs   └───────────┬────────────┘
             └─────────────────────────────────────────────────►            │ Use OpenAI-comp
                                                                            │ API (vLLM/Qwen)
                                                   ┌────────────────────────┐ (or simulator)
                                                   │    LLM Inference       │
                                                   └───────────┬────────────┘
                                                               │
                                                   ┌───────────▼────────────┐
                                                   │    JSON validation     │
                                                   │     (analyzer.py)      │
                                                   ├────────────────────────┤
                                                   │ Parse: action, risk,   │
                                                   │ violations, summary    │
                                                   └───────────┬────────────┘
                                                               │ DLPResult
                                                               ▼
                                                   ┌────────────────────────┐
                                                   │      CLI Output        │
                                                   ├────────────────────────┤
                                                   │ - Write JSON to disk   │
                                                   │ - Rich summary table   │
                                                   └────────────────────────┘