Skip to content

دعم الذكاء الاصطناعي

دمج نماذج اللغة الكبيرة للمساعدة الذكية في التعليق التوضيحي.

يتضمن Potato 2.0 دعماً مدمجاً لنماذج اللغة الكبيرة (LLMs) لمساعدة المعلّقين بتلميحات ذكية وتمييز الكلمات المفتاحية واقتراحات التصنيفات.

مقدّمو الخدمة المدعومون

يدعم Potato عدة مقدّمي خدمة لنماذج اللغة الكبيرة:

مقدّمو الخدمة السحابية:

  • OpenAI (GPT-4، GPT-4 Turbo، GPT-3.5)
  • Anthropic (Claude 3، Claude 3.5)
  • Google (Gemini 1.5 Pro، Gemini 2.0 Flash)
  • Hugging Face
  • OpenRouter

محلي/مستضاف ذاتياً:

  • Ollama (تشغيل النماذج محلياً)
  • vLLM (استدلال مستضاف ذاتياً عالي الأداء)

التهيئة

الإعداد الأساسي

أضف قسم ai_support إلى ملف التهيئة الخاص بك:

yaml
ai_support:
  enabled: true
  endpoint_type: "openai"
  ai_config:
    model: "gpt-4o-mini"
    api_key: "${OPENAI_API_KEY}"
    temperature: 0.7
    max_tokens: 800
    include:
      all: true

التهيئة الخاصة بكل مقدّم خدمة

OpenAI

yaml
instance_display:
  fields:
    - {key: body, type: text, label: Ticket}
    - {key: screenshot, type: image, label: Screenshot}

Anthropic Claude

yaml
ai_support:
  enabled: true
  endpoint_type: "openai"
  ai_config:
    model: "gpt-4o-mini"
    api_key: "${OPENAI_API_KEY}"
    include:
      all: false
      special_include:
        "0":
          "0": ["hint", "keyword"]
        "1":
          "1": ["hint"]
        "2":
          "0": ["hint", "keyword"]
          "1": ["hint", "keyword"]

Google Gemini

yaml
ai_support:
  enabled: true
  endpoint_type: "openai"
  ai_config:
    model: "gpt-4o-mini"
    api_key: "${OPENAI_API_KEY}"
    include:
      all: true
  cache_config:
    disk_cache:
      enabled: true
      path: "annotation_output/ai_cache.json"
    prefetch:
      warm_up_page_count: 20
      on_next: 10
      on_prev: 3

Ollama المحلي

yaml
# config.yaml, committed, no secrets
ai_support:
  enabled: true
  ai_config_file: ai-config.yaml
 
  ai_config:
    temperature: 0.7
    max_tokens: 800
    include:
      all: true

vLLM (مستضاف ذاتياً)

yaml
# ai-config.yaml, gitignored
endpoint_type: ollama
model: qwen3:0.6b
base_url: http://localhost:11434

نقاط نهاية الذكاء الاصطناعي المرئي

جديد في الإصدار v2.1.0

لمهام التعليق التوضيحي للصور والفيديو، يدعم Potato نقاط نهاية رؤية مخصصة تشمل YOLO وOllama Vision وOpenAI Vision وAnthropic Vision. تتيح هذه كشف الكائنات والتعليق التوضيحي المسبق والتصنيف المرئي.

راجع دعم الذكاء الاصطناعي المرئي لتفاصيل التهيئة الكاملة.

ميزات الذكاء الاصطناعي

يوفر دعم الذكاء الاصطناعي في Potato خمس قدرات رئيسية:

1. التلميحات الذكية

تقديم إرشادات سياقية للمعلّقين دون الكشف عن الإجابة:

yaml
ai_support:
  enabled: true
  endpoint_type: "openai"
  ai_config:
    model: "gpt-4o-mini"
    api_key: "${OPENAI_API_KEY}"
    temperature: 0.7
    max_tokens: 800
    include:
      all: true

2. تمييز الكلمات المفتاحية

