PyPI API Drift: A Release-Level Record of Public API Changes in 1,872 Popular Python Libraries, with a Checker and a Benchmark for Version-Aware Code Generation
تقدم هذه الورقة البحثية PyPI API Drift، وهي مجموعة بيانات تحليل استاتيكي شاملة تتبع التغييرات في واجهات برمجة التطبيقات (API) العامة على مستوى الإصدار عبر 1,872 مكتبة بايثون شهيرة، إلى جانب الأدوات والمعايك المرجعية المرتبطة بها والتي تحسن بشكل كبير قدرة نماذج توليد الكود على إنتاج كود متوافق مع الإصدارات من خلال الاستفادة من بيانات واجهة برمجة التطبيقات التاريخية.
البحث الأصلي مرخَّص بموجب CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل
في المشهد المتغير والواسع للبرمجيات الحديثة، تبرز لغة بايثون كلغة مهيمنة، حيث تشغل كل شيء بدءاً من الأبح ক্ষেত্রে العلمية وصولاً إلى تطبيقات الويب. وتكمن قوتها في منظومة ضخمة من الأدوات الجاهزة، المعروفة باسم المكتبات، والتي يمكن للمطورين دمجها في مشاريعهم للتعامل مع المهام المعقدة دون الحاجة لإعادة اختراع العجلة. ومع ذلك، فإن هذه الأدوات ليست صروحاً ثابتة؛ بل هي كيانات حية تتطور باستمرار. فالمطورون يقومون بتحديثها بشكل متكرر لإصلاح الأخطاء، أو تحسين السرعة، أو إضافة ميزات جديدة. وفي سبيل القيام بذلك، يقومون أحياناً بإزالة أو تغيير الأوامر والتعليمات المحددة التي يعتمد عليها المستخدمون بهدوء. وبالنسبة للمبرمجين البشر، فإن تتبع هذه التغييرات يمثل تحدياً يمكن إدارته، وغالباً ما يتم حله عبر قراءة ملاحظات الإصدار أو سؤال الزملاء. أما بالنسبة للجيل الجديد من مساعدي الذكاء الاصطناعي الذين يكتبون الأكواد، فإن هذا التطور يمثل مشكلة فريدة ومستمرة. فهذه النماذج من الذكاء الاصطناعي مدربة على أرشيفات هائلة من الأكواد من عصور مختلفة، مما يجعلها تتعلم كتابة تعليمات كانت صحيحة قبل سنوات ولكنها قد تكون معطلة الآن. وبدون وسيلة لمعرفة الإصدار المحدد الذي يستخدمه المستخدم بالضبط، قد يقترح الذكاء الاصطناعي بثقة أمراً لم يعد موجوداً، مما يؤدي إلى أخطاء توقف المشروع تماماً.
ولحل هذه المشكلة، أنشأ الباحث بوشكار ديفانا هالي جوبالكريشنا سجلاً مفصلاً وضخماً لكيفية تغير هذه الأدوات بمرور الوقت. يعمل المشروع، الذي يسمى "PyPI API Drift"، كأرشيف تاريخي لـ 1,872 من أشهر مكتبات بايثون. وبدلاً من محاولة تشغيل واختبار كل قطعة كود على حدة، وهو أمر سيكون بطيئاً ومكلفاً للغاية، طور الباحث طريقة للنظر مباشرة في الملفات الرقمية التي تشكل هذه المكتبات. ومن خلال فحص الأجزاء الضرورية فقط من هذه الملفات، يمكن للنظام رسم خريطة دقيقة لما كانت الأوامر والوظائف والإعدادات المتاحة في كل إصدار حديث لكل مكتبة. تغطي هذه العملية أكثر من 55,000 نسخة محددة من البرامج التي تم إصدارها بين عام 2021 وأواخر عام 2026. والنتيجة هي سجل دقيق يتتبع متى تمت إضافة ميزة معينة، ومتى تم تغيير اسمها، ومتى تمت إزالتها تماماً. والأهم من ذلك، أن النظام يميز بين الأشياء التي اختفت حقاً والأشياء التي تغيرت أسماؤها أو انتقلت لمكان آخر، مع وضع مستوى ثقة لكل مدخل للإشارة إلى مدى تأكد السجل.
إن حجم هذا التغيير كبير جداً. فقد كشف التحليل أن حوالي 13.4 بالمائة من التحديثات البرمجية الطفيفة، والتي يُفترض غالباً أنها آمنة ومتوافقة مع الإصدارات السابقة، تحتوي في الواقع على تغيير واحد على الأقل يؤدي إلى تعطيل الكود الحالي. والأكثر إثارة للدهشة هو أن حوالي 64 بالمائة من القفزات في الإصدارات الرئيسية وحوالي 30 بالمائة من الإصدارات الطفيفة تتضمن تغييرات من شأنها أن تجعل الأكواد القديمة تفشل. وتتحدى هذه البيانات الافتراض الشائع بأن تحديثات البرامج تتبع نمطاً صارماً ومتوقعاً من الأمان. ووجد الباحث أن جزءاً ضئيلاً جداً من الميزات المزالة تم الإعلان عنها رسمياً كـ "مهجورة" أو "ستتم إزالتها قريباً" بطريقة يمكن للأدوات الآلية رصدها بسهولة. وغالباً ما كانت التحذيرات مخفية في مستندات نصية أو رسائل شرطية لا يمكن لبرنامج كمبيوتر قراءتها، مما يترك المطورين ومساعدي الذكاء الاصطناعي في حالة من عدم المعرفة حتى يتعطل الكود.
ولإثبات فائدة هذا السجل، بنى الباحث مجموعة من الأدوات لاختبار دقته وفائدته. تعمل إحدى الأدوات كفاحص يمسح الكود ليرى ما إذا كان يستخدم أوامر لم تعد صالحة لإصدار برمجيات معين. وتعمل أداة أخرى كنظام بحث لمساعدي الذكاء الاصطناعي، مما يسمح لهم بالاستعلام عن تاريخ أمر ما قبل كتابته. والأهم من ذلك، اختبرت سلسلة من التجارب ما إذا كان منح الذكاء الاصطناعي إمكانية الوصول إلى هذا السجل التاريخي يساعده بالفعل في كتابة كود أفضل. في الاختبارات التي تعين فيها على الذكاء الاصطناعي إصلاح كود تعطل بسبب تحديث برمجيات، أدى الذكاء الاصطناعي أداءً أفضل بكثير عندما تمكن من استشارة هذا السجل. فبدون مساعدة، نجح الذكاء الاصطناعي في إصلاح الكود بشكل صحيح في أقل من نصف الحالات. وعند تزويده بالسجل التاريخي، قفز معدل نجاحه إلى ما يقرب من 70 بالمائة، متفوقاً حتى عند تزويده بالوثائق الرسمية للإصدار الجديد من البرنامج. وهذا يشير إلى أن امتلاك تاريخ دقيق ومحدد للإصدارات أكثر قيمة للذكاء الاصطناعي من قراءة التعليمات العامة.
كما أنتج المشروع معياراً مرجعياً (Benchmark)، وهو مجموعة اختبار معيارية تضم آلاف من مقتطفات الكود، لمساعدة الباحثين الآخرين في قياس مدى قدرة نماذج الذكاء الاصطناعي الخاصة بهم على التعامل مع هذه التغييرات في الإصدارات. وتؤكد النتائج أنه بينما تعد نماذج الذكاء الاصطناعي قوية، إلا أنها تعاني مع الوتيرة السريعة لتطور البرمجيات ما لم تكن مجهزة بخريطة موثوقة ومحدثة لما هو موجود وما قد اختفى. ويظهر السجل أن مشهد مكتبات بايثون أكثر سيولة مما كان مفهوماً سابقاً، حيث تظهر التغييرات الجذرية بشكل متكرر حتى في التحديثات الصغيرة. ومن خلال توفير خريطة عالية الدقة لهذه التغييرات، يوفر هذا العمل أساساً لبناء مساعدي برمجة أكثر ذكاءً يمكنهم التنقل في عالم البرمجيات المتطور دون الضياع في دوامة التغيير. والبيانات متاحة الآن للجميع، مما يضمن استمرار المجتمع في بناء أدوات تواكب الحركة المستمرة للعالم الرقمي.
غارق في أبحاث مجالك؟
تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.