Skip to content

ما الجديد

ما الجديد في Potato v2.x. يضيف الإصدار 2.8 الرؤية الحاسوبية، والسحب النقطية ثلاثية الأبعاد، وخرائط العمق، وحلقات الروبوتات، وتقييم نماذج العالم، إضافة إلى اتفاق مصحَّح للصدفة على الهندسة والزمن. 61 نوع توسيم، و24 نوع عرض.

تغطي هذه الصفحة الميزات الجديدة والتحسينات عبر إصدارات Potato v2.x.


Potato 2.11.1

صدر في أكتوبر 2026

يتيح Potato 2.11.1 للأمر potato start config.yaml --debug أن يبدأ على العنوان الافتراضي من جديد، ويضيف مصنِّفات الصور إلى تدريب النماذج، ويُصلح الوسوم المسبقة التي كانت تضيع عند كل إعادة تشغيل.

bash
pip install --upgrade potato-annotation

وضع التصحيح

من 2.8.2 حتى 2.11.0، كان خادم التصحيح على العنوان الافتراضي 0.0.0.0 يرفض البدء ما لم يُعطَ --host 127.0.0.1. وفي 2.11.1 يبدأ على أي عنوان، وتستطيع الأجهزة الأخرى على الشبكة الوصول إليه. ويشرح دليل تصحيح الأخطاء ما يفعله وضع التصحيح الآن:

  • تبقى صفحة تسجيل الدخول ما لم تُضِف --debug-phase. مع --debug-phase يُسجَّل دخول كل زائر بوصفه المستخدم المشترك debug_user، فلا تستخدمه في دراسة حقيقية.
  • لا تُفتح صفحات الإدارة دون مفتاح إلا للطلبات الآتية من جهاز الخادم نفسه، أي من عنوان loopback دون ترويسة X-Forwarded-For أو X-Real-IP أو Forwarded. ويسري هذا أيضاً عند الربط على 127.0.0.1، حيث كان 2.11.0 يُمرّر كل طلب، لأن الوكيل أو النفق على الجهاز نفسه يُحيل طلبات الأجهزة الأخرى إلى 127.0.0.1.
  • لا يعمل مصحّح Werkzeug التفاعلي إلا عند الربط على 127.0.0.1، لأنه ينفّذ الشيفرة المكتوبة في المتصفح.

لم يعد POTATO_ALLOW_REMOTE_DEBUG يُقرأ. ولا يزال أمر التصحيح مع --host 127.0.0.1 يعمل ويمنحك المصحّح التفاعلي.

تصنيف الصور والوسوم المسبقة

  • صار تدريب النماذج يدرّب مصنِّفات الصور. المخطط من نوع radio أو multiselect الذي تشير عناصره إلى ملفات صور يُدرَّب على تضمينات CLIP، بعد أن كان يُلائم TF-IDF على مسارات الملفات. وتُستبعد الصور البعيدة أو المفقودة مع تحذير.
  • يعمل التعلّم النشط على الصور كما هو موثّق. يبني vectorizer: {name: image} محوِّل المتجهات CLIP، ولم يكن هذا اسماً يستطيع المدير بناءه، فكانت مثل هذه الدراسة تُرتَّب بـ TF-IDF على مسارات الملفات.
  • يستخلص محرّك الوسم مصنِّفات الصور في دراسة صور (labeling_engine.distill.modality).
  • وسوم مسبقة للعناصر غير الموسومة. يجعل model_training.writeback.include_unlabeled: true النموذج يتنبأ بالعناصر التي لم يَسِمها أحد بعد. وكان التشغيل من قبل لا يتنبأ إلا بالعناصر المحجوزة للاختبار التي سبق وسمها، فلم تكن الكتابة الراجعة (write-back) تصل أبداً إلى العناصر التي وُضع الوسم المسبق من أجلها.

وتغطي وثائق تدريب النماذج عمليات التدريب والكتابة الراجعة وقائمة المراجعة.

إصلاحات تمسّ دراسات سابقة

  • لم تكن الوسوم المسبقة تصمد بعد إعادة التشغيل. كانت إعادة تطبيق التنبؤات المخزَّنة عند بدء التشغيل تجري قبل تحميل أي عنصر، فكانت قائمة مراجعة النموذج تفرغ عند كل إعادة تشغيل. وصارت تجري الآن بعد تحميل العناصر، وتطبّق الفحوص نفسها التي تطبّقها الكتابة الراجعة.
  • كان نموذج نصي يُدرَّب على عناوين URL. كانت العناصر التي تحمل حقل url أو path أو file_name تعطي المدرِّب تلك القيمة بدلاً من النص.
  • كانت إعادة تعيين كلمة المرور تفشل مع SSO. مع method: oauth وallow_local_login كانت كل إعادة تعيين تُطلق خطأ. وصار من الممكن الآن إعادة تعيين الحسابات المحلية.
  • كان ai_support يرفض OpenRouter. صار endpoint_type: openrouter مقبولاً الآن.

وتضم ملاحظات الإصدار القائمة الكاملة.


Potato 2.11.0

صدر في أكتوبر 2026

يضيف Potato 2.11.0 محرّك الوسم، الذي يَسِم مجموعة بيانات باستخدام النماذج، ويستعين بعيّنة عشوائية عمياء من الوسوم البشرية ليقيس كم مرة تخطئ النماذج. تحدّد أنت ما يجب أن تستوفيه الوسوم النهائية، مثل «لا تزيد الوسوم الآلية المقبولة الخاطئة على 5%، بثقة 90%». يقبل المحرّك الوسوم الآلية التي يدعمها اختبار إحصائي، ويرسل الباقي إلى البشر، ويكتب شهادة تسجّل ما اختُبر وعلى كم وسماً بشرياً. وتشرح صفحة محرّك الوسم طريقة الإعداد.

صار تسجيل خروج الجلسات الخاملة يحدث، بعد 8 ساعات افتراضياً. قبل 2.11.0 لم يكن لـ session_timeout_minutes أي أثر في التطبيق أثناء تقديمه، لأن الفحص كان مسجّلاً على كائن تطبيق يتخلّص منه potato start. صارت الجلسة التي تبقى خاملة مدة أطول من الإعداد (480 دقيقة افتراضياً) تُمسح، ويُوجَّه طلبها التالي إلى صفحة تسجيل الدخول. وستبدأ أجهزة الأكشاك وأجهزة المختبرات المشتركة التي تبقى مسجّلة الدخول طوال الليل في الخروج تلقائياً، فارفع قيمة session_timeout_minutes حيث يهمّ ذلك.

bash
pip install --upgrade potato-annotation

محرّك الوسم

تُفعّل المحرّكَ كتلةُ labeling_engine مع assignment_strategy: engine. مصادره نماذج تُجرَّب بترتيب متتالٍ (cascade)، وبعد آخر مصدر يذهب العنصر إلى البشر. يحدّد كل عقد مخطط توسيم واحداً، ويُختبر مقابل وسوم بشرية يطلبها المحرّك عشوائياً ويعرضها بشكل أعمى، دون توسيم مسبق أو حكم من نموذج حَكَم أو مساعدة من الذكاء الاصطناعي على الصفحة.

  • المصادر. نماذج LLM، ونماذج الرؤية واللغة، ونماذج القرار (Laya وأي خادم /v1/systemone)، وكواشف YOLO، ونماذج حَكَم LLM مع تبديل ترتيب الوسوم، ولجان التحكيم، ونماذج مدرَّبة على وسوم الدراسة نفسها، ووسوم لديك أصلاً.
  • العقود. يضع selective_risk حداً أعلى لنسبة الوسوم الآلية المقبولة الخاطئة، عند مستوى ثقة محدَّد. ويعطي ppi فترات للانتشار أو للمتوسط تبقى صالحة أياً كانت جودة الآلة. ويُجري no_worse_than_human اختبار المُعلِّق البديل (alternative annotator test)، ويقدّر budget_first ما يمكن الحصول عليه بميزانية من الوسوم البشرية، ويقارن distributional وسوم الآلة بالطريقة التي ينقسم بها البشر في العناصر الذاتية.
  • الوسائط. مخططات الاختيار الواحد من N، والترتيبية، والرقمية، ومتعددة الوسوم، ومناطق الصور، والصوت، والفيديو، ومقاطع temporal grounding والتوسيم متعدد المستويات، والكائنات ثلاثية الأبعاد، ووسوم خطوات آثار الوكلاء. وتُقيَّم المناطق والمقاطع والكائنات ثلاثية الأبعاد والآثار بالمقاييس التي يستخدمها تقرير الاتفاق.
  • التدقيق. يعود جزء من الوسوم الآلية المقبولة إلى البشر، بشكل أعمى. وعندما يُظهر التدقيق معدل خطأ أعلى من الهدف، يتوقف المحرّك عن قبول الوسوم الآلية في ذلك المخطط (مع features.drift، المفعّل افتراضياً)، ويعيد الإشهاد من جديد القبول.
  • الواجهات. potato label run|status|certify|certificate|export|calls|distill|optimize|migrate-config، وواجهة REST API تحت /api/engine/v1، وخمس أدوات MCP باسم engine_*، وPython SDK، وصفحة إدارة على /admin/labeling-engine.

العقد المستوفى عبارة إحصائية عن الاتفاق مع الأشخاص الذين وسموا العيّنة. ولا يتحقق المحرّك من صواب هؤلاء الأشخاص، لذا فإن عقداً اختُبر مقابل مُعلِّقين غير موثوقين يشهد بالاتفاق مع مُعلِّقين غير موثوقين. وتشرح صفحة عقود محرّك الوسم ما يختبره كل عقد ومتى يفشل.

يستمر icl_labeling وjudge_calibration وpre_annotation في العمل، ويطبع كلٌّ منها عند بدء التشغيل ملاحظة تذكر ما يقابله في المحرّك. ويكتب potato label migrate-config كتلة labeling_engine المكافئة. ولم يُعلَن إهمال الوضع الفردي ولا مواءمة الحَكَم. وتضم صفحة الانتقال إلى محرّك الوسم جدول المقابلة.

الاتفاق

  • صار /admin/iaa يُبلغ عن مخططات أكثر. كانت spatial_annotation وtemporal_grounding وtiered_annotation ومخططات آثار الوكلاء (process_reward، trajectory_eval، tool_call_review، failure_attribution، gui_trajectory) تُتخطّى على أنها غير مدعومة، وصارت تُقيَّم الآن.
  • لم يعد /admin/api/agreement يُبلغ عن المخططات المهيكلة. حين كانت آثار الوكلاء والمقاطع والمناطق والكائنات ثلاثية الأبعاد تُختزل إلى أسماء الوسوم، كانت تُظهر اتفاقاً تاماً بين كل زوج من المُعلِّقين. وصار المسار يحيل الآن إلى /admin/iaa، الذي يقارن البُنى.
  • صار مقطعان متطابقان طول كلٍّ منهما صفر يُعدّان متفقين. كانا يُحتسبان من قبل اختلافاً تاماً.
  • المقيّمون الآليون يبقون خارج الأرقام المنشورة. يستبعد النشر ووضع الورقة البحثية (Paper Mode) المقيّمين الآليين من الوسوم الذهبية ومن أرقام الاتفاق.