تمييز الكلمات المفتاحية ذات الصلة تلقائياً في النص:

yaml
ai_support:
  enabled: true
  endpoint_type: "anthropic"
  ai_config:
    model: "claude-sonnet-4-20250514"
    api_key: "${ANTHROPIC_API_KEY}"
    temperature: 0.7
    max_tokens: 800
    include:
      all: true

3. اقتراحات التصنيفات

اقتراح تصنيفات لنظر المعلّق (تُعرض مع مؤشرات الثقة):

yaml
ai_support:
  enabled: true
  endpoint_type: "gemini"
  ai_config:
    model: "gemini-2.0-flash-exp"
    api_key: "${GOOGLE_API_KEY}"
    max_tokens: 800
    include:
      all: true

4. مبررات التصنيفات

جديد في الإصدار v2.1.0

توليد شروحات متوازنة لسبب إمكانية تطبيق كل تصنيف على النص، مما يساعد المعلّقين على فهم المنطق وراء التصنيفات المختلفة:

yaml
ai_support:
  enabled: true
  endpoint_type: "ollama"
  ai_config:
    model: "llama3.2"
    base_url: "http://localhost:11434"
    max_tokens: 800
    include:
      all: true

تظهر المبررات كتلميح يسرد كل تصنيف متاح مع شرح لسبب إمكانية تطبيقه. هذا مفيد لتدريب المعلّقين أو عندما تكون قرارات التعليق التوضيحي صعبة.

5. تمييز الخيارات

جديد في الإصدار v2.2.0

تمييز الخيارات الأكثر احتمالاً للصحة بمساعدة الذكاء الاصطناعي لمهام التعليق التوضيحي المنفصلة (radio، multiselect، likert، select). يحلل النظام المحتوى ويميّز أعلى k خيارات محتملة مع تعتيم الأقل احتمالاً، مع الإبقاء على جميع الخيارات قابلة للنقر.

yaml
ai_support:
  enabled: true
  endpoint_type: "vllm"
  ai_config:
    model: "meta-llama/Llama-3.2-3B-Instruct"
    base_url: "http://localhost:8000"
    max_tokens: 800
    include:
      all: true

راجع تمييز الخيارات لتفاصيل التهيئة الكاملة.

تكميلي: الترتيب المتنوع

جديد في الإصدار v2.2.0

رغم أنها ليست ميزة ذكاء اصطناعي بالمعنى الدقيق، يستخدم الترتيب المتنوع تضمينات sentence-transformer لتجميع العناصر وتقديمها بترتيب متنوع، مما يقلل إرهاق المعلّق ويحسّن التغطية. يتكامل مع دعم الذكاء الاصطناعي عن طريق الجلب المسبق التلقائي لتلميحات الذكاء الاصطناعي للعناصر المعاد ترتيبها.

التخزين المؤقت والأداء

يمكن تخزين استجابات الذكاء الاصطناعي مؤقتاً لتحسين الأداء وتقليل تكاليف API:

yaml
ai_support:
  enabled: true
  endpoint_type: "open_router"
  ai_config:
    model: "openai/gpt-4o-mini"
    api_key: "${OPENROUTER_API_KEY}"
    max_tokens: 800
    include:
      all: true

استراتيجيات التخزين المؤقت

  1. التسخين: توليد تلميحات الذكاء الاصطناعي مسبقاً لدفعة أولية من الحالات عند بدء تشغيل الخادم (warm_up_page_count)
  2. الجلب المسبق: توليد تلميحات للحالات القادمة أثناء تنقل المعلّقين للأمام (on_next) أو للخلف (on_prev)
  3. الاستمرارية على القرص: يتم حفظ ذاكرة التخزين المؤقت على القرص وتستمر عبر عمليات إعادة تشغيل الخادم

الأوامر المخصصة

يتضمن Potato أوامر افتراضية لكل نوع تعليق توضيحي، مخزنة في potato/ai/prompt/. يمكنك تخصيصها لمهمتك المحددة:

