डेटा डायरेक्टरी लोडिंग
वैकल्पिक लाइव वॉचिंग के साथ एक डायरेक्टरी से एनोटेशन इंस्टेंस लोड करें।
डायरेक्टरी से डेटा लोड करना
data_files के साथ अलग-अलग डेटा फ़ाइलें निर्दिष्ट करने के बजाय, आप Potato को अपनी डेटा फ़ाइलें युक्त एक डायरेक्टरी की ओर इशारा कर सकते हैं। सभी समर्थित फ़ाइलें स्वचालित रूप से लोड होंगी, नई या संशोधित फ़ाइलों के लिए वैकल्पिक लाइव वॉचिंग के साथ।
अवलोकन
यह उपयोगी है जब:
- आपके पास कई डेटा फ़ाइलें हैं और आप उन्हें व्यक्तिगत रूप से सूचीबद्ध नहीं करना चाहते
- आप सर्वर चलते समय नई फ़ाइलें गतिशील रूप से जोड़ना चाहते हैं
- आप किसी बाहरी प्रक्रिया से डेटा प्राप्त कर रहे हैं जो एक साझा डायरेक्टरी में लिखती है
कॉन्फ़िगरेशन
बुनियादी उपयोग (स्टैटिक लोडिंग)
स्टार्टअप पर एक डायरेक्टरी से सभी फ़ाइलें लोड करने के लिए:
# 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"लाइव डायरेक्टरी वॉचिंग
सर्वर चलते समय नई या संशोधित फ़ाइलों का स्वचालित रूप से पता लगाने और लोड करने के लिए:
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सेकंड में, डायरेक्टरी स्कैन होती है - नई फ़ाइलें पार्स की जाती हैं और उनके इंस्टेंस जोड़े जाते हैं
- संशोधित फ़ाइलें फिर से पार्स की जाती हैं:
- नए इंस्टेंस जोड़े जाते हैं
- मौजूदा इंस्टेंस अपडेट होते हैं (एनोटेशन संरक्षित रहते हैं)
- हटाई गई फ़ाइलें: इंस्टेंस एनोटेशन संरक्षित करने के लिए सिस्टम में बने रहते हैं
उदाहरण डायरेक्टरी संरचना
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)
{"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)
[
{"id": "item_004", "text": "Fourth document."},
{"id": "item_005", "text": "Fifth document."}
]CSV प्रारूप (batch_003.csv)
id,text,category
item_006,Sixth document to annotate.,news
item_007,Seventh document to annotate.,blogdata_files के साथ संयोजन
आप data_directory और data_files दोनों का एक साथ उपयोग कर सकते हैं:
# 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) एनोटेशन कतार में जोड़े जाते हैं
- मौजूदा इंस्टेंस (समान ID) अपडेट होते हैं, लेकिन एनोटेशन संरक्षित रहते हैं
- हटाए गए इंस्टेंस एनोटेशन संरक्षित करने के लिए सिस्टम में बने रहते हैं
इसका मतलब है कि यदि आप डेटा फ़ाइल अपडेट करते हैं तो एनोटेटर अपना काम नहीं खोएंगे।
त्रुटि प्रबंधन
- पार्स करने में विफल फ़ाइलें लॉग की जाती हैं और छोड़ी जाती हैं (अन्य फ़ाइलें फिर भी लोड होती हैं)
- किसी इंस्टेंस में
id_keyगायब: वह इंस्टेंस चेतावनी के साथ छोड़ा जाता है - किसी इंस्टेंस में
text_keyगायब: इंस्टेंस चेतावनी के साथ लोड होता है - डायरेक्टरी अनुमति त्रुटियां लॉग की जाती हैं
प्रदर्शन विचार
- पोल इंटरवल: उच्च मान CPU उपयोग कम करते हैं लेकिन नई फ़ाइलों का पता लगाने में देरी करते हैं
- बड़ी डायरेक्टरी: फ़ाइलें प्रत्येक इंटरवल में स्कैन की जाती हैं; फ़ाइलों को उपडायरेक्टरी में व्यवस्थित करने पर विचार करें
- बड़ी फ़ाइलें: संशोधित होने पर फ़ाइलें पूरी तरह से फिर से पार्स की जाती हैं; छोटी बैच फ़ाइलों का उपयोग करने पर विचार करें
लॉगिंग
डायरेक्टरी वॉचर INFO स्तर पर अपनी गतिविधि लॉग करता है:
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 लॉगिंग सक्षम करें।
आगे पढ़ें
- Data Formats - समर्थित डेटा प्रारूप
- Configuration Basics - सामान्य कॉन्फ़िगरेशन
कार्यान्वयन विवरण के लिए, स्रोत दस्तावेज़ीकरण देखें।