Skip to content

مصادر البيانات البعيدة

تحميل بيانات التعليق التوضيحي من عناوين URL والتخزين السحابي وقواعد البيانات والمزيد.

مصادر البيانات البعيدة

يدعم Potato تحميل بيانات التعليق التوضيحي من مصادر بعيدة متنوعة تتجاوز الملفات المحلية، بما في ذلك عناوين URL وخدمات التخزين السحابي وقواعد البيانات ومجموعات بيانات Hugging Face.

نظرة عامة

يوفر نظام مصادر البيانات:

  • أنواع مصادر متعددة: عناوين URL، Google Drive، Dropbox، S3، Hugging Face، Google Sheets، قواعد بيانات SQL
  • التحميل الجزئي: تحميل البيانات على دفعات لمجموعات البيانات الكبيرة
  • التحميل التدريجي: تحميل المزيد من البيانات تلقائيًا مع تقدم التعليق التوضيحي
  • التخزين المؤقت: تخزين الملفات البعيدة محليًا لتجنب التنزيل المتكرر
  • بيانات الاعتماد الآمنة: استبدال متغيرات البيئة للأسرار

الإعداد

أضف data_sources إلى ملف config.yaml الخاص بك:

yaml
data_sources:
  - type: file
    path: "data/annotations.jsonl"
 
  - type: url
    url: "https://example.com/data.jsonl"

أنواع المصادر

ملف محلي

yaml
data_sources:
  - type: file
    path: "data/annotations.jsonl"

عنوان HTTP/HTTPS

yaml
data_sources:
  - type: url
    url: "https://example.com/data.jsonl"
    headers:
      Authorization: "Bearer ${API_TOKEN}"
    max_size_mb: 100
    timeout_seconds: 30
    block_private_ips: true    # SSRF protection

Amazon S3

yaml
data_sources:
  - type: s3
    bucket: "my-annotation-data"
    key: "datasets/items.jsonl"
    region: "us-east-1"
    access_key_id: "${AWS_ACCESS_KEY_ID}"
    secret_access_key: "${AWS_SECRET_ACCESS_KEY}"

المتطلبات: pip install boto3

Google Drive

yaml
data_sources:
  - type: google_drive
    url: "https://drive.google.com/file/d/xxx/view?usp=sharing"

للملفات الخاصة، استخدم credentials_file مع حساب خدمة. المتطلبات: pip install google-api-python-client google-auth

Dropbox

yaml
data_sources:
  - type: dropbox
    url: "https://www.dropbox.com/s/xxx/file.jsonl?dl=0"

للملفات الخاصة، استخدم access_token: "${DROPBOX_TOKEN}". المتطلبات: pip install dropbox

مجموعات بيانات Hugging Face

yaml
data_sources:
  - type: huggingface
    dataset: "squad"
    split: "train"
    token: "${HF_TOKEN}"        # For private datasets
    id_field: "id"
    text_field: "context"

المتطلبات: pip install datasets

Google Sheets

yaml
data_sources:
  - type: google_sheets
    spreadsheet_id: "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"
    sheet_name: "Sheet1"
    credentials_file: "credentials/service_account.json"

المتطلبات: pip install google-api-python-client google-auth

قاعدة بيانات SQL

yaml
data_sources:
  - type: database
    connection_string: "${DATABASE_URL}"
    query: "SELECT id, text, metadata FROM items WHERE status = 'pending'"

أو باستخدام معلمات فردية:

yaml
data_sources:
  - type: database
    dialect: postgresql
    host: "localhost"
    port: 5432
    database: "annotations"
    username: "${DB_USER}"
    password: "${DB_PASSWORD}"
    table: "items"

المتطلبات: pip install sqlalchemy psycopg2-binary (PostgreSQL) أو pymysql (MySQL)

التحميل الجزئي/التدريجي

لمجموعات البيانات الكبيرة، قم بتمكين التحميل الجزئي:

yaml
partial_loading:
  enabled: true
  initial_count: 1000
  batch_size: 500
  auto_load_threshold: 0.8     # Auto-load when 80% annotated

التخزين المؤقت

يتم تخزين المصادر البعيدة مؤقتًا محليًا:

yaml
data_cache:
  enabled: true
  cache_dir: ".potato_cache"
  ttl_seconds: 3600            # 1 hour
  max_size_mb: 500

إدارة بيانات الاعتماد

استخدم متغيرات البيئة للقيم الحساسة:

yaml
data_sources:
  - type: url
    url: "https://api.example.com/data"
    headers:
      Authorization: "Bearer ${API_TOKEN}"
 
credentials:
  env_substitution: true
  env_file: ".env"

مصادر متعددة

اجمع البيانات من مصادر متعددة:

yaml
data_sources:
  - type: file
    path: "data/base.jsonl"
 
  - type: url
    url: "https://example.com/extra.jsonl"
 
  - type: s3
    bucket: "my-bucket"
    key: "annotations/batch1.jsonl"

التوافق مع الإصدارات السابقة

يستمر إعداد data_files في العمل جنبًا إلى جنب مع data_sources:

yaml
data_files:
  - "data/existing.jsonl"
 
data_sources:
  - type: url
    url: "https://example.com/additional.jsonl"

الأمان

  • مصادر URL تحظر عناوين IP الخاصة/الداخلية افتراضيًا (حماية SSRF)
  • لا تقم أبدًا بإيداع بيانات الاعتماد في نظام التحكم بالإصدارات
  • استخدم صيغة ${VAR_NAME} للأسرار
  • خزّن ملفات .env خارج مستودعك

قراءة إضافية

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