نوع التعليق التوضيحيملف الأمر
أزرار الاختيارradio_prompt.txt
مقاييس ليكرتlikert_prompt.txt
مربعات الاختيارcheckbox_prompt.txt
تعليق النطاقspan_prompt.txt
أشرطة التمريرslider_prompt.txt
القوائم المنسدلةdropdown_prompt.txt
إدخال الأرقامnumber_prompt.txt
إدخال النصtext_prompt.txt

تدعم الأوامر استبدال المتغيرات:

  • {text} - نص المستند
  • {labels} - التصنيفات المتاحة للمخطط
  • {description} - وصف المخطط

دعم المخططات المتعددة

للمهام التي تحتوي على مخططات تعليق توضيحي متعددة، يمكنك تفعيل دعم الذكاء الاصطناعي بشكل انتقائي:

yaml
ai_support:
  enabled: true
  endpoint_type: "ollama"
  visual_endpoint_type: "ollama_vision"
  ai_config:
    model: "llama3.2"
    include:
      all: true
  visual_ai_config:
    model: "qwen2.5-vl:7b"

مثال كامل

تهيئة كاملة لتحليل المشاعر بمساعدة الذكاء الاصطناعي:

yaml
annotation_task_name: "Sentiment Analysis with AI Support"
task_dir: "."
 
data_files:
  - "data/reviews.json"
 
item_properties:
  id_key: id
  text_key: text
 
annotation_schemes:
  - annotation_type: radio
    name: sentiment
    description: "What is the sentiment of this text?"
    labels: ["positive", "negative", "neutral"]
 
  - annotation_type: multiselect
    name: topics
    description: "What topics are discussed?"
    labels: ["product", "service", "price", "quality"]
 
ai_support:
  enabled: true
  endpoint_type: "openai"
  ai_config:
    model: "gpt-4o-mini"
    api_key: "${OPENAI_API_KEY}"
    temperature: 0.7
    max_tokens: 800
    include:
      all: true
  cache_config:
    disk_cache:
      enabled: true
      path: "annotation_output/ai_cache.json"
    prefetch:
      warm_up_page_count: 20
      on_next: 10
      on_prev: 3
 
output_annotation_dir: "output/"
export_annotation_format: jsonl
 
user_config:
  allow_all_users: true

متغيرات البيئة

قم بتخزين مفاتيح API بأمان باستخدام متغيرات البيئة:

bash
export OPENAI_API_KEY="sk-..."
export ANTHROPIC_API_KEY="sk-ant-..."
export GOOGLE_API_KEY="..."

أشِر إليها في تهيئتك باستخدام صيغة ${VARIABLE_NAME}.

اعتبارات التكلفة

  • يتم إجراء استدعاءات الذكاء الاصطناعي لكل حالة افتراضياً
  • فعّل التخزين المؤقت لتقليل استدعاءات API المتكررة
  • استخدم التسخين والجلب المسبق لتوليد التلميحات مسبقاً
  • فكّر في استخدام نماذج أصغر/أرخص للمهام البسيطة
  • مقدّمو الخدمة المحليون (Ollama، vLLM) لا تترتب عليهم تكاليف API

أفضل الممارسات

  1. استخدم الذكاء الاصطناعي كمساعد، لا كبديل - دع المعلّقين يتخذون القرارات النهائية
  2. فعّل التخزين المؤقت للإنتاج - يقلل زمن الاستجابة والتكاليف
  3. اختبر الأوامر بدقة - يجب التحقق من صحة الأوامر المخصصة
  4. راقب تكاليف API - تتبع الاستخدام خاصةً مع مقدّمي الخدمة السحابية
  5. فكّر في مقدّمي الخدمة المحليين - Ollama أو vLLM للتعليق التوضيحي بكميات كبيرة
  6. احمِ بيانات اعتماد API - استخدم متغيرات البيئة، ولا تلتزم المفاتيح أبداً

قراءات إضافية

للاطلاع على تفاصيل التنفيذ وقوالب الأوامر المخصصة، راجع الوثائق المصدرية.