تحميل البيانات من مجلد
تحميل مثيلات التعليق التوضيحي من مجلد مع مراقبة حية اختيارية.
تحميل البيانات من مجلد
بدلاً من تحديد ملفات البيانات الفردية باستخدام 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_directory | string | - | مسار المجلد الذي يحتوي على ملفات البيانات |
watch_data_directory | boolean | false | ما إذا كان يجب مراقبة الملفات الجديدة/المعدلة |
watch_poll_interval | number | 5.0 | الثواني بين عمليات فحص المجلد (الحد الأدنى: 1.0) |
تنسيقات الملفات المدعومة
يدعم مراقب المجلد نفس التنسيقات التي يدعمها data_files:
- JSON (
.json) - كائن JSON واحد لكل سطر، أو مصفوفة JSON - JSONL (
.jsonl) - تنسيق JSON Lines، كائن واحد لكل سطر - CSV (
.csv) - قيم مفصولة بفواصل مع صف عنوان - TSV (
.tsv) - قيم مفصولة بعلامات جدولة مع صف عنوان
كيف يعمل
عند بدء التشغيل
- يتم فحص جميع الملفات ذات الامتدادات المدعومة في
data_directory - يتم تحليل كل ملف وفقاً لامتداده
- تُضاف المثيلات إلى قائمة انتظار التعليق التوضيحي
- إذا تم تمكين
watch_data_directory، يبدأ مسار خلفي بالمراقبة
أثناء التشغيل (عند تمكين المراقبة)
- كل
watch_poll_intervalثانية، يتم فحص المجلد - يتم تحليل الملفات الجديدة وإضافة مثيلاتها
- يُعاد تحليل الملفات المعدلة:
- تُضاف المثيلات الجديدة
- تُحدَّث المثيلات الموجودة (مع الحفاظ على التعليقات التوضيحية)
- الملفات المحذوفة: تبقى المثيلات في النظام (للحفاظ على التعليقات التوضيحية)
مثال على هيكل المجلد
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 لرؤية تفاصيل معالجة الملفات الفردية.
قراءة إضافية
- تنسيقات البيانات - تنسيقات البيانات المدعومة
- أساسيات الإعداد - الإعداد العام
لمزيد من تفاصيل التنفيذ، راجع التوثيق المصدري.