- بنية محلل البيانات الذكي: رفع البيانات، تحليلها، مراجعتها
- ما الذي يعمل داخل بيئة Python المعزولة لتحليل البيانات؟
- كيف يجب أن يعمل رفع CSV وفحص المخطط؟
- كيف يقوم النموذج بإنشاء وتشغيل Python بأمان؟
- التحكم في الوصول إلى حزم Python لتحليل البيانات بالذكاء الاصطناعي
- كيفية التحقق من صحة الرسوم البيانية وملفات الإخراج
- نقاط الأمان التفتيشية قبل الإنتاج
- استخدام Novita Agent Sandbox كطبقة تنفيذ
- الخلاصة
- الأسئلة الشائعة
- مقالات مقترحة
يحتاج محلل البيانات الذكي إلى بيئة Python معزولة عندما تتطلب مجموعات البيانات المقدمة من المستخدم، والكود المُنشأ بواسطة النموذج، وتثبيت الحزم، والرسوم البيانية المُنشأة، والمخرجات القابلة للتنزيل، أن تعمل في بيئة منعزلة وقابلة للمراقبة. تدفق التنفيذ العملي هو: رفع ملف، فحص المخطط باستخدام كود موثوق، سؤال النموذج عن خطة، مراجعة كود Python المُنشأ، تشغيله في بيئة معزولة مقيدة، التحقق من نتائج المخرجات، وعرض ما حدث للمستخدم.
بنية محلل البيانات الذكي: رفع البيانات، تحليلها، مراجعتها
نمط المنتج بسيط على السطح: يقوم المستخدم برفع ملف CSV، ويطرح سؤالاً بلغة طبيعية، ويتوقع جداول ورسومًا بيانية وملفات قابلة للتنزيل. في الخلفية، يقوم التطبيق بتشغيل سير عمل وكيل صغير مع تأثيرات جانبية حقيقية. يخطط النموذج للتحليل ويصوغ كود Python، بينما يقرر التطبيق ما يُسمح به من كود وحزم وملفات ووصول إلى الشبكة ومخرجات.
قم ببناء الإصدار الأول حول مسار واحد واضح:
- قبول رفع ملف CSV لمهمة تحليل واحدة.
- إنشاء مساحة عمل معزولة مخصصة للمهمة.
- تشغيل كود فحص المخطط الخاص بك قبل سؤال النموذج عن كود Python.
- سؤال النموذج عن خطة تحليل، ثم عن نص برمجي يتبع قواعد الملفات والحزم الخاصة بك.
- تنفيذ النص البرمجي مع حدود زمنية وحدود للذاكرة والقرص والحزم والشبكة.
- جمع المخرجات المُتحقق منها فقط من دليل إخراج معروف.
- عرض الإجابة والرسوم البيانية والتحذيرات والسجلات والملفات المحددة للتنزيل على المستخدم.
هذا الفصل يحافظ على وضوح المسؤوليات. يقترح النموذج التحليل ويشرحه. يطبق الجزء الخلفي سياسة المنتج والتنسيق. تشغل البيئة المعزولة الكود بملفات وحزم ووقت وذاكرة ووصول إلى الشبكة وأسرار مقيدة.
ما الذي يعمل داخل بيئة Python المعزولة لتحليل البيانات؟
ضع مساحة عمل التحليل داخل البيئة المعزولة، وليس داخل خادم التطبيق الرئيسي الخاص بك. يجب أن تستقبل البيئة المعزولة حزمة إدخال ضيقة لمهمة تحليل واحدة: الملف المرفوع، وبيان صغير، ونص برمجي مُنشأ، وأي تكوين تشغيل معتمد. يجب أن يحتفظ الجزء الخلفي للتطبيق بالمصادقة والفواتير وهوية المستخدم والتخزين طويل الأمد والأسرار الإنتاجية خارج مساحة العمل هذه.
بالنسبة لمحلل البيانات الذكي، تمتلك البيئة المعزولة عادةً هذه المهام:
| مهمة البيئة المعزولة | لماذا تنتمي إلى هنا |
|---|---|
| تجهيز الملفات | يمكن فحص ملف CSV المرفوع ونسخه إلى دليل عمل منعزل قبل أن يلمسه Python. |
| فحص المخطط | يمكن للتطبيق استنتاج أسماء الأعمدة والأنواع ومعدلات القيم الفارغة وعدد الصفوف وقيم العينات دون تعريض الملف الكامل للنموذج. |
| تنفيذ Python | يتم تشغيل الكود المُنشأ بواسطة النموذج بعيدًا عن خادم التطبيق ويمكن تحديد وقت له. |
| تحضير الحزم | يتم تثبيت أو توفير التبعيات المعتمدة فقط للمهمة. |
| عرض الرسوم البيانية | تتم كتابة صور الرسوم البيانية كملفات ومراجعتها قبل التنزيل. |
| حزم النتائج | يمكن جمع المخرجات النهائية من دليل إخراج معروف. |
| التنظيف | يمكن حذف الملفات المؤقتة والكود المُنشأ وحالة الجلسة أو السماح بانتهاء صلاحيتها. |
اجعل مطالبة النموذج أصغر من البيانات. أرسل ملخص المخطط، وعددًا قليلاً من الصفوف التمثيلية إذا كانت السياسة تسمح بذلك، وأوصاف الأعمدة، وهدف المستخدم، والقيود مثل “لا تدرب نموذجًا” أو “استخدم الحزم المعتمدة فقط”. يجب أن تظل مجموعة البيانات الخام في نظام ملفات البيئة المعزولة ما لم يكن لمنتجك سبب محدد ومراجع لتعريض المزيد.
كيف يجب أن يعمل رفع CSV وفحص المخطط؟
ابدأ بمعاملة كل رفع كإدخال غير موثوق. تحقق من نوع الملف وحجمه وترميزه والمحدد وعدد الصفوف وعدد الأعمدة والصيغ المشبوهة قبل مشاركة النموذج. لا يزال بإمكان ملف CSV احتواء قيم تؤدي إلى تنفيذ صيغ جداول البيانات عند فتحها لاحقًا، لذا يجب تنظيف الملفات المصدرة للتنسيق المستهدف أيضًا.
يبدو تدفق الرفع العملي كما يلي:
- يقوم المستخدم برفع ملف CSV إلى التطبيق.
- يخزن الجزء الخلفي الملف الأصلي تحت مفتاح كائن أو مسار تخزين مؤقت مخصص للمهمة.
- ينشئ الجزء الخلفي جلسة بيئة معزولة للمهمة.
- ينسخ الجزء الخلفي الملف إلى دليل عمل البيئة المعزولة.
- يقرأ نص برمجي صغير وحتمي للفحص الملف وينتج ملخص المخطط.
- يتلقى النموذج ملخص المخطط وسؤال المستخدم والمكتبات المسموح بها ومتطلبات الإخراج.
يجب أن تكون خطوة الفحص كودًا حتميًا تمتلكه، وليس كودًا مُنشأ بواسطة النموذج. يمكن أن ينتج ملخص JSON مضغوطًا مثل هذا:
{
"file": "sales.csv",
"rows": 84231,
"columns": [
{"name": "order_date", "type": "date", "null_rate": 0.01},
{"name": "region", "type": "string", "sample_values": ["NA", "EMEA", "APAC"]},
{"name": "revenue", "type": "number", "null_rate": 0.0}
],
"safe_sample_rows": 5
}
يمنح هذا الملخص النموذج سياقًا كافيًا لصياغة تحليل دون تسليم مجموعة البيانات بأكملها له. بالنسبة لأعباء العمل الحساسة، قلل أو أزل قيم العينات، أو أخفِ الأعمدة، أو اشترط موافقة المستخدم على الأعمدة التي يمكن استخدامها.
كيف يقوم النموذج بإنشاء وتشغيل Python بأمان؟
يجب أن ينتج النموذج خطة قبل أن ينتج كودًا. الخطة الجيدة تسمي الأعمدة التي سيستخدمها، والتحويلات التي يعتزم تشغيلها، والرسوم البيانية التي يتوقع إنشاءها، وملفات الإخراج التي سيكتبها. يمنح هذا التطبيق نقطة تفتيش للسياسة ومراجعة المستخدم.
بعد قبول الخطة، اطلب كود Python يتبع عقدًا ضيقًا:
- اقرأ ملفات الإدخال فقط من دليل
input/. - اكتب المخرجات فقط إلى دليل
output/. - استخدم الحزم المعتمدة فقط.
- تجنب استدعاءات الشبكة ما لم تسمح سياسة المهمة بذلك صراحةً.
- اطبع ملخصًا منظمًا في النهاية.
- فشل بوضوح عند فقدان الأعمدة المطلوبة.
على المستوى المفاهيمي، تبدو حلقة التنسيق كما يلي:
job = create_analysis_job(user_id, uploaded_file)
sandbox = create_sandbox(job_id=job.id, timeout_seconds=300)
copy_file_to_sandbox(uploaded_file, sandbox_path="/work/input/data.csv")
schema = run_owned_schema_inspector(sandbox, "/work/input/data.csv")
plan = ask_model_for_analysis_plan(
user_question=job.question,
schema=schema,
allowed_packages=["pandas", "numpy", "matplotlib"],
output_contract={"directory": "/work/output", "formats": ["png", "csv", "json"]},
)
review_policy(plan)
script = ask_model_for_python(plan=plan, schema=schema)
review_static_code_policy(script)
result = run_python_in_sandbox(
sandbox=sandbox,
script=script,
working_dir="/work",
timeout_seconds=120,
memory_limit_mb=1024,
)
artifacts = collect_outputs(sandbox, "/work/output")
review_outputs(artifacts)
return_answer_to_user(result.summary, artifacts)
هذا كود زائف، وليس عقد SDK للمنتج. النقطة هي الحدود: يتم مراجعة الكود المُنشأ، وتشغيله بحد زمني، وتقييده بالأدلة المعروفة، ويتبعه جمع المخرجات والمراجعة.
إذا فشل البرنامج النصي، أرسل رسالة الخطأ ومقتطفًا صغيرًا من الكود إلى النموذج للإصلاح. لا ترسل سجلات غير محدودة. يجب أن يحافظ إصلاح الأخطاء على نفس سياسة الحزمة والملف والشبكة والإخراج مثل المحاولة الأولى.
التحكم في الوصول إلى حزم Python لتحليل البيانات بالذكاء الاصطناعي
الوصول إلى الحزم هو المكان الذي تصبح فيه العديد من عروض محللي البيانات الذكية محفوفة بالمخاطر. قد يطلب النموذج مكتبة لأنه رآها في برنامج تعليمي، أو لأن اسم حزمة يبدو معقولاً، أو لأن مطالبة المستخدم اقترحتها. يجب ألا يحول تطبيقك هذه الاقتراحات إلى تثبيتات حزم غير مقيدة.
استخدم سياسة تتوافق مع حساسية البيانات:
| سياسة الحزمة | الأفضل مناسبة | المفاضلة |
|---|---|---|
| صورة مبنية مسبقًا فقط | أعباء العمل الإنتاجية ذات احتياجات التحليل القابلة للتنبؤ | أقل مرونة، أبسط سطح مراجعة |
| حزم قائمة بيضاء | معظم مساعدي تحليل CSV | توازن جيد لـ pandas والرسوم البيانية وحزم الإحصاء الشائعة |
| تثبيتات بإصدارات محددة | مهام تحليل قابلة للتكرار | يتطلب صيانة الحزمة ومراجعة الثغرات |
| مرآة داخلية مخبأة | سير العمل في المؤسسات أو البيانات المنظمة | عمل تشغيلي أكثر، تحكم أفضل في سلسلة التوريد |
| تثبيتات بموافقة المستخدم | أدوات استكشافية للمستخدمين الموثوقين | أكثر مرونة، ولكن أبطأ وتحتاج تحذيرات واضحة |
بالنسبة للإصدار الإنتاجي الأول، ابدأ ببيئة مبنية مسبقًا أو قائمة بيضاء قصيرة. يمكن الإجابة على معظم أسئلة CSV باستخدام مجموعة صغيرة من المكتبات: pandas، numpy، matplotlib، seaborn، scipy، وأحيانًا scikit-learn. إذا كانت المهمة تحتاج إلى حزمة أخرى، اطلب من النموذج شرح السبب، ثم وجه هذا الطلب من خلال موافقة بشرية أو سير عمل مراجعة الحزمة.
سجل اسم الحزمة والإصدار وسجل المصدر ووقت التثبيت والسبب الذي طلبت من أجله الحزمة. إذا كان فريق الأمان لديك يستخدم ماسحات التبعية أو السجلات الخاصة، فتكامل مع تلك العملية بدلاً من السماح للوكيل بتجاوزها.
كيفية التحقق من صحة الرسوم البيانية وملفات الإخراج
الملفات المُنشأة هي جزء من تجربة المنتج، لكنها أيضًا جزء من حدود الثقة. يمكن أن يكون الرسم البياني خاطئًا. يمكن أن يحتوي CSV على قيم تشبه الصيغ. يمكن أن يتضمن دفتر الملاحظات كودًا مخفيًا. يمكن أن يحتوي ZIP على مسارات غير متوقعة. تعامل مع المخرجات على أنها مخرجات يجب فحصها، وليست مجرد ملفات للتنزيل.
حدد عقد إخراج بسيطًا:
{
"required_files": ["summary.json"],
"optional_files": ["chart-*.png", "filtered-data.csv"],
"blocked_extensions": [".exe", ".sh", ".bat", ".html"],
"max_total_size_mb": 25
}
لكل مهمة مكتملة، اجمع الملفات فقط من دليل الإخراج المتوقع. تحقق من نوع MIME والملحق والحجم والمسار. بالنسبة للصور، أنشئ صورًا مصغرة للمعاينة. بالنسبة لصادرات CSV، قم بتسليط صيغ جداول البيانات إذا كان الملف قد يُفتح في Excel أو Google Sheets. بالنسبة لملخصات JSON، تحقق من صحتها مقابل مخطط قبل استخدامها في واجهة المستخدم.
امنح المستخدمين خطوة مراجعة قبل تنزيل النتائج أو مشاركتها. يجب أن تعرض شاشة المراجعة:
- السؤال الأصلي.
- اسم مجموعة البيانات والمخطط المستخدم.
- خطوات التحليل بلغة واضحة.
- الرسوم البيانية والجداول المُنشأة.
- أي أعمدة مستبعدة لأسباب سياسية.
- التحذيرات والأخطاء وإعادة المحاولات أو طلبات الحزم.
يمكن للنموذج كتابة شرح سردي، لكن يجب على التطبيق تأريخ هذا الشرح في الملفات والسجلات من تشغيل البيئة المعزولة.
نقاط الأمان التفتيشية قبل الإنتاج
محلل البيانات الذكي هو أداة داخلية مفيدة فقط إذا تمكنت فرق الأمان والمنصة من التفكير فيما يُسمح له بفعله. يجب أن تغطي المراجعة العزل وحدود الموارد وسياسة الحزمة وسلوك الشبكة والأسرار والسجلات والحذف.
استخدم قائمة المراجعة هذه قبل تجاوز مرحلة النموذج الأولي:
| نقطة تفتيش | السؤال الذي يجب الإجابة عليه |
|---|---|
| حدود العزل | ما الذي يفصل كود وملفات مستخدم عن المضيف والمستخدمين الآخرين؟ |
| الوصول إلى الملفات | هل يمكن للكود المُنشأ قراءة دليل المهمة فقط، أم يمكنه رؤية تخزين أوسع؟ |
| حدود الموارد | ما الذي يحدد وقت وحدة المعالجة المركزية والذاكرة والقرص وعدد العمليات ووقت الساعة؟ |
| سياسة الشبكة | هل الوصول الصادر إلى الشبكة مغلق أم في قائمة بيضاء أم عبر وكيل أم مفتوح بالكامل؟ |
| سياسة الحزمة | ما الحزم التي يمكن تثبيتها، ومن أين، وبأي ضوابط إصدار؟ |
| حدود الأسرار | هل تُبقي مفاتيح API وبيانات اعتماد قاعدة البيانات ورموز الخدمة خارج البيئة المعزولة ما لم يتم تحديد نطاقها صراحةً؟ |
| السجلات | هل يتم تسجيل الأوامر وتثبيت الحزم والأخطاء وقراءة/كتابة الملفات ومخرجات المخرجات؟ |
| المراجعة البشرية | ما الخطط ومقتطفات الكود وطلبات الحزم والمخرجات التي تحتاج موافقة؟ |
| التنظيف | متى يتم حذف حالة البيئة المعزولة والملفات المرفوعة والبرامج النصية المُنشأة والسجلات والمخرجات؟ |
تجنب الادعاءات المطلقة مثل “لا يمكن للكود الهروب” أو “لا يمكن تسريب البيانات”. المعيار العملي أكثر تحديدًا: حدد الحدود، وثّق الضوابط، واختبر أوضاع الفشل، واحتفظ بسجل تدقيق كافٍ للتحقيق في السلوك غير المتوقع.
بالنسبة لسياسة الشبكة والحزمة، تذكر أن تثبيت التبعية هو شكل من أشكال الخروج من الشبكة ما لم تأت الحزم من صورة مبنية مسبقًا أو مرآة خاضعة للرقابة. إذا كانت مجموعة البيانات حساسة، يجب حظر الوصول إلى الشبكة أو وضعه في قائمة بيضاء ضيقة بشكل افتراضي. إذا كان المحلل يحتاج إلى بيانات خارجية حية، فاجعل ذلك أداة منفصلة بمسار الموافقة والتسجيل الخاص بها.
استخدام Novita Agent Sandbox كطبقة تنفيذ
يوفر Novita Agent Sandbox بيئات تنفيذ معزولة ذات حالة للوكلاء الذكيين. تصف وثائق Novita الحالية دعم تشغيل الكود، وتثبيت التبعيات، والوصول إلى الملفات، واستخدام المتصفحات، والحفاظ على حالة التنفيذ عبر الجلسات. بالنسبة لمحلل البيانات الذكي، تتوافق هذه العناصر الأساسية مباشرة مع جزء التنفيذ من البنية: إنشاء مساحة عمل مهمة، ونقل الملفات إليها، وتشغيل كود التحليل، وجمع المخرجات، والتنظيف أو الحفاظ على الحالة بناءً على تصميم الجلسة.
يسرد توثيق SDK و CLI لـ Novita Agent Sandbox دعم SDK الرسمي لـ Python و JavaScript/TypeScript، والذي يناسب الخلفيات الشائعة للتطبيقات. يصف توثيق نظام ملفات البيئة المعزولة نظام ملفات معزول بمساحة تخزين ثابتة تبلغ 20 جيجابايت للبيئات المعزولة، وهو مفيد لتجهيز ملفات CSV والمخرجات المُنشأة داخل مساحة عمل مخصصة للمهمة.
حافظ على التمييز واضحًا:
- التوجيهات التنفيذية في هذه المقالة تصف بنية عامة لتطبيقات محلل البيانات الذكية.
- يمكن لـ Novita Agent Sandbox توفير طبقة تنفيذ البيئة المعزولة لسير العمل هذه.
- لا يزال تطبيقك يمتلك مصادقة المستخدم، وسياسة الاحتفاظ بالبيانات، والموافقة على الحزمة، وسياسة الشبكة، ومراجعة المخرجات، وقرارات النشر/النشر.
يساعد هذا الفصل الفرق على البناء بنموذج مسؤولية نظيف. يقترح النموذج التحليل ويشرحه. يطبق التطبيق سياسة المنتج. توفر البيئة المعزولة بيئة التشغيل الخاضعة للرقابة حيث يمكن التعامل مع الكود والملفات والحزم والرسوم البيانية والسجلات بعيدًا عن خادم التطبيق الرئيسي.
الخلاصة
أقوى تصميم لمحلل بيانات ذكي ليس “دع النموذج يشغل Python”. إنه حلقة خاضعة للرقابة: فحص مجموعة البيانات، وسؤال النموذج عن خطة، ومراجعة الكود المُنشأ، وتشغيله في بيئة معزولة، وجمع المخرجات المُتحقق منها، وعرض ما حدث للمستخدم، وتنظيف الحالة عند انتهاء المهمة. يحافظ هذا الهيكل على سرعة تجربة المستخدم مع إعطاء فرق الهندسة والأمان نقاط تفتيش ملموسة للتقييم قبل الإنتاج.
بالنسبة للفرق التي تبني هذا النمط، ابدأ صغيرًا: رفع CSV، فحص المخطط، قائمة بيضاء قصيرة للحزم، إخراج الرسوم البيانية، مهلات زمنية صارمة، وشاشة مراجعة مرئية. أضف وصولاً أوسع للحزم وأدوات الشبكة والثبات والأتمتة فقط بعد توثيق الحدود واختبارها.
الأسئلة الشائعة
لماذا يحتاج محلل البيانات الذكي إلى بيئة معزولة؟
يحتاج إلى بيئة معزولة لأن سير العمل يجمع بين الملفات غير الموثوقة وكود Python المُنشأ بواسطة النموذج وطلبات الحزم وإنشاء الرسوم البيانية والمخرجات القابلة للتنزيل. تشغيل هذا العمل في بيئة منفصلة يمنح تطبيقك مكانًا لتطبيق ضوابط الملفات والموارد والحزم والشبكة والتسجيل والتنظيف.
هل يجب أن يرى النموذج ملف CSV بالكامل؟
عادةً لا. ابدأ بإرسال ملخص المخطط وعينات آمنة وأوصاف الأعمدة وسؤال المستخدم إلى النموذج. احتفظ بالملف الخام في البيئة المعزولة ما لم يكن لمنتجك سبب مراجع لتعريض المزيد من البيانات للنموذج.
هل يمكن السماح بتثبيت الحزم؟
نعم، ولكن يجب التحكم فيها. استخدم صورة مبنية مسبقًا أو قائمة بيضاء أو إصدارات محددة أو مرآة خاصة أو سير عمل موافقة. لا تدع الكود المُنشأ بواسطة النموذج يقوم بتثبيت حزم عشوائية من الإنترنت العام دون مراجعة.
ما الملفات التي يجب أن يعيدها التطبيق إلى المستخدمين؟
أعد فقط الملفات المُتحقق منها من دليل إخراج معروف، مثل صور الرسوم البيانية وملخص JSON وصادرات CSV المنظفة. احظر الامتدادات غير المتوقعة والملفات الكبيرة والمسارات المخفية والمخرجات التي لم تكن جزءًا من عقد الإخراج.
هل هذا ضمان امتثال؟
لا. البيئة المعزولة هي جزء من بنية التنفيذ. تعتمد الموافقة على الامتثال والأمان على بياناتك ونموذج التهديد والضوابط والتسجيل والاحتفاظ وعملية المراجعة وبيئة النشر.
مقالات مقترحة
- كيف تدعم البيئات المعزولة للوكلاء الابتكار الآمن والقابل للتوسع في الذكاء الاصطناعي
- بناء وكيل برمجة باستخدام البيئة المعزولة لـ Novita
- تشغيل تقييمات وكيل Harbor على البيئة المعزولة لـ Novita
