# AI Document Extraction Prompt — Country-Specific Field Mapping ## Overview Extract driver registration fields from uploaded document images. Below is the exact field-to-document-side mapping verified against real government documents for each country. ## Field Extraction Matrix | Field | Jordan | Syria | Egypt | |---|---|---|---| | `first_name` + `last_name` | ID front, License front | ID front, License front | ID front, License front | | `national_number` | ID front, License front | **ID front** (bottom), License front | ID front, License front | | `birthdate` | ID front, License front | ID front, License front | ID **front** (above national number, left side) | | `gender` | ID front | ID **back** | ID **back** | | `address` | ID **back**, License front | ID **back** | ID front, License front | | `site` (مكان القيد) | ID **back** | ID **back** | — | | `maritalStatus` | **Not on ID** (`null`) | **Not on ID** (`null`) | ID **back** | | `license_type` | License front (symbols/numbers at bottom) | License front | License front | | `license_categories` | — | License **back** (detailed) | — | | `issue_date` | License front | License front | License front | | `expiry_date` | License **front** | License front | License front | | `owner` | Car reg front | Car reg front | Car reg front | | `car_plate` | Car reg front | Car reg front | Car reg front | | `make`, `model`, `year` | Car reg front | Car reg front | Car reg **back** | | `color` | Car reg front | Car reg front | Car reg **back** | | `vin` | Car reg front | Car reg front | Car reg **back** | | `fuel` | Car reg front | Car reg front | Car reg **back** | | `expiration_date` | Car reg front | Car reg front | Car reg **back** | ## Country-Specific Details ### 🇯🇴 Jordan - **ID Front:** Full name (one line → split to `first_name` + `last_name`), `national_number`, `gender`, `birthdate`, place of birth, mother's name - **ID Back:** Place of registration (`site`), card expiry date, place of issue, `address` - **License Front:** Full name + English, `national_number`, `birthdate`, `address`, license number, `issue_date`, `expiry_date`, `license_type` (symbols/numbers) - **License Back:** Blood type, medical restrictions/notes only - **Car Reg Front:** All vehicle data (`owner`, `car_plate`, `make`, `model`, `year`, `color`, `vin`, `fuel`, `expiration_date`) - **Note:** `maritalStatus` does NOT appear on Jordanian documents → set to `null` ### 🇸🇾 Syria - **ID Front:** Full name (first name + father name + mother name + last name), place of birth, `birthdate`, `national_number` (bottom) - **ID Back:** Registration (`site`), `address`, `gender`, eye color, complexion, distinguishing marks, issue date - **License Front:** Name, father name, `national_number`, `birthdate`, `issue_date`, `expiry_date` - **License Back:** `license_categories` (detailed categories) - **Car Reg Front:** All vehicle data (`owner`, `car_plate`, `make`, `model`, `year`, `color`, `vin`, `fuel`, `expiration_date`) - **Note:** `maritalStatus` does NOT appear on Syrian documents → set to `null` ### 🇪🇬 Egypt - **ID Front:** Full name (first name + rest), complete `address`, `birthdate` (printed on front, above national number, left side), `national_number` (14 digits) - **ID Back:** Occupation, `maritalStatus`, `gender` (ذكر/أنثى), religion, issue date, expiry date - **License Front:** Name, `address`, `national_number`, `issue_date`, `expiry_date`, license type/grade - **Car Reg Back:** All technical vehicle data (`make`, `model`, `year`, `vin`, `fuel`, `color`, `expiration_date`) - **Note:** `birthdate` is on ID **front**, not back ## Criminal Record Verification - `full_name` — name on document - `result` — varies: "لا حكم عليه" (Syria), "عدم محكومية" (Jordan), "فيش وتشبيه" (Egypt) - `is_valid` — true/false (document is valid and current) ## Face Matching - `profile_vs_id` — match/mismatch/unclear - `profile_vs_license` — match/mismatch/unclear ## Output Format Return ONLY raw JSON: ```json { "status": "success|failure", "face_match_confidence": "high|medium|low", "driver": { "first_name": "", "last_name": "", "phone": "", "email": "", "gender": "Male|Female", "birthdate": "YYYY-MM-DD", "national_number": "", "site": "", "address": "", "maritalStatus": "", "license_type": "", "license_categories": "", "issue_date": "YYYY-MM-DD", "expiry_date": "YYYY-MM-DD", "licenseIssueDate": "YYYY-MM-DD" }, "car": { "owner": "", "car_plate": "", "make": "", "model": "", "year": "", "color": "", "color_hex": "", "fuel": "", "vin": "", "expiration_date": "YYYY-MM-DD" }, "criminal_record": { "full_name": "", "result": "", "is_valid": true }, "face_matching": { "profile_vs_id": "match|mismatch|unclear", "profile_vs_license": "match|mismatch|unclear" } } ``` ## Rules 1. Convert Eastern-Arabic digits (٠١٢٣٤٥٦٧٨٩) to Western (0-9). 2. Dates in ISO format: `YYYY-MM-DD`. 3. If unreadable/missing → set to `null`, do NOT fail. 4. Fail only on: face mismatch, forged/fake documents, or missing primary identity. 5. `national_number` and `vin` must contain only Latin digits/characters. 6. Normalize color names: "أبيض" → "White", with hex code. 7. Return ONLY raw JSON → no markdown formatting. 8. Refer to the Field Extraction Matrix above: extract each field from the correct document side.