Benchmark · coding
Commit-0
يقيس Commit-0 ما إذا كان بإمكان وكيل برمجي تنفيذ مكتبة Python كاملة من الصفر اعتمادًا على مواصفاتها فقط — أي توقيعات الدوال والأصناف مع docstrings إضافةً إلى مجموعة اختبارات وحدة مخفية. المقياس الرئيسي هو نسبة اختبارات الوحدة الناجحة.
اقرأ المزيد
- مثال
- يُعطى هيكل مكتبة Python حقيقية — كل وحدة وصنف ودالة موجودة كـ stub مُحدَّد النوع مع docstring لكن بجسم فارغ — ويجب تنفيذها كلها بحيث تنجح مجموعة اختبارات المكتبة نفسها بالكامل (مثلًا استكمال دوال التحليل والتسلسل والأدوات المساعدة لمكتبة صغيرة انطلاقًا من docstrings الخاصة بها).
- طريقة التقييم
- الدرجة هي معدل نجاح اختبارات الوحدة: تُشغَّل مجموعة pytest لكل مكتبة في بيئة معزولة وتحصل المكتبة على نسبة الاختبارات الناجحة، مُجمَّعة عبر مكتبات المعيار الأربع والخمسين. وتشترط بعض الإعدادات أيضًا أن يجتاز الكود فحوصات lint وفحص الأنواع.
- التحقق
- يُقبل الناتج بتشغيل مجموعة الاختبارات المخفية داخل حاوية Docker قابلة لإعادة الإنتاج — فـ pytest هو الحَكَم، لذا لا يُحتسب الاختبار إلا حين ينجح فعلًا، دون مطابقة مع مخرجات مرجعية. يمكن لتشغيلات الوكيل أن تتكرر بالاعتماد على تغذية الاختبارات و lint الراجعة، لكن التقييم النهائي يعيد تشغيل المجموعة من checkout نظيف.
- لماذا يهم
- يتجاوز توليد دالة واحدة أو ملف واحد (HumanEval، SWE-bench) إلى تخليق مكتبة كاملة من مواصفة، فيختبر التخطيط بعيد المدى، والاتساق بين الوحدات، والقدرة على الوفاء بعقد API حقيقي — وهو أقرب بكثير إلى إطلاق برمجيات حقيقية.
مثال محلول
المهمة
stub لدالة واحدة داخل هيكل مكتبة، يجب تنفيذها بحيث تنجح اختباراتها المخفية:
```python
def parse_version(text: str) -> tuple[int, int, int]:
"""Parse a semantic version 'MAJOR.MINOR.PATCH' into a tuple of ints.
Raises ValueError if text is not three dot-separated integers.
"""
raise NotImplementedError
```
الحل
```python
def parse_version(text: str) -> tuple[int, int, int]:
parts = text.split(".")
if len(parts) != 3:
raise ValueError(f"invalid version: {text!r}")
major, minor, patch = (int(p) for p in parts)
return (major, minor, patch)
```
الشرح
يحترم الجسمُ عقدَ الـ docstring: يقسّم النص عند «.»، ويرفض بـ ValueError أي مدخل ليس من ثلاثة أجزاء بالضبط، ويحوّل كل جزء إلى int. يشغّل التقييم مجموعة pytest المخفية للمكتبة داخل الصندوق المعزول، ولا يَنجح هذا البند إلا حين تتحقق كل التأكيدات المتعلقة بـ parse_version.
لا توجد درجات موثّقة لهذا الـ Benchmark بعد.