Skip to content

تحميل البيانات من مجلد

تحميل مثيلات التعليق التوضيحي من مجلد مع مراقبة حية اختيارية.

تحميل البيانات من مجلد

بدلاً من تحديد ملفات البيانات الفردية باستخدام data_files، يمكنك توجيه Potato إلى مجلد يحتوي على ملفات بياناتك. سيتم تحميل جميع الملفات المدعومة تلقائياً، مع مراقبة حية اختيارية للملفات الجديدة أو المعدلة.

نظرة عامة

هذا مفيد عندما:

  • لديك العديد من ملفات البيانات ولا تريد سردها بشكل فردي
  • تريد إضافة ملفات جديدة ديناميكياً أثناء تشغيل الخادم
  • تتلقى بيانات من عملية خارجية تكتب إلى مجلد مشترك

الإعداد

الاستخدام الأساسي (التحميل الثابت)

لتحميل جميع الملفات من مجلد عند بدء التشغيل:

yaml
# Load all supported files from this directory
data_directory: "./data/incoming"
 
# data_files can be empty when using data_directory
data_files: []
 
# Required: item_properties must still be configured
item_properties:
  id_key: "id"
  text_key: "text"

مراقبة المجلد الحية

لاكتشاف وتحميل الملفات الجديدة أو المعدلة تلقائياً أثناء تشغيل الخادم:

yaml
data_directory: "./data/incoming"
data_files: []
 
# Enable live watching (default: false)
watch_data_directory: true
 
# Optional: how often to check for changes in seconds (default: 5.0)
watch_poll_interval: 10.0
 
item_properties:
  id_key: "id"
  text_key: "text"

خيارات الإعداد

الخيارالنوعالقيمة الافتراضيةالوصف
data_directorystring-مسار المجلد الذي يحتوي على ملفات البيانات
watch_data_directorybooleanfalseما إذا كان يجب مراقبة الملفات الجديدة/المعدلة
watch_poll_intervalnumber5.0الثواني بين عمليات فحص المجلد (الحد الأدنى: 1.0)

تنسيقات الملفات المدعومة

يدعم مراقب المجلد نفس التنسيقات التي يدعمها data_files:

  • JSON (.json) - كائن JSON واحد لكل سطر، أو مصفوفة JSON
  • JSONL (.jsonl) - تنسيق JSON Lines، كائن واحد لكل سطر
  • CSV (.csv) - قيم مفصولة بفواصل مع صف عنوان
  • TSV (.tsv) - قيم مفصولة بعلامات جدولة مع صف عنوان

كيف يعمل

عند بدء التشغيل

  1. يتم فحص جميع الملفات ذات الامتدادات المدعومة في data_directory
  2. يتم تحليل كل ملف وفقاً لامتداده
  3. تُضاف المثيلات إلى قائمة انتظار التعليق التوضيحي
  4. إذا تم تمكين watch_data_directory، يبدأ مسار خلفي بالمراقبة

أثناء التشغيل (عند تمكين المراقبة)

  1. كل watch_poll_interval ثانية، يتم فحص المجلد
  2. يتم تحليل الملفات الجديدة وإضافة مثيلاتها
  3. يُعاد تحليل الملفات المعدلة:
    • تُضاف المثيلات الجديدة
    • تُحدَّث المثيلات الموجودة (مع الحفاظ على التعليقات التوضيحية)
  4. الملفات المحذوفة: تبقى المثيلات في النظام (للحفاظ على التعليقات التوضيحية)

مثال على هيكل المجلد

text
my_project/
├── configs/
│   └── config.yaml
└── data/
    └── incoming/
        ├── batch_001.jsonl
        ├── batch_002.jsonl
        └── new_data.json    # Added while server is running

أمثلة على ملفات البيانات

تنسيق JSONL (batch_001.jsonl)

json
{"id": "item_001", "text": "First document to annotate."}
{"id": "item_002", "text": "Second document to annotate."}
{"id": "item_003", "text": "Third document to annotate."}

تنسيق JSON (batch_002.json)

json
[
  {"id": "item_004", "text": "Fourth document."},
  {"id": "item_005", "text": "Fifth document."}
]

تنسيق CSV (batch_003.csv)

csv
id,text,category
item_006,Sixth document to annotate.,news
item_007,Seventh document to annotate.,blog

الدمج مع data_files

يمكنك استخدام كل من data_directory وdata_files معاً:

yaml
# Load specific files first
data_files:
  - "data/important_batch.jsonl"
 
# Then load everything from the directory
data_directory: "./data/incoming"
watch_data_directory: true

تحديث المثيلات

عند تعديل ملف أثناء تمكين المراقبة:

  • المثيلات الجديدة (معرفات جديدة) تُضاف إلى قائمة انتظار التعليق التوضيحي
  • المثيلات الموجودة (نفس المعرفات) تُحدَّث، لكن يتم الحفاظ على التعليقات التوضيحية
  • المثيلات المحذوفة تبقى في النظام للحفاظ على التعليقات التوضيحية

هذا يعني أن المعلقين لن يفقدوا عملهم إذا قمت بتحديث ملف بيانات.

معالجة الأخطاء

  • الملفات التي تفشل في التحليل يتم تسجيلها وتخطيها (الملفات الأخرى لا تزال تُحمَّل)
  • عدم وجود id_key في مثيل: يتم تخطي ذلك المثيل مع تحذير
  • عدم وجود text_key في مثيل: يُحمَّل المثيل مع تحذير
  • أخطاء أذونات المجلد يتم تسجيلها

اعتبارات الأداء

  • فترة الاستطلاع: القيم الأعلى تقلل استخدام المعالج لكنها تؤخر اكتشاف الملفات الجديدة
  • المجلدات الكبيرة: يتم فحص الملفات كل فترة؛ فكر في تنظيم الملفات في مجلدات فرعية
  • الملفات الكبيرة: يُعاد تحليل الملفات بالكامل عند التعديل؛ فكر في استخدام ملفات دفعات أصغر

التسجيل

يسجل مراقب المجلد نشاطه على مستوى INFO:

text
INFO: Loaded 150 instances from data_directory: ./data/incoming
INFO: Directory watching enabled (poll interval: 5.0s)
INFO: Directory scan: 25 instances added, 0 updated
INFO: Directory watcher stopped

قم بتمكين تسجيل DEBUG لرؤية تفاصيل معالجة الملفات الفردية.

قراءة إضافية

لمزيد من تفاصيل التنفيذ، راجع التوثيق المصدري.