الوضع الفردي

  • الاقتراحات العمياء. يحجب solo_mode.suggestions وسم نموذج LLM على كل العناصر أو على عيّنة منها، ويقرأ التسليم الاتفاق على العناصر العمياء، لأن الاقتراح المعروض على الشاشة يكون مرساةً تؤثر في الشخص الذي يفحصه.
  • سقف للإنفاق وذاكرة تخزين مؤقت للردود. يُفحص ai_budget.cap_usd قبل بدء الوسم وقبل كل دفعة، ويعيد solo_mode.cache استخدام الرد على الاستدعاء المكرَّر.
  • نماذج القرار. تَسِم نقطتا النهاية systemone وlaya مخططات الاختيارات الثابتة في تمريرة أمامية واحدة، بوصفهما مستوى أول سريعاً. وفي صفحة الوضع الفردي إعداد لذلك.
  • مجموعة ذهبية ولجنة تحكيم ومنهج متدرّج. يقيّم solo_mode.gold الموجّه على وسوم معروفة قبل التشغيل الكامل، ويجعل solo_mode.jury عدة نماذج تصوّت على كل عنصر، ويبدأ instance_selection.curriculum بك من العناصر التي وجدها نموذج LLM أسهل. وفحص حساسية الموجّه جديد أيضاً.

إصلاحات تمسّ دراسات 2.10

  • كانت صفحة الصور تحفظ إجابة معبّأة مسبقاً من تلقاء نفسها. في مخطط image_annotation مع pre_annotation، كانت لوحة الرسم تحفظ الأشكال المعبّأة مسبقاً بوصفها إجابة المُعلِّق حين تعيد ترتيب تخطيطها بعد التحميل، فيُحتسب العنصر الذي لم يُمسّ مُجاباً. صار الحفظ الآن لا يحدث إلا عند التعديل. وفي دراسة صور على 2.10 تستخدم التوسيم المسبق، قد تكون بعض العناصر المحتسبة مُجابة لم تُمسّ قط.
  • لم تكن الصور تُحمَّل من مضيفات لا ترسل ترويسات CORS. كان المضيف الذي لا يرسل ترويسة Access-Control-Allow-Origin، مثل cocodataset.org، يرفض طلب لوحة الرسم، فتعرض الصفحة «Failed to load image». صارت الصفحة تحمّل هذه الصور دون CORS. يعمل الرسم، أما تعبئة المناطق وSAM والتجزئة بموجّه نصي، وهي تقرأ بكسلات الصورة، فتوضّح سبب تعذّر تشغيلها.
  • كان الشكل الموسوم مسبقاً بلا color يُسقَط. كان العنصر يعرض «Annotations: 0» دون أي تحذير، وصار الشكل الآن يأخذ لون وسمه.
  • لم يكن «Generate prompt» في الوضع الفردي يستدعي أي نموذج. صار يطلب من نموذج المراجعة كتابة الموجّه الأول. وإن لم يوجد نموذج مراجعة، يرجع إلى وصف المهمة ويُخبر بذلك.
  • كان الرفض عبر potato mcp connect يبدو نجاحاً. كان استدعاء الأداة المرفوض يعود مع isError: false، وصار يعود الآن خطأَ أداة يحمل رسالة الخادم.
  • كان مثال الهيكل الكامل للدراسة يحتوي على مفتاح ميت. لا يقرأ Potato أي training.feedback.enabled، لذا صار المثال يضبط feedback.show_explanations.
  • لم يكن تسجيل خروج الجلسات الخاملة يحدث قط، كما هو موضّح في أول هذا الإدخال.
  • كان الفصل في الخلاف يحتسب المقيّمين الآليين. كان المُعلِّقون الآليون قادرين على إرسال عنصر إلى الفصل في الخلاف، وكان min_human_annotations يُتجاهل، وكانت درجة اتفاق مفقودة تُعطّل التنسيق.
  • كان التوسّع التلقائي في Prolific يحتسب التوسيمات الآلية ويتجاهل الحدود القصوى لكل عنصر. صار عدد الأماكن المراد فتحها لا يحتسب إلا التوسيمات البشرية مقابل الحد الأقصى لكل عنصر.
  • لم يكن اكتشاف الحالات الحدّية يفعل شيئاً على vLLM. لم يكن الفك الموجَّه (guided decoding) على vLLM يعيد حقول الحالات الحدّية أبداً، وصارت الآن جزءاً من مخطط الاستجابة.

وتضم ملاحظات الإصدار القائمة الكاملة.


Potato 2.10.3

صدر في أكتوبر 2026

يُصلح Potato 2.10.3 ثلاثة أخطاء اكتُشفت في الإصدار 2.10.2 بعد نشره.

bash
pip install --upgrade potato-annotation
  • الاتفاق على بيانات بالإجماع. عندما كان كل المُعلِّقين يعطون الإجابة نفسها في كل عنصر، كان /admin/api/agreement يُرجع المخطط على شكل {"error": "float division by zero"}. الاتفاق بالصدفة في هذه الحالة يساوي 1، فتكون ألفا ومعاملا كابا كلاهما غير معرّفة. صار المسار يُبلغ عنها الآن بالقيمة null، مع percent_agreement بقيمة 1.0 والملاحظة نفسها التي يعطيها /admin/iaa، ويستبعد المتوسط العام هذا المخطط.
  • potato deploy button --dry-run لا يتصل بالشبكة. من دون --hf-backup-repo كان التشغيل التجريبي يسأل HuggingFace عن مالك الرمز، وكان الرمز غير الصالح ينتهي بتتبّع خطأ (traceback). صار التشغيل التجريبي يستخدم العنصر النائب <hf-account>/<name>-annotations، كما يفعل potato deploy up --dry-run، ويُبلغ التشغيل الفعلي عن الرمز المرفوض برسالة خطأ.
  • لم يعد استيراد Potato يحسب تجزئة كلمة مرور. كان Potato يحسب تجزئة PBKDF2 عند الاستيراد، فكانت كل عملية تنفق 100,000 تكرار عند البدء، بما فيها أدوات سطر الأوامر. صارت التجزئة تُحسب أول مرة يحاول فيها اسم مستخدم غير معروف تسجيل الدخول. كما عاد الاستيراد يعمل تحت Pyodide، الذي لا تحتوي مكتبة hashlib فيه على pbkdf2_hmac.

وتضم ملاحظات الإصدار القائمة الكاملة.


Potato 2.10.2

صدر في أكتوبر 2026

يُصلح Potato 2.10.2 ميزاتٍ لم تكن تعمل عند التثبيت عبر pip أو من صورة Docker، ويسدّ طرقاً كانت تتيح تسجيل الدخول باسم مستخدم آخر، ويجعل قاعدة بيانات MySQL الخلفية تعمل، ويصحّح إحصاءات الاتفاق. إن كنت قد نشرت أرقام اتفاق حسبتها بإصدار سابق، فأعد حسابها.

bash
pip install --upgrade potato-annotation
  • كانت حسابات SSO تقبل أي كلمة مرور. في مهمة تستخدم OAuth، كان نموذج كلمة المرور يُدخل أيّ شخص إلى حساب سجّله أحد المزوّدين. لم تعد هويات SSO تُصادَق بكلمة المرور، ولم يعد بإمكان شخص غريب في دراسة تعمل على MySQL أن يسجّل اسم مستخدم معلِّق موجود فيرث عمله.
  • كان ai_support وأدوات الاستبيان يفشلان عند التثبيت عبر pip. أغفلت حزمة wheel مطالبات الذكاء الاصطناعي وأدوات الاستبيان، فكانت الدراسة التي تستخدم أيّاً منهما تتوقف عند بدء التشغيل. وكانت الحاويات وأهداف potato deploy تتخطى أيضاً عشرة أنظمة فرعية، منها دعم الدردشة.
  • لم تكن قاعدة بيانات MySQL الخلفية تعمل قط. كانت التهيئة التي تذكرها تخزّن التوسيمات على القرص. ثبّت برنامج التشغيل بالأمر pip install 'potato-annotation[mysql]'؛ وصار التصدير والنسخ الاحتياطي وpotato deploy pull تقرأ من قاعدة البيانات.
  • 59 إصلاحاً لإحصاءات الاتفاق، تحقّق كلٌّ منها مقابل تطبيق مرجعي مثل scipy أو sklearn أو الحزمة krippendorff. صار المعامل غير المعرَّف يُبلَّغ عنه بأنه غير معرَّف بدلاً من 1.0، وصار ألفا الترتيبي يستخدم المقياس الترتيبي لـ Krippendorff، وصار MACE يقدّر كفاءة المعلّقين العابثين تماماً (spammers) بنحو 0.01 بدلاً من 0.35، ولم تعد النتائج تتغير بعد إعادة التشغيل، وصار plackett_luce يلائم دالة أرجحية الأفضل والأسوأ بدلاً من تكرار Bradley-Terry.
  • تحافظ السحب النقطية بإحداثيات الخرائط على دقتها. كان ملف LAS بإحداثيات UTM يُرسم على شبكة قد تبلغ خشونتها 0.5 m. صار Potato يقدّمه نسبةً إلى أصل محلي، ويحفظ التوسيمات بإحداثيات الملف نفسه.

وتضم ملاحظات الإصدار القائمة الكاملة.


Potato 2.10.1

صدر في أكتوبر 2026

يصلح Potato 2.10.1 خمس مشكلات في potato deploy وفي النسخ الاحتياطي اكتُشفت بعد صدور 2.10.0. رقِّ إليه قبل أن تعتمد على التشغيل التجريبي.

bash
pip install --upgrade potato-annotation
  • كان التشغيل التجريبي ينجح في عمليات نشر يرفضها up بعد ذلك. فقد كانت خطة نظيفة تُطبع لـ Heroku أو ECS Express دون --backup، ولـ Render أو Railway دون تخزين نسخ احتياطي يُرفع إليه المشروع، ولـ Fly مع مشروع أكبر من أن يُرسل مضمَّناً. صارت الخطة وup تُجريان الفحص نفسه، ويطبع كلاهما REFUSED: <reason> ويخرج بالحالة 2.
  • كان --demo يُقترح حيث لا يمكن أن يعمل. يرفع Render وRailway وECS Express مشروعك إلى تخزين النسخ الاحتياطي، فتحتاج إلى --backup hf أو --backup s3 حتى في دراسة توسيماتها قابلة للتخلص منها. صار التحذير التمهيدي يقترح --demo لـ Heroku وHuggingFace فقط.
  • كان --cloud jetstream2 يخطط لنوع المثيل الخطأ. فقد أظهر التشغيل التجريبي m1.small، بينما أنشأ up مثيلاً من نوع m3.small.
  • كان سعران خاطئين. ذكر potato deploy providers نحو $16 شهرياً لـ aws-ec2 ونحو $7 لـ fly. والخطط تحسب $18.31 و$5.85، وصار الملخصان يذكران نحو $18 ونحو $6.
  • لم يكن backup: {enabled: false} يوقف النسخ الاحتياطي حين كانت التهيئة لا تزال تحتوي على كتلة huggingface_backup. صارت الكتلة الجديدة هي التي تُعتمد.

وتضم ملاحظات الإصدار القائمة الكاملة.


Potato 2.10.0

