دليل المطوّر
طبقة الامتثال من ريجلينت تعترض مخرجات وكلاء الذكاء الاصطناعي وتفحصها لحظياً مقابل 69 نمطاً رقابياً حتمياً وقاعدة معرفة عربية عبر سبع ولايات قضائية. هذا الدليل يشرح كيف تُصدر مفتاحاً، وتُجري أول فحص، وتضبط السياسات. النسخة الإنجليزية على /docs.
1بداية سريعة
من صفر إلى أول قرار امتثال في أقل من دقيقة.
- احصل على مفتاح: أنشئ حساباً على /register وأصدر مفتاح واجهة برمجية. يظهر المفتاح الخام (rgl_…) مرة واحدة فقط عند الإصدار — احفظه في مكان آمن.
- أرسل مخرجات وكيلك إلى واجهة الفحص قبل أن تصل إلى العميل:
# أرسل رد الوكيل للفحص — الترويسة x-api-key تحمل مفتاحك
curl -X POST https://www.reglint.ai/api/monitor/scan \
-H "x-api-key: rgl_••••••••" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"agent_output": "رقم الهوية الوطنية للعميل هو 2468101213 محفوظ في النظام.",
"industry": "finance",
"mode": "full",
"language": "ar"
}'تحصل على قرار امتثال منظَّم. في المثال أعلاه رُصد رقم هوية سعودي فكان القرار REDACT:
{
"final_decision": "REDACT",
"safe_to_deliver": false,
"violations_count": 2,
"violations": [
{
"violation_id": "SA_NATIONAL_ID",
"severity": "high",
"law": "نظام حماية البيانات الشخصية السعودي، المادة 1 + اللوائح التنفيذية",
"violating_text": "2468101213",
"recommended_action": "REDACT",
"floor_violation": false,
"source": "rules_engine"
}
],
"redacted_output": "رقم الهوية الوطنية للعميل هو [REDACTED: SA_NATIONAL_ID] محفوظ في النظام.",
"processing_time_ms": 12039,
"metadata": { "rag_used": true, "mode": "full", "rag_country": null }
}الترويسة الصحيحة
استخدم x-api-key لمفاتيح rgl_. الترويسة Authorization: Bearer مخصّصة لجلسات المستخدمين البشر (JWT) فقط.
2واجهة الفحص
POST /api/monitor/scan — الحقل agent_output إلزامي؛ الباقي اختياري بقيم افتراضية آمنة.
حقول الطلب
| الحقل | الافتراضي | الوصف |
|---|---|---|
| agent_output | إلزامي | نص رد الوكيل المراد فحصه. |
| language | "en" | القيمة "ar" تُفعّل المسار العربي (كشف الكيانات العربية + قاعدة المعرفة + التصنيف العربي). |
| industry | "general" | healthcare | fintech | hr | general — سياق للاسترجاع والحكم. |
| mode | "full" | "fast" (المحرّك الحتمي فقط) أو "full" (حتمي + طبقة نموذج لغوي). العربية تُرفَع دائماً إلى full. |
| rules_config | {} | تجاوزات لكل قاعدة أو لكل مجموعة (انظر مفاتيح المجموعات). |
| default_action | null | BLOCK | REDACT | ALERT — سقفٌ عامٌ للقواعد الاعتيادية، لا يمسّ الحدود الصلبة. |
| privacy_mode | "strict" | strict | trust | authenticated | custom. |
| custom_policies | [] | سياسات مخصّصة بلغة طبيعية: [{id, rule, action}]. |
| agent_name customer_id | "unknown" | وسوم للتدقيق والتقارير. |
حقول الاستجابة
| الحقل | الوصف |
|---|---|
| final_decision | القرار الكلي: PASS ALERT REDACT BLOCK ALERT_HITL (الأعلى شدةً عبر كل المخالفات). |
| safe_to_deliver | true فقط عند PASS أو ALERT. |
| violations[] | لكل مخالفة: violation_id، severity، law (الاسم والمادة)، violating_text، recommended_action، floor_violation، source. |
| floor_violation | true إذا كانت المخالفة حدّاً صلباً (يبقى الوسم حتى لو خُفّض الإجراء — انظر سيادة العميل). |
| redacted_output | النص بعد التنقيح، أو [HELD_FOR_REVIEW] / [BLOCKED]. |
| metadata.rag_country | الدولة المكتشَفة ("sa"، "bh" …) — في الطلبات العربية فقط. |
| processing_time_ms | زمن المعالجة. |
مثال: سياق بحريني يستشهد بالقانون البحريني
فحص عربي يذكر الرقم الشخصي البحريني (CPR): تُكتشف الدولة bh ويُستشهَد بقانون البحرين رقم 30 لسنة 2018.
{
"final_decision": "REDACT",
"violations": [
{
"violation_id": "BH_CPR",
"law": "قانون رقم 30 لسنة 2018 بشأن حماية البيانات الشخصية (البحرين)",
"violating_text": "900712345",
"recommended_action": "REDACT",
"floor_violation": false,
"source": "rules_engine"
}
],
"redacted_output": "الرقم الشخصي (CPR) للعميل في المنامة بالبحرين هو [REDACTED: BH_CPR].",
"metadata": { "rag_used": true, "rag_country": "bh" }
}3التصنيف العربي — 29 فئة
في المسار العربي، تُطبَّع كل مخالفة يرصدها التحليل الدلالي إلى إحدى الفئات الدلالية المعيارية الـ29 (بالإضافة إلى OTHER_VIOLATION كفئة جامعة).
| # | الرمز | الاسم العربي |
|---|---|---|
| 1 | NATIONAL_ID_EXPOSURE | كشف رقم هوية وطنية |
| 2 | NATIONAL_ID_SOLICITATION | طلب رقم هوية وطنية |
| 3 | PAYMENT_CARD_DATA | كشف بيانات بطاقة دفع |
| 4 | BANK_ACCOUNT_DATA | كشف بيانات حساب بنكي |
| 5 | CREDIT_REPORT_DATA | كشف بيانات تقرير ائتماني |
| 6 | PREDATORY_LENDING | إقراض جائر |
| 7 | DEBT_COLLECTION_ABUSE | إساءة في تحصيل الديون |
| 8 | DECEPTIVE_COMMERCIAL_CLAIMS | ادعاءات تجارية مضللة |
| 9 | MEDICAL_RECORDS_EXPOSURE | كشف سجلات طبية |
| 10 | SENSITIVE_HEALTH_DATA | بيانات صحية حساسة |
| 11 | BIOMETRIC_DATA | كشف بيانات حيوية |
| 12 | IDENTITY_DOCUMENT_EXPOSURE | كشف وثيقة هوية |
| 13 | IMMIGRATION_STATUS | كشف حالة الهجرة أو الإقامة |
| 14 | CHILD_DATA | كشف بيانات طفل |
| 15 | CREDENTIALS_EXPOSURE | كشف بيانات اعتماد |
| 16 | STUDENT_RECORDS | كشف سجلات طلابية |
| 17 | EMPLOYMENT_DISCRIMINATION | تمييز وظيفي |
| 18 | DISABILITY_GENETIC_EMPLOYMENT | تمييز على أساس إعاقة أو بيانات جينية |
| 19 | CRIMINAL_RECORD_USE | استخدام سجل جنائي |
| 20 | GEOLOCATION_TRACKING | تتبع الموقع الجغرافي |
| 21 | COVERT_DEVICE_TRACKING | تتبع خفي للأجهزة |
| 22 | PERSONAL_CONTACT_EXPOSURE | كشف بيانات اتصال شخصية |
| 23 | DATA_SUBJECT_RIGHTS | انتهاك حقوق صاحب البيانات |
| 24 | HOUSING_DISCRIMINATION | تمييز سكني |
| 25 | UNSOLICITED_MARKETING | تسويق غير مرغوب |
| 26 | AML_STRUCTURING | تجزئة تحويلات لتفادي حدود الإبلاغ |
| 27 | KYC_BYPASS | تجاوز إجراءات توثيق الهوية |
| 28 | UNAUTHORIZED_FINANCIAL_ACTION | إجراء مالي غير مصرح |
| 29 | UNAUTHORIZED_DISCLOSURE | إفصاح ببيانات دون أساس نظامي |
4قواعد الطبقة الأولى العربية
13 قاعدة حتمية (regex) تعمل قبل طبقة النموذج اللغوي، كلٌّ مربوطة بنصّها القانوني وإجرائها الافتراضي.
| الرمز | الأساس القانوني | الوصف | الافتراضي |
|---|---|---|---|
| SA_NATIONAL_ID | نظام حماية البيانات الشخصية السعودي | كشف رقم الهوية الوطنية أو الإقامة السعودية | REDACT |
| AE_EMIRATES_ID | مرسوم بقانون اتحادي رقم 45 لسنة 2021 (الإمارات) | كشف رقم الهوية الإماراتية | REDACT |
| EG_NATIONAL_ID | قانون رقم 151 لسنة 2020 (مصر) | كشف الرقم القومي المصري | REDACT |
| QA_QID | قانون حماية خصوصية البيانات الشخصية (قطر) | كشف الرقم الشخصي القطري | REDACT |
| KW_CIVIL_ID | قانون حماية البيانات الشخصية (الكويت) | كشف الرقم المدني الكويتي | REDACT |
| BH_CPR | قانون رقم 30 لسنة 2018 (البحرين) | كشف الرقم الشخصي البحريني (CPR) | REDACT |
| GCC_EG_IBAN | أنظمة حماية البيانات المالية الخليجية/المصرية | كشف رقم الآيبان الخليجي أو المصري | REDACT |
| AR_PHONE_EXPOSURE | أنظمة حماية بيانات الاتصال الخليجية/المصرية | كشف رقم هاتف محمول — بيانات اتصال | ALERT |
| AR_DOB | أنظمة حماية البيانات الشخصية | كشف تاريخ الميلاد — بيانات تعريفية | REDACT |
| AR_MEDICAL_DATA | أنظمة حماية البيانات الصحية الحساسة | إشارة إلى بيانات صحية حساسة | BLOCK |
| AR_PASSWORD_EXPOSURE | أنظمة حماية البيانات الشخصية | كشف كلمة مرور أو سرّ في نص عربي | BLOCK |
| AR_ID_SOLICITATION | أنظمة حماية البيانات الشخصية | طلب رقم هوية داخل المحادثة | BLOCK |
| AR_KYC_BYPASS_SOLICITATION | أنظمة مكافحة غسل الأموال وتمويل الإرهاب | تسهيل تجاوز توثيق الهوية أو العقوبات | BLOCK |
5مفاتيح المجموعات و default_action
اضبط الإجراء لقاعدة واحدة، أو لمجموعة كاملة، عبر rules_config.
en— كل القواعد غير العربية.ar— القواعد العربية الـ13 مجتمعة.ar.<cc>— حسب الدولة: ar.sa, ar.ae, ar.eg, ar.qa, ar.kw, ar.bh.
الأولوية (الأعلى يفوز): مُعرّف القاعدة ← مجموعة الدولة ← مجموعة اللغة ← default_action العام للفحص.
{
"rules_config": {
"ar": { "default_action": "alert_hitl" }, // كل القواعد العربية → مراجعة بشرية
"ar.bh": { "default_action": "block" }, // قواعد البحرين → حظر (تفوق مجموعة "ar")
"BH_CPR": "REDACT" // قاعدة بعينها → تنقيح (تفوق الجميع)
}
}6سيادة العميل والحدود الصلبة
بعض المخالفات حدود صلبة (ALWAYS_BLOCK) — لكن القرار النهائي يبقى بيدك.
الحدّ الصلب يُكتشف ويُدوَّن دائماً: يظهر في السجل بالوسم floor_violation: true مع الاستشهاد القانوني (اسم القانون والمادة). أمّا الإجراء المُطبَّق عند التسليم فيتبع إعداد العميل:
-
default_actionعام للفحص لا يُسقط حدّاً صلباً — يَسقُف القواعد الاعتيادية فقط. - يُخفَّض إجراء الحدّ الصلب فقط عبر تجاوز صريح لمُعرّف القاعدة أو مفتاح مجموعة صالح — ومع ذلك يبقى
floor_violation: trueوالاستشهاد في السجل.
مثال: التزام الوكيل بفتح حساب دون توثيق الهوية يُفعّل AR_KYC_BYPASS_SOLICITATION (حدّ صلب) فيكون القرار BLOCK ويُستشهَد بأنظمة مكافحة غسل الأموال:
{
"final_decision": "BLOCK",
"violations": [
{
"violation_id": "KYC_BYPASS",
"severity": "critical",
"law": "قانون البنك المركزي رقم 194 لسنة 2020 — المادة 140؛ معايير مكافحة غسل الأموال",
"recommended_action": "BLOCK"
}
],
"original_output": "[BLOCKED]",
"metadata": { "rag_used": true, "mode": "full" }
}قاعدة السيادة
الكشف + التدقيق + الاستشهاد ثابتة دائماً؛ ما يتغيّر بإعدادك هو الإجراء المُسلَّم فقط.
7المراجعة البشرية (ALERT_HITL)
احتجاز المخرجات لمراجعة إنسان قبل التسليم.
عند اختيارك alert_hitl (عبر default_action أو لقاعدة بعينها)، يصبح القرار ALERT_HITL: يُعامَل كالحظر عند التسليم — safe_to_deliver: false، ويُستبدل النص بـ [HELD_FOR_REVIEW] ويُوجَّه إلى طابور المراجعة (hitl_status: pending). هذا متاح في الوضع full فقط؛ في الوضع fast (بلا خطوة مراجعة) يتراجع إلى ALERT.
8أمثلة برمجية
فحص مخرجات عربية عبر curl وPython وNode. أبقِ الكود إنجليزياً؛ التعليقات عربية.
import requests # افحص رد الوكيل العربي قبل تسليمه للعميل resp = requests.post( "https://www.reglint.ai/api/monitor/scan", headers={"x-api-key": "rgl_••••••••"}, json={ "agent_output": "رقم بطاقة العميل هو 4111 1111 1111 1111", "industry": "finance", "mode": "full", "language": "ar", # يُفعّل المسار العربي }, timeout=30, ) result = resp.json() # سلّم فقط عندما يكون القرار آمناً if result["safe_to_deliver"]: deliver(result["redacted_output"]) else: hold_for_review(result) # BLOCK / REDACT / ALERT_HITL
// افحص رد الوكيل العربي (Node 18+ — fetch مدمج) const res = await fetch("https://www.reglint.ai/api/monitor/scan", { method: "POST", headers: { "x-api-key": "rgl_••••••••", "Content-Type": "application/json; charset=utf-8", }, body: JSON.stringify({ agent_output: "الرقم القومي للعميل 29804151234567", industry: "finance", mode: "full", language: "ar", // المسار العربي }), }); const result = await res.json(); // القرار النهائي: PASS | ALERT | REDACT | BLOCK | ALERT_HITL console.log(result.final_decision, result.violations);
# فحص عربي سريع من الطرفية
curl -X POST https://www.reglint.ai/api/monitor/scan \
-H "x-api-key: rgl_••••••••" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{"agent_output":"يمكنني فتح الحساب دون توثيق الهوية","industry":"finance","mode":"full","language":"ar"}'