صدر في أكتوبر 2026

يضيف Potato 2.10.0 ثماني منصات استضافة إلى potato deploy، وينسخ التوسيمات احتياطياً على المضيفات التي لا يبقى قرصها بعد إعادة التشغيل، ويضيف text_as_image الذي يعرض نص كل عنصر صورةً حتى لا يستطيع المعلّقون لصقه في روبوت محادثة. وتبيّن صفحة تشغيل Potato محليًا أو في السحابة أي مضيف يناسب أي دراسة.

صار الإصدار يعلن اشتراط Python 3.9 أو أحدث. كانت إحدى الاعتماديات الأساسية تشترطه أصلاً، فلم يكن تثبيت الإصدارات السابقة ممكناً على 3.7 أو 3.8 هي الأخرى، وصار pip يقول ذلك قبل أن يثبّت أي شيء.

bash
pip install --upgrade potato-annotation

النشر

  • AWS بثلاث طرق. ينشئ --provider aws مثيل Lightsail بسعر ثابت قدره $12 شهرياً ولا يحتاج إلا إلى صلاحيات lightsail:*. أما aws-ec2 فهو للحسابات التي عُطِّل فيها Lightsail، ويشغّل aws-ecs الحاوية على ECS Express Mode خلف عنوان HTTPS تديره AWS، بتكلفة أعلى ومع نسخ احتياطي إلزامي.
  • Heroku، على dyno واحد من فئة Basic. يمسح Heroku القرص يومياً، لذا يرفض Potato النشر عليه دون --backup أو --demo.
  • Fly وRailway، لكل منهما وحدة تخزين دائمة.
  • Hetzner وVultr وLinode، كأجهزة افتراضية تُعَدّ بالطريقة نفسها التي يُعَدّ بها DigitalOcean، مع شهادة Let's Encrypt لعنوان IP.
  • OpenStack، مع إعداد مسبق لـ Jetstream2. يمنح Jetstream2 كل مثيل اسم DNS، فتحصل المهمة على شهادة عادية. وتعمل كذلك سحب OpenStack الجامعية وEGI.
  • أزرار النشر. يكتب potato deploy button config.yaml --target heroku|render|aws|railway في مستودعك ملفات زر «Deploy to Heroku» أو «Deploy to Render» أو زر «Launch Stack» الخاص بـ AWS، حتى يتمكن آخرون من تشغيل المهمة في حساباتهم الخاصة.

وتثبّت الإضافتان الجديدتان deploy-aws وdeploy-openstack عميلي AWS وOpenStack.

النسخ الاحتياطي والاستعادة

تنسخ كتلة backup الجديدة مخرجات التوسيم ولقطات من قواعد بيانات SQLite إلى مجموعة بيانات على HuggingFace، أو إلى حاوية متوافقة مع S3، أو إلى كلتيهما، كل خمس دقائق. وعندما يبدأ خادم بمجلد مهمة فارغ وتحتوي النسخة الاحتياطية على بيانات، يستعيدها Potato قبل تحميل أي شيء، فيكمل المعلّقون من حيث توقفوا بعد إعادة التشغيل. مرّر --backup hf أو --backup s3 أو --backup hf,s3 إلى potato deploy up. وتُقرأ كتلة huggingface_backup الأقدم على أنها كتلة backup بوجهة واحدة مع تعطيل الاستعادة، فتتصرف عمليات النشر الحالية كما كانت.

النص كصورة

يحوّل text_as_image: true نص كل عنصر إلى صورة PNG على الخادم ويزيل الكلمات من الصفحة ومن سجل العنصر المضمَّن ومن نقاط نهاية JSON، فلا يجد المعلّق شيئاً يحدده أو ينسخه أو يلصقه. ترفع الميزة كلفة لصق عنصر في روبوت محادثة، ولا يزال بإمكان المعلّق إعادة كتابة النص أو تشغيل OCR على لقطة شاشة. ولا يستفيد قارئ الشاشة شيئاً من الصورة، لذا لا تناسب الميزة دراسة فيها معلّقون يستخدمونه. ويرفض Potato البدء حين يُجمع text_as_image مع مخطط نطاقات، أو مخطط يقرأ حقل نص العنصر، أو Pocket Mode، أو Rooms. ساهم بها @Eyecatch3r في PR #169.

إصلاحات تؤثر في البيانات المجمَّعة

  • كانت إعادة التشغيل على مضيف بلا قرص دائم تُضيّع العمل السابق. كان الخادم يبدأ فارغاً، وكانت الحالة الجديدة لمعلّق عائد تكتب فوق النسخة الاحتياطية. والاستعادة عند البدء تصلح ذلك.
  • كان DigitalOcean مع --volume-gb يحفظ التوسيمات على قرص الجذر لا على وحدة التخزين. صارت المخرجات وقواعد بيانات SQLite تُحفظ على /data.
  • لم يكن النسخ الاحتياطي إلى HuggingFace يفعل شيئاً في الصورة المنشورة، إذ لم تكن تتضمن huggingface_hub، وعلى Render وDigitalOcean كان --hf-token يضبط متغيراً لا يقرؤه شيء. صارت الصورة تثبّت الإضافة الجديدة hosting.
  • كانت عمليات النشر على Render تبدأ دون المشروع، فتخرج الحاوية برسالة "config file not found". صارت الحاوية تنزّل المشروع عند البدء وتتحقق من قيمة sha256 الخاصة به.

وتضم ملاحظات الإصدار القائمة الكاملة.


Potato 2.9.2 إلى 2.9.4

صدر في سبتمبر 2026

رقِّ إلى 2.9.4 أو أحدث إذا كان بإمكان أشخاص لا تثق بهم الوصول إلى خادمك. قبل 2.9.4، كان نموذج /forgot-password ينشئ رمز إعادة تعيين لأي اسم مستخدم يُرسل إليه ويعرض رابط إعادة التعيين على الصفحة، فكان بوسع أي شخص يصل إلى الخادم الاستيلاء على أي حساب بكلمة مرور، بما في ذلك حسابات المشرفين (GHSA-43v4-43pw-4rp2). صار النموذج لا ينشئ أي رمز. ولا تأتي روابط إعادة التعيين إلا من POST /admin/create_reset_token ومن الأمر potato reset-password. أبلغ عنها HDEF مع إصلاح.

  • الهواتف (2.9.4). على الشاشات اللمسية، لا يقل ارتفاع عناصر التحكم عن 44 px، ويشغل الترويسة صفان بدلاً من ثلاثة، ويصبح multirate قائمة من الصفوف ذات التسميات، ويعمل تظليل النطاقات بالضغط المطوّل.
  • المعلّقون الآليون (2.9.4). تعلن كتلة machine_annotators عن مقيّمين هم برامج، مثل أدوات الكشف أو نماذج LLM. فيبلّغ /admin/iaa حينها عن الاتفاق بين البشر، وبين الآلات، والاتفاق المجمَّع، مع أرقام رئيسية للبشر وحدهم، وتكتسب تصديرات csv وtsv وparquet عمود annotator_origin عندما يأتي أي سجل من آلة.
  • ملفات تعريف ارتباط الجلسة خلف بادئة URL (2.9.4). كانت دراستان تُقدَّمان تحت /app1 و/app2 على مضيف واحد تتشاركان ملف تعريف ارتباط جلسة واحداً، فكان تسجيل الدخول إلى إحداهما يخرجك من الأخرى. صار نطاق ملف تعريف الارتباط مقصوراً على البادئة. أصلحه @Eyecatch3r في PR #172.
  • تنقّل أسرع (2.9.2). تبقى السكربتات وأوراق الأنماط مخزَّنة مؤقتاً بين العناصر، ويحتاج زر Next إلى عدد أقل من الرحلات ذهاباً وإياباً. وعلى اتصال تستغرق فيه الرحلة ذهاباً وإياباً 80 ms، انخفض زمن Next في مهمة بأزرار اختيار من نحو 2.6 s إلى نحو 0.8 s.
  • تعديلات النص قبل الضغط على Next مباشرة (2.9.2). كان مسح مربع نص ثم الضغط على Next خلال ثانية يُبقي النص القديم. صار كل حفظ يطبّق أولاً التعديلات التي لم تُطبَّق بعد.

Potato 2.9.0

صدر في سبتمبر 2026

يستورد Potato المشاريع من brat وdoccano وProdigy وCoNLL وREFI-QDA، ويفرّغ الصوت ويفصل المتحدثين محلياً. وتسجّل التصديرات ما إذا كان شكل الصورة قد رسمه إنسان، أو اقترحه نموذج، أو استُورد، وفي أي غرفة أُدلي بالصوت. ومعظم الإصدار إصلاحات للأخطاء.

شغّل potato validate --strict على كل تهيئة قبل الترقية. قد تجعل عدة تغييرات دراسةً تعمل على 2.8.2 ترفض الإقلاع أو تتصرف على نحو مختلف. فأسماء المخططات المكررة في المرحلة الواحدة صارت تُرفض، وصار min_annotators_per_instance اسماً بديلاً للحد الأقصى لكل عنصر، وصار require_fully_annotated: true مُطبَّقاً، والمرحلة التي يفشل تحميلها توقف الإقلاع، وإزاحات النطاقات صارت تُحسب بنقاط الترميز لا بوحدات UTF-16. وتتغير قيم الاتفاق في المخططات ذات القيم المجموعية، والمخططات ذات القيم المرتَّبة، ومخططات المصفوفات، والمخططات الترتيبية ذات التسميات، وينبغي إعادة حسابها. وتضم ملاحظات الإصدار القائمة الكاملة.

bash
pip install --upgrade potato-annotation

الاستيراد والتصدير

  • مستوردات لـ brat وdoccano وProdigy وCoNLL-2003/CoNLL-U وملفات REFI-QDA .qdpx، ومصدِّر لـ .qdpx. انظر استيراد مشروع.
  • تتبّع المنشأ في التصديرات. يسجّل كل شكل في الصورة ما إذا كان إنسان قد رسمه أو نموذج قد اقترحه (source، ai_model، confidence، edited، carried_over، import_format). وتحمل الأصوات المُدلى بها في غرفة جماعية الغرفةَ، والدورَ، والتصويتَ الأولي، وما إذا تغيّر بعد الكشف، وعددَ المصوّتين.
  • تتضمن تصديرات النطاقات بصيغ csv وjsonl وparquet النصَّ الذي يغطيه النطاق.
  • python -m potato.export --format adjudication جديد، وصار لكل نوع مخطط الآن عنصر تحكم للفصل من نوع «اعتماد إجابة» (كان مقصوراً على radio وlikert).

الصوت والفيديو والنصوص التفريغية

  • تفريغ محلي وفصل للمتحدثين باستخدام faster-whisper وsherpa-onnx، دون PyTorch ودون رمز Hugging Face. ثبّت potato-annotation[transcribe]، ثم شغّل potato transcripts <dir> --transcribe --diarize --num-speakers N -o out.json. انظر صيغ النصوص التفريغية.
  • يعرض segment_schemes أي نوع توسيم داخل مقطع صوتي أو مرئي. وكان في السابق يُقبل ثم يُتجاهل.

الاتفاق والجودة والذكاء الاصطناعي

  • الاتفاق عبر الزمن، مربوطاً بمراجعات دليل الترميز، مع مُطلِق لإعادة المعايرة في /admin/iaa.
  • وضع لمراجعة مخرجات النماذج يشمل شريحة التنبؤات الفارغة، فيمكن حساب الاستدعاء (recall).
  • يرفض ai_budget.cap_usd بدء تشغيل لا تكفيه الميزانية، ويحدد ai_budget.prices أسعار كل نموذج في التهيئة.
  • يسجّل ai_support قيمتَي final_annotation وpre_annotation_seeds، فيمكن قياس معدلات القبول من بياناتك أنت.

النشر والواجهة

  • دعم الوكيل العكسي وبادئة المسار في كل صفحة (#168، Aldo Costa). انظر الوكيل العكسي.
  • يعمل card_sort دون فأرة، وتُعلَن عمليات النقل لقارئات الشاشة.
  • تعمل resizable وmax_height وmin_height مع كل أنواع العرض.

إصلاحات تؤثر في النتائج

  • لم يكن /admin/api/agreement يُنتج رقماً قط، وكان يقارن القيم المخزَّنة لا أسماء التسميات، فظهر اتفاق تام في كل مخطط فئوي.
  • كان المعلّق الثاني في دراسة بمعلّقَين لكل عنصر يُرسَل إلى صفحة الانتهاء، فتضيع كل إجابة يقدّمها بعد ذلك.
  • كانت اقتراحات الذكاء الاصطناعي تخص العنصر الخطأ في كل استراتيجيات الإسناد عدا fixed_order.
  • لم يكن التسجيل يُحفظ قط في تهيئة الذاكرة الافتراضية، فكان بوسع أي شخص بعد إعادة التشغيل أن يطالب باسم مستخدم موجود.

الشكر لـ Aldo Costa (@Eyecatch3r) على #168 و#171، ولـ @ruthenian8 على الإبلاغ عن #170 وتشخيصه.


Potato 2.8.2

صدر في أغسطس 2026

لم يتضمن 2.8.1 اثنين من الإصلاحات الأمنية الخمسة التي وصفتها ملاحظات إصداره، وهما إصلاح SSRF في نقاط نهاية الوسائط (GHSA-9394-85jj-2mhj) وتشديد وضع التصحيح (GHSA-r4ww-vc5h-35qf). ويحمل 2.8.2 كليهما. إن كنت قد رقّيت إلى 2.8.1 من أجل أيٍّ من المشكلتين، فرقِّ مرة أخرى. انظر ملاحظات إصدار 2.8.2.


Potato 2.8.1

صدر في أغسطس 2026

إصدار أمني. أصلح تنفيذ الشيفرة عن بُعد عبر وكيل البرمجة الحيّ (GHSA-cm4p-5rfv-x252)، وتهيئةَ مشرف كانت قابلة للقراءة دون مفتاح المشرف، وwebhook لاستيعاب المسارات كان يقبل كل طلب. رقِّ إذا كنت تشغّل Potato في أي مكان غير localhost، واذهب مباشرة إلى 2.8.2، فهو يحمل الإصلاحين اللذين غابا عن 2.8.1.


Potato 2.8.0

صدر في أغسطس 2026

كان Potato منصة لتوسيم النصوص مع وضع للصور. وهو يغطي الآن الصور، والفيديو، والمسوحات بدقة الغيغابكسل، والسحب النقطية ثلاثية الأبعاد، وخرائط العمق، وحلقات الروبوتات، ومخرجات الفيديو التوليدي، والإسناد البصري اللغوي. ولكلٍّ منها يُبلغ عن اتفاق مصحَّح للصدفة.

رقِّ إذا كنت قد ثبّتّ من PyPI. كانت حزم wheel حتى 2.7.1 تعلن بيانات الحزمة بنمط glob أحادي المستوى، فغاب 27 قالباً في المجلدات الفرعية عن كل wheel. وكانت مسارات إعداد الوضع الفردي، وصفحات المشرف، ومعايرة الحَكَم، وخريطة المتن كلها معطَّلة لكل من شغّل pip install، أما من يشغّل Potato من نسخة git فلم يرَ المشكلة قط. أُصلح ذلك في PR #164 على يد @0x6362.

bash
pip install --upgrade potato-annotation

الاتفاق على الهندسة والزمن

  • اتفاق مصحَّح للصدفة للتسميات المكانية، مفكَّكاً إلى الكشف (هل وجد المعلّقون الكائنات نفسها)، والتصنيف (هل سمّوها بالاسم نفسه)، والتموضع (هل وضعوها في المكان نفسه، ويُبلغ عنه بقيمة σ مقابل خط أساس تجريبي للصدفة مع اختبار KS).
  • STAPLE لإجماع الأقنعة. يقدّر حدّاً كامناً، وحساسيةً ونوعيةً لكل مقيّم. وعلى متن يفوق فيه المعلّقون المشوَّشون معلّقَين دقيقَين عدداً بنسبة ثلاثة إلى اثنين، يسجّل تصويت الأغلبية Dice بقيمة 0.846 مقابل الحقيقة، ويسجّل STAPLE قيمة 1.000.
  • IoU ثلاثي الأبعاد دقيق مع الدوران، فيصح اتفاق المكعبات لبيانات الطائرات المسيّرة والأجهزة المحمولة والبيئات الداخلية، لا للصناديق الأفقية وحدها.
  • يُبلغ عن الاتفاق الزمني بوصفه مسحاً عبر درجات تسامح المطابقة، لأن الاتفاق عند 0.25 ثانية ادعاء مختلف عن الاتفاق عند 2 ثانية.
  • القيم غير المعرَّفة تشرح نفسها. فـ α غير معرَّفة فعلاً على متن متفق عليه بالإجماع، وقيمة NaN المجردة تبدو كأنها حساب معطوب.

ويصلح هذا أيضاً خللاً في الفصل، إذ كان يقارن مفاتيح التوسيم، ومخططات الصور تخزّن كل شيء تحت مفتاح واحد اسمه _data. لذلك سجّل كل زوج من الصور اتفاقاً قدره 1.0، فبدا معلّقان لم يتفقا على شيء كأنهما مُجمِعان، ولم تُوجَّه أي صورة للمراجعة قط.

الرؤية

  • أوّليات هندسية، وهي الخطوط المتعددة، والقطوع الناقصة، والمكعبات ثنائية الأبعاد، ومجموعات النقاط المفتاحية بطوبولوجيا هيكلية وأعلام الرؤية في COCO، وأقنعة الفرشاة المفهرسة بالمثيل.
  • التجزئة بالنقر في المتصفح، عبر MobileSAM على ONNX Runtime Web، بنحو 132 ميلي ثانية للنقرة، دون GPU ودون أي اتصال شبكي لكل نقرة.
  • توجيه نصي بمفردات مفتوحة. اكتب عبارة، فيُحاط كل ما يطابقها بمربع. يستخدم Grounding DINO برخصة Apache-2.0، ويعمل في المتصفح أيضاً.
  • نشر الأقنعة في الفيديو بوحدات الذاكرة في SAM 2، بقيم مقيسة بين 0.974 و0.979 IoU لكل إطار، دون تراجع على امتداد التسلسل. وهذه الميزة تعمل على الخادم عمداً، وللمتصفح مسار منفصل أخف لنقل الأقنعة إلى الإطارات التالية.
  • التكبير العميق للصور بدقة الغيغابكسل، تُقدَّم بصيغتَي DZI وIIIF Image API 3.0، مع أقنعة فرشاة بالدقة الكاملة للمصدر.
  • استيعاب الوسائط لملفات TIFF متعددة الصفحات بعمق 16 بت، وHEIC، وصيغ RAW للكاميرات، وProRes/MKV/MOV عبر وسيط على الخادم مع تخزين مؤقت.
  • 15 صيغة استيراد و29 صيغة تصدير، 11 منها تعمل ذهاباً وإياباً. ويعمل Darwin في الاتجاهين.

صارت اختصارات لوحة المفاتيح في توسيم الصور تتبع أعراف V7 افتراضياً، فـ b للفرشاة، وr للمستطيل، وf للتعبئة، وk للنقطة المفتاحية، وv للتحديد. اضبط keybinding_profile: legacy على المخطط لاستعادة الاختصارات القديمة في دراسة جارية ميدانياً.

ثلاثي الأبعاد والعمق والروبوتات

  • spatial_annotation للسحب النقطية بصيغ PCD وPLY وLAS و.bin الخاصة بـ KITTI و.xyz، مع مكعبات ثلاثية الأبعاد، ونقاط، وخطوط متعددة، ومقاطع لكل نقطة، ومستويات تفصيل بشجرة ثُمانية (octree)، ولوحات شرائح بإسقاط عمودي. ويُخزَّن الدوران بصيغة رباعية (quaternion)، فيبقى ميل التركيب، الذي يُسقطه حقل الانعراج وحده بصمت، سليماً بعد رحلة ذهاب وإياب عبر KITTI.
  • خرائط العمق بصيغ PNG/TIFF بعمق 16 بت، وNPY، وPFM، وEXR، مع النوافذ، وخرائط الألوان، وقراءة بالأمتار تحت المؤشر، وإسقاط عكسي إلى العارض ثلاثي الأبعاد نفسه.
  • إسقاط يراعي المعايرة، فيظهر المكعب المرسوم في الأبعاد الثلاثة في كل صورة كاميرا، ويمكن التحقق منه في البعدين.
  • episode_annotation يضع N من تدفقات الفيديو المتزامنة وM من مسارات السلاسل الزمنية للروبوت على خط زمني واحد، مع تقسيم المراحل، ونتائج لكل مرحلة، ومنحنيات مكافأة كثيفة. ويستورد LeRobot v2 وRLDS/TFDS وHDF5. ويحافظ تقليل العينات في المسارات على القيم الدنيا والقصوى، فتنجو قفزة قوة مدتها إطار واحد في رحلتها إلى مسار عرضه 300 بكسل.

التقييم

  • rollout_evaluation يعرض من 2 إلى N من مقاطع الفيديو المولَّدة على ساعة واحدة، ويطلب من المعلّق تحديد الإطار الذي يتوقف فيه العالم عن أن يكون منطقياً، ثم وسم الخاصية الفيزيائية أو السببية التي انكسرت. ويمكن إخفاء هوية اللوحات وخلط ترتيبها على نحو ثابت لكل معلّق.
  • grounding_eval و**region_caption** يقيّمان الإسناد بـ IoU عند أربع عتبات، والإشارة بمعدل إصابة النقطة داخل المنطقة، لأن النقطة لا مساحة لها وIoU معها صفر دائماً. ويُحسب انعدام الإسناد على حدة.

كل ما عدا ذلك

  • المحادثات المتشعبة. يعرض عرض dialogue بنية الردود من حقل reply_to في كل دور. ويستورد potato convokit أي متن ConvoKit، ويصدّر --format convokit إليه، دون الاعتماد على حزمة convokit.
  • قياسات الرسم، أي الزمن لكل شكل، وديناميكيات الضربات، وعدد المراجعات، وزمن قبول اقتراحات الذكاء الاصطناعي. والتسميات المسبقة المقبولة بالجملة ترفع الاتفاق دون أن ترفع الدقة، لأن المعلّقين الذين يقبلون الاقتراح نفسه متفقون بحكم البناء. والتوقيت إشارة عن عملية التوسيم تفرّق بين المراجعة والموافقة الآلية حيث تعجز التسميات عن ذلك.
  • استيعاب قاعدة البيانات الحيّ، إذ تصير الصفوف المُنشأة بعد الإقلاع قابلة للتوسيم خلال poll_interval_seconds دون إعادة تشغيل (#166).
  • مواصفات قابلة للقراءة آلياً، وهي JSON Schema تغطي 159 مفتاح تهيئة و61 نوع توسيم و24 نوع عرض، إضافة إلى مستند OpenAPI يضم 419 مساراً. ويُولَّد كلاهما من الشيفرة، ويفشل CI عند انحراف أيٍّ منهما، فيستطيع المحرر أو وكيل البرمجة فحص التهيئة دون اختلاق خيارات.
  • لا طلبات صادرة. كل ملف أنماط وسكربت وخط وأيقونة يُقدَّم الآن من التثبيت نفسه في القوالب الأربعة عشر كلها. وكان styles.css يبدأ بـ @import لخطوط Google، فيرسل عنوان IP لكل معلّق إلى طرف ثالث عند تحميل الصفحة، وكانت صفحة الدخول تحمل أيقونة مفضلة من طرف ثالث. وقد أُزيل كلاهما.
  • تبويب Instances في لوحة المشرف انتقل من التعقيد التربيعي إلى الخطي، فانخفض زمن 2,000 عنصر من 15.1 ثانية إلى 23 ميلي ثانية.

Potato 2.7.2

صدر في أغسطس 2026

تسجيل ضغطات المفاتيح لحقول النص الحر. يسجّل Potato التوقيت الذي وراء الإجابة ولا يسجّل حروفها أبداً، وقد اتضح أن ذلك يكفي للتفريق بين الكتابة واللصق.

  • تسجيل ضغطات المفاتيح، وهو التقاط للتوقفات والدفقات والمراجعات وعمليات اللصق في كل حقل نص حر دون الاطّلاع على المحتوى، مع نحو أربعين سمة ملخِّصة تُحسب لكل إجابة. معطّل افتراضياً.
  • كشف عملية الكتابة، وهو ست قواعد مسمّاة بعتبات صريحة، تُظهر قيم السمات التي وراء كل إشارة. ويمكن إعادة ضبط العتبات على مشروعك أنت، وثمة مسار خاضع للإشراف إن كانت لديك تسميات.
  • إرشادات أخلاقية تشمل صياغة موافقة نموذجية، والاحتفاظ والحذف، ومشكلة المعدل القاعدي، ولماذا تكون الإشارة دعوة للنظر لا نتيجة مقرَّرة.
  • تصديرات اختيارية. يكتب export_include_typing_dynamics ملفاً ملخِّصاً مرافقاً، ويكتب --format keystrokes التدفقات الخام إلى Parquet. وكلاهما معطّل افتراضياً، فلا تصل البيانات السلوكية إلى إصدار مجموعة بيانات عن غير قصد.

الإفصاح للمعلّقين مفعّل افتراضياً، وتعطيله يسجّل تحذيراً عند الإقلاع.


Potato 2.7.1

صدر في يوليو 2026

استيعاب النصوص التفريغية، انطلاقاً من أن النص التفريغي موجود سلفاً. فقد شغّل أحدهم Whisper، أو نزّل ملف ترجمات، أو تسلّم متناً جاهزاً، والخطوة التالية ينبغي ألا تكون كتابة سكربت تحويل.

  • 21 صيغة للنصوص التفريغية والترجمات، بعد أن كانت 6. Whisper وWhisperX وwhisper.cpp وAWS Transcribe وDeepgram وAssemblyAI وRev.ai وSPoRC وSubRip وWebVTT وSubStation Alpha وTTML/DFXP وYouTube بصيغتَي json3 وsrv1/srv2/srv3 وNIST CTM وPraat TextGrid وELAN EAF. والكشف يجري بمحتوى الملف لا بامتداده.
  • ملفات نصوص تفريغية مرافقة. يمكن لملف البيانات أن يشير إلى media/int_001.srt على القرص بدل تضمين النص التفريغي داخله. وتُحَلّ المسارات تحت task_dir عبر فحص أمان المسارات المعتاد، فتبقى نصوصك التفريغية ملفات يمكنك مقارنتها وإعادة تصديرها.
  • potato transcripts، وهو محوّل يأخذ مجلداً من مخرجات ASR ويُخرج ملف بيانات جاهزاً للتوسيم، مزاوجاً كل نص تفريغي بملف الوسائط عبر الاسم الأساسي. يُبلغ --dry-run بما اكتشفه قبل كتابة أي شيء، ويطبع --emit-config تهيئة مطابقة.
  • مفردات صيغ واحدة عبر أربعة مخططات. صارت speech_transcript وvoice_interaction وtiered_annotation تقبل كل ما يقبله عرض audio_dialogue. وكان ذلك مقصوراً على العرض من قبل.
  • توسيم نصوص Whisper التفريغية و**توسيم ترجمات YouTube** يمشيان بنقطتَي البداية كلتيهما من أولهما إلى آخرهما.

في 2.7.1 تجري خطوتا التعرّف الآلي على الكلام وفصل المتحدثين قبل Potato، ويقرأ Potato مخرجاتهما. وقد أضاف Potato 2.9 التفريغ وفصل المتحدثين محلياً عبر potato transcripts --transcribe --diarize، ويفرّغ وضع Think-Aloud كلام المعلّقين أنفسهم محلياً منذ 2.7.0.


Potato 2.7.0

صدر في يوليو 2026

يقوم Potato 2.7 على فكرة واحدة، هي أن أداة التوسيم ينبغي أن تقيس كيف تُتَّخذ الأحكام، لا أن تسجّل ما كانت عليه فقط. وينطبق ذلك على نوعَي الحَكَم معاً، أي البشر الذين يوسّمون، ونماذج الذكاء الاصطناعي التي يجري تقييمها.

قياس كيف يوسّم البشر

سبع ميزات اختيارية، لا تحتاج أيٌّ منها إلى نموذج لغوي كبير.

  • محرك القياس النفسي، وهو طبقة حيّة من نظرية الاستجابة للمفردة تمنح كل تسمية احتمالاً بعدياً وفترة حساسية (p = 0.94 [0.88–0.97]) بدل تصويت أغلبية مجرّد. ويقدّر قدرة المعلّق وصعوبة العنصر من أنماط الاتفاق وحدها، ويوجّه العناصر إلى المعلّق الذي يحمل حكمه أكبر قدر من المعلومات، ويشير إلى الأخطاء المرجّحة في دليل الترميز.
  • الغرف الجماعية، أي اجتماع المعايرة الذي يعقده فريقك أصلاً عبر مشاركة الشاشة، مدمجاً في الأداة ومُجهَّزاً بالقياس. تصويت أعمى، ثم كشف من المضيف، فنقاش، فإعادة تصويت، مع مؤشر حيّ لألفا كريبندورف يبيّن ما أفادت به الجلسة.
  • مختبر الحدود، وهو أسئلة افتراضية مضادة بعد كل تسمية («هل يبقى ذلك صحيحاً؟») تحوّل التوسيم العادي إلى مجموعات تباين، وتكشف المعلّقين غير المتسقين دون زرع عناصر ذهبية.
  • Truth Serum، وهو تسجيل بتنبؤ الأقران على أساس «الشائع على نحو مفاجئ»، يتفوق على تصويت الأغلبية حيث يكون التوسيم صعباً، ودون أي تسميات ذهبية.
  • وضع Think-Aloud. يتحدث المعلّقون أثناء عملهم، ويعمل تحويل الكلام إلى نص محلياً بالكامل، ويصير النص الحرفي هو التبرير.
  • وضع الورقة البحثية. أمر واحد يحوّل المشروع إلى تقرير LaTeX قابل للترجمة عن مجموعة البيانات، بما فيه إحصاءات الاتفاق والاستشهادات.
  • وضع الجيب، وهو توسيم كامل الدعم على الهاتف، بكومة بطاقات قابلة للسحب، ومزامنة دون اتصال، وتثبيت كتطبيق ويب تقدمي.

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

اتسعت حزمة تقييم الوكلاء لتشمل بنية الفريق والوكلاء متعددي الوسائط، فأضافت رسم تفاعل الوكلاء القابل للنقر، وإسناد الأعطال عبر الوكلاء، ومراجعة التسليم بينهم، وبطاقات نتائج لكل وكيل وللفريق، وخطوطاً زمنية لتنازع الأدوات، ووسم السلوك الناشئ، إضافة إلى مسارات استخدام الحاسوب والواجهات الرسومية، والخطوط الزمنية الصوتية ثنائية الاتجاه، والإسناد الزمني في الفيديو، وبنية جداول المستندات.

في كل مكان آخر

توسيم الأحداث عبر المستندات، والتوسيم على مستوى الدور الحواري، ودليل ترميز حيّ بمحرر بملء الصفحة، وربط PDF عبر الصفحات مع تعرّف ضوئي اختياري على الحروف، وأدوار RBAC بمخططات لكل مجموعة، ولوحات تحكم للمشرف وللمعلّق بعشر لغات، وتثبيت أخفّ بكثير. فقد صارت حزم تطوير الذكاء الاصطناعي تُحمَّل عند الحاجة، فانخفض زمن الإقلاع من نحو 2.0 ثانية إلى 0.7 ثانية.


Potato 2.6.0

صدر في يونيو 2026

ينتقل Potato 2.6 إلى تحليل البيانات النوعية ويعمّق عُدّة تقييم الوكلاء. فيضيف وضع QDA، وسير عمل لمعايرة نموذج LLM بوصفه حَكَماً ومواءمته مع قائمة فرز قائمة على الإشارات، ومخططات لتحرير المسارات تنتج بيانات تدريب SFT وDPO. كما أُعيد ترخيص Potato إلى GPL-3.0-or-later (بدلاً من PolyForm Shield).

وضع QDA

يحوّل qda_mode الاختياري أداة Potato إلى مساحة عمل تعاونية للترميز النوعي. وتفعيله يجمع دليل ترميز حيّاً، وترميزاً من داخل النص، ومذكرات للمحلل، وحالات، وبحثاً في النص الكامل، بإعدادات افتراضية مضبوطة على محلل واحد يرمّز متناً كاملاً.

yaml
qda_mode:
  enabled: true            # codebook + memos + cases + search
codebook_invivo_key: i     # mint a code from a text selection
search:
  enabled: true
  annotator_claim: true

تعرّف على المزيد حول وضع QDA ←

معايرة LLM بوصفه حَكَماً ومواءمته

وسِّم البيانات آلياً بحَكَم LLM واحد أو أكثر، ثم شغّل تمريرة معايرة بشرية عمياء لقياس الدقة والاتفاق وخطأ المعايرة. وثمة سير عمل منفصل لمواءمة حَكَم واحد يتتبع كابا كوهين مقابل تسمياتك الذهبية البشرية أثناء تنقيح المعيار، مع حكم مضمَّن اختياري أثناء التوسيم.

تعرّف على المزيد حول معايرة الحَكَم ← · مواءمة الحَكَم ←

قائمة فرز قائمة على الإشارات

رتّب أولوية قائمة التوسيم بإشارة جودة لكل عنصر، كخطأ من وكيل، أو تقييم سلبي من بيئة الإنتاج، أو درجة منخفضة، أو أي حقل مخصص، ليرى المراجعون أكثر العناصر إثارة للشك أولاً بدل ترتيب الوصول.

yaml
triage:
  enabled: true
  signal_field: quality_score
  invert_signal: true
assignment_strategy: priority

تعرّف على المزيد حول قائمة الفرز ←

تحرير المسارات من أجل SFT/DPO

يتيح المخططان الجديدان trajectory_edit وtrajectory_correction للمعلّقين إعادة كتابة خطوات مسار الوكيل. ويحوّل المصدِّر كل زوج أصلي/مصحَّح إلى أهداف ضبط دقيق خاضع للإشراف (trajectory_sft.jsonl) وأزواج تفضيل DPO (trajectory_dpo.jsonl).

تعرّف على المزيد حول تحرير المسارات ←

عرض eval_trace

عرض لمسار الوكيل بثلاثة أجزاء (الاستدلال، واستدعاءات الدوال، والإجابة النهائية)، مصمَّم للتقييم المستمر، حيث تصل المسارات عبر webhook أو عبر مستطلِع Langfuse أو من مجلد مراقَب، ويجري الحكم عليها فور وصولها.

تعرّف على المزيد حول eval_trace ←

سير العمل والإسناد

  • تغطية غير متجانسة، أي حدود قصوى لعدد المعلّقين لكل عنصر، وتقارير اتفاق بين المعلّقين، وتوجيه للفصل في الخلاف، للمهام التي تحتاج فيها العناصر إلى أعداد مختلفة من المعلّقين.
  • استرجاع الإسنادات المهجورة، أي استعادة الإسنادات التي تركها عاملو Prolific أو من حجبتهم مراقبة الجودة، مع مدة احتفاظ قابلة للضبط واسترجاع لا يتأثر بالتكرار.
  • استراتيجية إسناد الدفعات المخصصة لإسناد دفعات محددة مسبقاً من العناصر إلى معلّقين بعينهم.
  • بادئات مسار للوكيل العكسي لتقديم Potato تحت مسار فرعي خلف وكيل عكسي.

الترخيص

صار Potato يصدر تحت GPL-3.0-or-later، بعد إعادة ترخيصه من PolyForm Shield. يمكنك استخدامه وتعديله وإعادة توزيعه، بما في ذلك تجارياً، ما دامت الأعمال المشتقة تبقى تحت GPL. انظر صفحة «عن المشروع» للتفاصيل.

الأداء والاستقرار

  • إقلاع أسرع بنحو 3×. لم تعد حزمة تعلّم الآلة تُحمَّل مسبقاً عند البدء، فانخفض زمن الاستيراد من نحو 6.5 ثانية إلى 2 ثانية، وإقلاع مشروع من 50 ألف عنصر من نحو 10 ثوانٍ إلى 5.7 ثانية، والذاكرة المقيمة من نحو 750 ميغابايت إلى 365 ميغابايت.
  • إعادة تسمية مخطط. صار annotation_type: highlight هو span، مع ترحيل جاهز. حدّث التهيئات القديمة بإعادة تسمية النوع، أما تهيئات span القائمة فلا يمسّها شيء.
  • موجة واسعة من تشديد ضمان الجودة طالت تسجيل المسارات، ومراحل التدريب، وProlific، والحفظ، والتصدير ومعالجة الاستبيانات، وwebhooks، والوضع الفردي، والتعلم النشط.

Potato 2.5.0

صدر في 2026

موجة ترميز نوعي تجعل Potato صالحاً لسير عمل البحث النوعي إلى جانب واجهته للتوسيم في معالجة اللغة الطبيعية وتعلّم الآلة.

  • اتفاق المعلّقين. كابا كوهين (ثنائية) وكابا فلايس (لعدد N من المقيّمين) إضافة إلى ألفا كريبندورف، متاحة عبر واجهة الاتفاق في لوحة المشرف. انظر دليل اتفاق المعلّقين.
  • مصدِّرات جديدة، هي codebook (ملف CSV لكل مخطط يضم تسلسل الرموز ولونها ووصفها وعدد استخداماتها) وquotation_report (ملف CSV لكل نطاق يضم النص والإزاحات والمستند المصدر والمرمِّز).
  • تحليلات الرموز، أي نقاط نهاية للمشرف لحساب التواقع الثنائي بين الرموز، وجدول تقاطعي للرموز حسب سمة من بيانات العناصر الوصفية القائمة.

Potato 2.4.5

صدر في 2026

إصدار للاستقرار والأدوات.

  • تنقيح محقَّق، وهو إطار قابل للتوسيع لتحسين إرشادات التوسيم في الوضع الفردي تدريجياً، مع ضمانات ضد تناقض الإرشادات وتسرّب البيانات الوصفية.
  • مدقق التهيئة، وهو واجهة سطر أوامر جديدة python -m potato.validate_cli تفحص مفاتيح التهيئة مقابل مخطط التهيئة المعروف.
  • الأمان. إصلاح لتجاوز بادئة شقيقة في التحقق من المسارات يسمح بالتنقل خارجها (GHSA-q9m2-fhv9-3jcf).
  • إصلاحات في مزامنة حالة الحفظ والتنقل، وتكامل Prolific، والتنقل متعدد المراحل، وتغذية مراقبة الجودة الراجعة.

Potato 2.3.0

صدر في 9 مارس 2026

Potato 2.3 هو أكبر إصدار في تاريخ Potato، ويقدّم التوسيم الوكيلي، والوضع الفردي، والقياس الأفضل-الأسوأ، ومصادقة SSO/OAuth، وتصدير Parquet، و15 مشروعاً تجريبياً جديداً، وتشديداً أمنياً.

التوسيم الوكيلي

نظام متكامل لتقييم وكلاء الذكاء الاصطناعي عبر التوسيم البشري. يضم 12 محوّلاً لصيغ المسارات، و3 أنواع عرض متخصصة، و9 مخططات توسيم جاهزة.

12 محوّلاً لصيغ المسارات. استورد مسارات الوكلاء من OpenAI وAnthropic وSWE-bench وOpenTelemetry وMCP وCrewAI/AutoGen/LangGraph وLangChain وLangFuse وReAct وWebArena/VisualWebArena وATIF وتسجيلات المتصفح الخام. والكشف التلقائي متاح.

يجري التحويل خطوةً عبر سطر الأوامر قبل بدء الخادم:

bash
python -m potato.trace_converter \
  --input traces.json \
  --input-format react \
  --output data/traces.jsonl

ويصبح الملف المحوَّل بعد ذلك ملف بيانات عادياً، يعرضه أحد أنواع عرض الوكلاء:

yaml
data_files:
  - "data/traces.jsonl"
 
instance_display:
  fields:
    - key: steps
      type: agent_trace
      label: "Agent trajectory"

3 أنواع عرض:

  • عرض مسار الوكيل: بطاقات خطوات ملوّنة بمشاهدات قابلة للطي، وتنسيق JSON مقروء، وشريط جانبي زمني للوكلاء المستخدمين للأدوات
  • عرض مسار وكيل الويب: لقطات شاشة كاملة مع طبقات SVG تبيّن أهداف النقر ومدخلات النص وإجراءات التمرير، وتنقّل بشريط الصور للوكلاء المتصفحين
  • عرض المحادثة التفاعلية: وضع محادثة حيّة (يتفاعل المعلّق مع الوكيل عبر وسيط) ووضع مراجعة المسار للوكلاء الحواريين

تقييمات لكل دور. قيّم الخطوات المفردة إلى جانب المسار ككل لتقييم أدقّ.

9 مخططات جاهزة، هي agent_task_success وagent_step_correctness وagent_error_taxonomy وagent_safety وagent_efficiency وagent_instruction_following وagent_explanation_quality وagent_web_action_correctness وagent_conversation_quality.

نظام وسيط الوكلاء. وسطاء OpenAI وHTTP وecho لتقييم الوكلاء الحيّ.

تعرّف على المزيد حول التوسيم الوكيلي ←


الوضع الفردي

سير عمل يتعاون فيه معلّق بشري واحد مع نموذج LLM لتوسيم مجموعة بيانات كاملة، محققاً اتفاقاً يزيد على 95% مع خطوط الأنابيب متعددة المعلّقين، ولا يحتاج إلا إلى 10-15% من مجموع التسميات البشرية.

يعمل الوضع الفردي بوصفه آلة حالات للمراحل لا تسلسلاً ثابتاً. فهو يمر بالإعداد، ومراجعة المُوجِّه، وحلقة اختيارية للحالات الحدية، والتوسيم المتوازي، وحسم الخلافات، والتوسيم النشط مع مراجعة دورية ومراجعة للقواعد، والتوسيم الذاتي، والتحقق النهائي. ويمكن لخمس من هذه المراحل أن تعود إلى مراجعة المُوجِّه حين يتبيّن أن المُوجِّه هو المشكلة، ويرجع التحقق النهائي إلى التوسيم النشط حين لا تتجاوز العينة العتبة.

yaml
solo_mode:
  enabled: true
  labeling_models:
    - endpoint_type: openai
      model: "gpt-4o"
      api_key: ${OPENAI_API_KEY}
  thresholds:
    end_human_annotation_agreement: 0.92
    minimum_validation_sample: 50
  state_dir: "solo_state"

ترتيب أولوية العناصر بإشارات متعددة. يوازن instance_selection بين سبع إشارات (الثقة المنخفضة، والتنوع، وتنبؤ LLM، والخلاف، والعشوائية، ورسم خرائط البيانات، وقاعدة الحالات الحدية) لاختيار ما يراه الإنسان تالياً.

تعرّف على المزيد حول الوضع الفردي ←


القياس الأفضل-الأسوأ

توسيم مقارن كفء يختار فيه المعلّقون العنصر الأفضل والأسوأ من مجموعات مرتَّبة. توليد تلقائي للمجموعات بتصاميم الكتل غير المكتملة المتوازنة، وثلاث طرق تسجيل (العدّ، وبرادلي-تيري، وبلاكيت-لوس).

yaml
annotation_schemes:
  - annotation_type: bws
    name: fluency
    description: "Which sentence reads most fluently?"
    tuple_size: 4
    best_description: "Most Fluent"
    worst_description: "Least Fluent"

تعرّف على المزيد حول القياس الأفضل-الأسوأ ←


مصادقة SSO وOAuth

مصادقة جاهزة للإنتاج مع Google OAuth (تقييد النطاق) وGitHub OAuth (تقييد المؤسسة) وOIDC عام (Okta وAzure AD وAuth0 وKeycloak). تدعم التسجيل التلقائي والوضع المختلط وإدارة الجلسات.

yaml
authentication:
  method: "oauth"
  providers:
    google:
      client_id: ${GOOGLE_CLIENT_ID}
      client_secret: ${GOOGLE_CLIENT_SECRET}
      allowed_domain: "umich.edu"
  user_identity_field: "email"
  auto_register: true
 
secret_key: ${POTATO_SECRET_KEY}

تعرّف على المزيد حول SSO وOAuth ←


تصدير Parquet

صدّر التوسيمات إلى صيغة Apache Parquet، فينتج ثلاثة ملفات منظمة، هي annotations.parquet وspans.parquet وitems.parquet. يدعم ضغط snappy وgzip وzstd وlz4 وbrotli، والتصدير التزايدي، والتقسيم حسب التاريخ أو المعلّق. ومتوافق مع pandas وDuckDB وPyArrow وPolars وHugging Face Datasets.

yaml
export_annotation_format:
  - parquet

تعرّف على المزيد حول تصدير Parquet ←


15 مشروعاً تجريبياً جديداً

عروض جديدة في project-hub/ تغطي التوسيم الوكيلي (5 عروض)، والوضع الفردي (3 عروض)، والقياس الأفضل-الأسوأ (3 عروض)، والمصادقة (عرضان)، وسير عمل التصدير (عرضان). ابدأ أي عرض بـ potato start config.yaml.


تشديد الأمان

  • رموز جلسات آمنة تشفيرياً بمدة صلاحية قابلة للضبط
  • حماية CSRF مفعّلة افتراضياً
  • تحديد معدل الطلبات على نقاط نهاية المصادقة
  • تنقية المدخلات للمحتوى الوارد من المستخدمين
  • تدقيق للاعتماديات مع تحديث كل الحزم
  • ترويسات سياسة أمان المحتوى

تحسينات أخرى

  • محوّلات مسارات مخصصة لأطر الوكلاء غير المدعومة
  • وضع فردي هجين مع أخذ عينات للتحقق بمعلّقين متعددين
  • تبويب في لوحة المشرف لـ BWS مع رسوم تقارب الدرجات
  • تصدير Parquet تزايدي مع تقسيم حسب التاريخ

مقارنة بين v2.2 وv2.3

الميزةv2.2v2.3
التوسيم الوكيليغير متاح12 محوّلاً، و3 عروض، و9 مخططات
الوضع الفرديغير متاحسير عمل بين الإنسان وLLM تقوده آلة حالات للمراحل
القياس الأفضل-الأسوأغير متاحBWS بثلاث طرق تسجيل
المصادقةاسم المستخدم فقط+ Google OAuth وGitHub OAuth وOIDC
تصدير Parquetغير متاحParquet بثلاثة ملفات وستة خيارات ضغط
المشاريع التجريبية+125+140 (15 جديداً)
الأمانأساسيCSRF، وتحديد المعدل، وCSP، وجلسات آمنة

Potato 2.2.0

صدر في 20 فبراير 2026

Potato 2.2 إصدار رئيسي يتضمن 9 مخططات توسيم جديدة، ونظام تصدير قابلاً للتوسيع، وتقدير الكفاءة بـ MACE، و55 أداة استبيان محقَّقة، ومصادر بيانات عن بُعد.

مخططات التوسيم الجديدة (9)

توسيم الأحداث. هياكل أحداث متعددة الأطراف مع نطاقات محفِّزة وأدوار حجج مصنَّفة. وسِّم أحداثاً مثل ATTACK وHIRE وTRAVEL مع حجج كيانات مقيَّدة وعرض أقواس بنمط المحور والأذرع.

yaml
annotation_schemes:
  - annotation_type: event_annotation
    name: events
    description: "Mark the event triggers and their arguments"
    span_schema: entities
    event_types:
      - type: "ATTACK"
        trigger_labels: ["EVENT_TRIGGER"]
        arguments:
          - role: "attacker"
            entity_types: ["PERSON", "ORGANIZATION"]
            required: true

تعرّف على المزيد حول توسيم الأحداث ←

ربط الكيانات. اربط توسيمات النطاقات بقواعد معرفة خارجية (Wikidata وUMLS وواجهات REST مخصصة). أضف كتلة entity_linking: إلى أي مخطط نطاقات لتفعيل البحث في قاعدة المعرفة والربط بها.

تعرّف على المزيد حول ربط الكيانات ←

الفرز. واجهة قبول/رفض/تخطٍّ بأسلوب Prodigy للفحص السريع للبيانات. تسميات قابلة للتخصيص، واختصارات لوحة المفاتيح، وتقدّم تلقائي للتوسيم عالي الإنتاجية.

تعرّف على المزيد حول الفرز ←

المقارنة الزوجية. قارن عنصرين بالوضع الثنائي (انقر على البلاطة المفضلة) أو بوضع المقياس (شريط تمرير). يدعم items_key وallow_tie وكتلة scale: بنطاق قابل للضبط.

تعرّف على المزيد حول المقارنة الزوجية ←

أشجار المحادثات. وسِّم هياكل المحادثات الهرمية مع تقييمات لكل عقدة، واختيار المسار، ومقارنة الفروع.

تعرّف على المزيد حول أشجار المحادثات ←

سلاسل الإحالة المشتركة. اجمع الإشارات النصية التي تحيل إلى الكيان نفسه في سلاسل مع مؤشرات مرئية. يدعم أنواع الكيانات، والتحكم في السلاسل الأحادية، وأوضاع تمييز متعددة.

تعرّف على المزيد حول سلاسل الإحالة المشتركة ←

أقنعة التجزئة. أدوات fill وeraser وbrush جديدة لتجزئة الصور على مستوى البكسل.

مربعات الإحاطة لمستندات PDF. ارسم مربعات على صفحات PDF لمهام توسيم المستندات.

النطاقات غير المتصلة. يتيح allow_discontinuous: true تحديد أجزاء نصية غير متجاورة بوصفها نطاقاً واحداً.


التوسيم الذكي

تقدير الكفاءة بـ MACE. خوارزمية EM ببايز المتغيّر تقدّر معاً التسميات الحقيقية ودرجات كفاءة المعلّقين (0.0-1.0). تعمل مع مخططات radio وlikert وselect وmultiselect.

yaml
mace:
  enabled: true
  trigger_every_n: 10
  min_annotations_per_item: 3

تعرّف على المزيد حول MACE ←

تمييز الخيارات. تمييز الخيارات المرجَّح صوابها بواسطة LLM في مهام التوسيم المنفصلة. يميّز أفضل k خيارات بمؤشر نجمة، ويعتّم الخيارات الأقل احتمالاً.

yaml
ai_support:
  option_highlighting:
    enabled: true
    top_k: 3
    dim_opacity: 0.4

تعرّف على المزيد حول تمييز الخيارات ←

الترتيب التنوعي. تجميع قائم على التضمينات وأخذ عينات بالتناوب، ليرى المعلّقون محتوى متنوعاً بدل عناصر متشابهة متتالية.

yaml
assignment_strategy: diversity_clustering
diversity_ordering:
  enabled: true
  prefill_count: 100

تعرّف على المزيد حول الترتيب التنوعي ←


نظام التصدير

أداة تصدير جديدة قابلة للتوسيع عبر سطر الأوامر (python -m potato.export) تحوّل التوسيمات إلى 6 صيغ معيارية في المجال، هي COCO وYOLO وPascal VOC وCoNLL-2003 وCoNLL-U وأقنعة التجزئة.

bash
python -m potato.export --config config.yaml --format coco --output ./export/

تعرّف على المزيد حول صيغ التصدير ←


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

حمّل بيانات التوسيم من عناوين URL وS3 وGoogle Drive وDropbox وHugging Face وGoogle Sheets وقواعد بيانات SQL عبر كتلة التهيئة الجديدة data_sources:. وتتضمن التحميل الجزئي، والتخزين المؤقت، وإدارة بيانات الاعتماد.

تعرّف على المزيد حول مصادر البيانات عن بُعد ←


أدوات الاستبيان

55 استبياناً محقَّقاً عبر 8 فئات (الشخصية، والصحة النفسية، والوجدان، ومفهوم الذات، والمواقف الاجتماعية، وأسلوب الاستجابة، والنماذج المختصرة، والبيانات الديموغرافية). استخدمها في مرحلتَي ما قبل الدراسة وما بعدها مع instrument: "tipi".

تعرّف على المزيد حول أدوات الاستبيان ←


تحسينات أخرى

  • تتبّع الكائنات في الفيديو مع استيفاء الإطارات المفتاحية
  • دعم ملف تهيئة خارجي للذكاء الاصطناعي
  • تحسينات في تخطيط شبكة النماذج
  • معالجات صيغ لملفات PDF وWord والشيفرة وجداول البيانات

Potato 2.1.0

صدر في 5 فبراير 2026

يقدّم Potato 2.1 نظام عرض العناصر، ودعم الذكاء الاصطناعي البصري، وربط النطاقات، وتوسيم النطاقات متعدد الحقول، وتخصيص التخطيط.

نظام عرض العناصر

كتلة تهيئة جديدة instance_display تفصل عرض المحتوى عن التوسيم. اعرض أي مزيج من الصور والفيديو والصوت والنصوص والحوارات إلى جانب أي مخططات توسيم.

yaml
instance_display:
  fields:
    - key: image_url
      type: image
      display_options:
        max_width: 600
        zoomable: true
    - key: description
      type: text
 
annotation_schemes:
  - annotation_type: radio
    name: category
    description: "What category best describes this image?"
    labels: [nature, urban, people]

يدعم 24 نوع عرض، منها text وhtml وimage وvideo وaudio وdepth_map وdialogue وconversation_tree وpairwise وcode وspreadsheet وdocument وpdf وgallery، وخمسة عروض لمسارات الوكلاء.

تعرّف على المزيد حول عرض العناصر ←


توسيم النطاقات متعدد الحقول

تدعم مخططات توسيم النطاقات الآن خيار target_field للتوسيم عبر حقول نصية متعددة في العنصر نفسه.

yaml
annotation_schemes:
  - annotation_type: span
    name: source_entities
    description: "Label the entities in the source document"
    labels: [PERSON, ORGANIZATION]
 
  - annotation_type: span
    name: summary_entities
    description: "Label the entities in the summary"
    labels: [PERSON, ORGANIZATION]

تعرّف على المزيد حول توسيم النطاقات ←


ربط النطاقات

نوع توسيم جديد span_link لإنشاء علاقات مصنَّفة بين النطاقات الموسَّمة. يدعم الروابط الموجَّهة وغير الموجَّهة، والعلاقات متعددة الأطراف، وعرض الأقواس المرئي، وقيود التسميات.

yaml
annotation_schemes:
  - annotation_type: span
    name: entities
    description: "Highlight the named entities in the text"
    labels:
      - name: "PERSON"
        color: "#3b82f6"
      - name: "ORGANIZATION"
        color: "#22c55e"
 
  - annotation_type: span_link
    name: relations
    description: "Link the entities that stand in a relation"
    span_schema: entities
    link_types:
      - name: "WORKS_FOR"
        directed: true
        allowed_source_labels: ["PERSON"]
        allowed_target_labels: ["ORGANIZATION"]
        color: "#dc2626"

تعرّف على المزيد حول ربط النطاقات ←


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

أربع نقاط نهاية جديدة للرؤية تساعد في توسيم الصور والفيديو بالذكاء الاصطناعي:

  • YOLO: كشف محلي سريع للكائنات
  • Ollama Vision: نماذج رؤية ولغة محلية (LLaVA وQwen-VL)
  • OpenAI Vision: رؤية GPT-4o السحابية
  • Anthropic Vision: Claude مع الرؤية

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

تعرّف على المزيد حول دعم الذكاء الاصطناعي البصري ←


تخصيص التخطيط

أنشئ تخطيطات مرئية مخصصة متقنة باستخدام قوالب HTML وCSS. ينشئ Potato ملف تخطيط قابلاً للتعديل، أو يمكنك تقديم قالب مخصص بالكامل بتخطيطات شبكية، وخيارات مرمَّزة بالألوان، وتنسيق للأقسام.

yaml
task_layout: layouts/custom_task_layout.html

ثلاثة تخطيطات مثالية مضمَّنة، هي الإشراف على المحتوى، وسؤال وجواب الحوار، والمراجعة الطبية.

تعرّف على المزيد حول تخصيص التخطيط ←


مبررات التسميات

قدرة رابعة للذكاء الاصطناعي تولّد تفسيرات متوازنة لسبب انطباق كل تسمية، فتساعد المعلّقين على فهم وجهات نظر التصنيف المختلفة.

yaml
ai_support:
  features:
    rationales:
      enabled: true

تعرّف على المزيد حول دعم الذكاء الاصطناعي ←


تحسينات أخرى

  • أكثر من 50 اختباراً جديداً لتحسين الموثوقية
  • تحسينات في التصميم المتجاوب
  • تنظيم محسَّن لـ project-hub مع أمثلة تخطيط
  • إصلاح أخطاء عبر أنواع التوسيم

مقارنة بين v2.0 وv2.1

الميزةv2.0v2.1
عرض العناصرعبر حيل في التوسيمكتلة instance_display مخصصة
أهداف النطاقاتحقل نصي واحدحقول متعددة عبر target_field
ربط النطاقاتغير متاحنوع span_link كامل
الذكاء الاصطناعي البصريغير متاحYOLO، وOllama Vision، وOpenAI Vision، وAnthropic Vision
تخصيص التخطيطتوليد تلقائي أساسيتوليد تلقائي + قوالب مخصصة
قدرات الذكاء الاصطناعي3 (تلميحات، كلمات مفتاحية، اقتراحات)4 (+ مبررات)

Potato 2.0

Potato 2.0 إصدار رئيسي يضيف دعم الذكاء الاصطناعي، والتعلم النشط، ومراحل التدريب، وسير العمل متعدد المراحل، وقاعدة بيانات MySQL خلفية.

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

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

المزوّدون المدعومون:

  • OpenAI (GPT-4، GPT-3.5)
  • Anthropic (Claude 3، Claude 3.5)
  • Google (Gemini)
  • Ollama (نماذج محلية)
  • vLLM (استضافة ذاتية)
yaml
ai_support:
  enabled: true
  endpoint_type: openai
  ai_config:
    model: gpt-4
    api_key: ${OPENAI_API_KEY}
  features:
    hints:
      enabled: true
    label_suggestions:
      enabled: true

تعرّف على المزيد حول دعم الذكاء الاصطناعي ←


توسيم الصوت

توسيم صوتي كامل الميزات مع عرض الموجة الصوتية بواسطة Peaks.js. أنشئ مقاطع، ووسِّم مناطق زمنية، ووسِّم الكلام باختصارات لوحة المفاتيح.

الميزات الرئيسية:

  • عرض الموجة الصوتية
  • إنشاء المقاطع وتوسيمها
  • أسئلة توسيم لكل مقطع
  • أكثر من 15 اختصاراً للوحة المفاتيح
  • تخزين مؤقت للموجة الصوتية على الخادم
yaml
annotation_schemes:
  - annotation_type: audio_annotation
    name: speakers
    description: "Mark each speaker turn in the audio"
    mode: label
    labels:
      - Speaker A
      - Speaker B

تعرّف على المزيد حول توسيم الصوت ←


التعلم النشط

رتّب أولوية عناصر التوسيم تلقائياً بحسب عدم يقين النموذج. درّب مصنِّفات على التوسيمات الموجودة، ووجّه المعلّقين إلى الأمثلة الأكثر إفادة.

القدرات:

  • خيارات متعددة للمصنِّف (LogisticRegression، RandomForest، SVC، MultinomialNB)
  • محوّلات متجهية متنوعة (TF-IDF، Count، Hashing)
  • حفظ النموذج عبر عمليات إعادة التشغيل
  • اختيار معزَّز بنماذج اللغة الكبيرة
  • دعم مخططات متعددة
yaml
active_learning:
  enabled: true
  schema_names:
    - sentiment
  min_instances_for_training: 30
  update_frequency: 50
  classifier:
    type: LogisticRegression

تعرّف على المزيد حول التعلم النشط ←


مرحلة التدريب

أهّل المعلّقين بأسئلة تدريبية قبل المهمة الرئيسية. قدّم ملاحظات فورية، واضمن الجودة عبر معايير نجاح قابلة للضبط.

الميزات:

  • أسئلة تدريبية بإجابات معروفة
  • ملاحظات وتفسيرات فورية
  • معايير نجاح قابلة للضبط
  • خيارات إعادة المحاولة
  • تتبّع التقدم في لوحة المشرف
yaml
phases:
  training:
    enabled: true
    data_file: "data/training.json"
    passing_criteria:
      min_correct: 8
      total_questions: 10

تعرّف على المزيد حول مرحلة التدريب ←


لوحة المشرف المحسَّنة

واجهة شاملة لمراقبة مهام التوسيم وإدارتها.

تبويبات اللوحة:

  • نظرة عامة: مقاييس عامة ومعدلات الإنجاز
  • المعلّقون: تتبّع الأداء وتحليل التوقيت
  • العناصر: تصفّح البيانات مع درجات الخلاف
  • الإعدادات: ضبط الإعدادات في الوقت الفعلي
yaml
admin_api_key: ${ADMIN_API_KEY}

تعرّف على المزيد حول لوحة المشرف ←


قاعدة البيانات الخلفية

دعم MySQL لعمليات النشر واسعة النطاق، مع تجميع الاتصالات ودعم المعاملات.

yaml
database:
  type: mysql
  host: localhost
  database: potato_db
  username: ${DB_USER}
  password: ${DB_PASSWORD}

ينشئ Potato الجداول المطلوبة تلقائياً عند أول تشغيل.


سجل التوسيم

تتبّع كامل لكل تغييرات التوسيم مع الطوابع الزمنية ومعرّفات المستخدمين وأنواع الإجراءات. ويتيح التدقيق والتحليل السلوكي.

json
{
  "history": [
    {
      "timestamp": "2024-01-15T10:30:00Z",
      "user": "annotator_1",
      "action": "create",
      "schema": "sentiment",
      "value": "Positive"
    }
  ]
}

سير العمل متعدد المراحل

ابنِ سير عمل توسيم معقداً بمراحل متتابعة متعددة:

  1. الموافقة - جمع الموافقة المستنيرة
  2. ما قبل الدراسة - البيانات الديموغرافية والفرز
  3. التعليمات - إرشادات المهمة
  4. التدريب - أسئلة تدريبية
  5. التوسيم - المهمة الرئيسية
  6. ما بعد الدراسة - استبيانات الملاحظات
yaml
phases:
  consent:
    enabled: true
    data_file: "data/consent.json"
  prestudy:
    enabled: true
    data_file: "data/demographics.json"
  training:
    enabled: true
    data_file: "data/training.json"
  poststudy:
    enabled: true
    data_file: "data/feedback.json"

تعرّف على المزيد حول سير العمل متعدد المراحل ←


تغييرات التهيئة في v2.0

بنية التهيئة الجديدة

يستخدم Potato 2.0 صيغة تهيئة أوضح:

v1 (القديم):

yaml
data_files:
  - data.json
id_key: id
text_key: text
output_file: annotations.json

v2 (الجديد):

yaml
data_files:
  - "data/data.json"
 
item_properties:
  id_key: id
  text_key: text
 
output_annotation_dir: "output/"
export_annotation_format: "jsonl"

متطلب الأمان

يجب الآن أن تقع ملفات التهيئة داخل task_dir.

إذا كانت التهيئة بجوار البيانات، فمجلد المهمة هو المجلد الحالي:

yaml
task_dir: "."

وإذا كانت التهيئة في مجلد فرعي، فسمِّ مجلد المشروع الذي تنتمي إليه:

yaml
task_dir: "my_project/"

مقارنة سريعة

الميزةv1v2.0v2.1v2.2v2.3
دعم الذكاء الاصطناعي/نماذج اللغة الكبيرةلانعمنعم + ذكاء اصطناعي بصري + مبررات+ تمييز الخيارات+ الوضع الفردي
التوسيم الوكيليلالالالا12 محوّلاً و3 أنواع عرض
القياس الأفضل-الأسوألالالالانعم (3 طرق تسجيل)
توسيم الصوتأساسيموجة صوتية كاملةموجة صوتية كاملةموجة صوتية كاملةموجة صوتية كاملة
التعلم النشطلانعمنعمنعم + ترتيب تنوعي+ تكامل مع الوضع الفردي
عرض العناصرلالانعمنعمنعم
ربط النطاقاتلالانعمنعمنعم
توسيم الأحداثلالالانعمنعم
ربط الكياناتلالالانعمنعم
المقارنة الزوجية/الفرز/الإحالة المشتركة/الأشجارلالالانعمنعم
تخصيص التخطيطلاتوليد تلقائيتلقائي + قوالب مخصصةتلقائي + قوالب مخصصةتلقائي + قوالب مخصصة
مرحلة التدريبلانعمنعمنعمنعم
لوحة المشرفأساسيةمحسَّنةمحسَّنةمحسَّنة + MACE+ تبويب BWS، والوضع الفردي
قاعدة البيانات الخلفيةملفات فقطملفات + MySQLملفات + MySQLملفات + MySQLملفات + MySQL
أداة التصدير عبر سطر الأوامرلالالانعم (COCO وYOLO وCoNLL وغيرها)+ Parquet
المصادقةاسم المستخدماسم المستخدماسم المستخدماسم المستخدم+ Google/GitHub OAuth وOIDC
أدوات الاستبيانلالالا55 استبياناً محقَّقاً55 استبياناً محقَّقاً
مصادر البيانات عن بُعدلالالاS3 وGDrive وHuggingFace وغيرهاS3 وGDrive وHuggingFace وغيرها

دليل الترحيل

تحديث تهيئتك (من v1 إلى v2)

  1. تهيئة البيانات

    yaml
    # Old
    id_key: id
    text_key: text
     
    # New
    item_properties:
      id_key: id
      text_key: text
  2. تهيئة المخرجات

    yaml
    # Old
    output_file: annotations.json
     
    # New
    output_annotation_dir: "output/"
    export_annotation_format: "jsonl"
  3. موقع ملف التهيئة تأكد من أن ملف التهيئة داخل مجلد المشروع.

تشغيل الخادم

bash
# v2 command
python -m potato start config.yaml -p 8000
 
# Or shorthand
potato start config.yaml

البدء

هل أنت مستعد لتجربة Potato؟ ابدأ بـ دليل البدء السريع أو استكشف ميزات بعينها:

ميزات v2.3:

ميزات v2.2:

ميزات v2.1:

الميزات الأساسية: