يمكن أن يكون العثور على حزمة Python المناسبة على PYPI أمرًا صعبًا بعض الشيء ، لأن PYPI غير مصمم حقًا لاكتشاف الحزم بسهولة. على سبيل المثال ، يمكنك البحث عن كلمة "مؤامرة" والحصول على قائمة بمئات الحزم التي تحتوي على كلمة "مؤامرة" بترتيب عشوائي على ما يبدو.
مستوحاة من منشور المدونة هذا حول العثور على مقالات Arxiv باستخدام ضمانات Vector ، قررت إنشاء تطبيق صغير يساعدك على العثور على حزم Python مع نهج مماثل. على سبيل المثال ، يمكنك أن تسألها "أريد أن أصنع مؤامرات وتصورات لطيفة" ، وسوف يوفر لك قائمة قصيرة من الحزم التي يمكن أن تساعدك في ذلك.
يعمل المشروع من خلال جمع ملخصات المشروع والأوصاف لجميع الحزم على PYPI مع أكثر من 100 تنزيل أسبوعي. ثم يتم تحويلها إلى تمثيلات متجه باستخدام محولات الجملة. عندما يدخل المستخدم استعلامًا ، يتم تحويله إلى تمثيل متجه ، ويتم جلب أوصاف الحزمة الأكثر تشابهًا من قاعدة بيانات المتجه. يتم إعطاء وزن إضافي لكمية التنزيلات الأسبوعية قبل تقديم النتائج إلى المستخدم في لوحة القيادة.
يستخدم المشروع التقنيات التالية:
.env بشكل افتراضي ، سيتم تخزين جميع البيانات على جهازك المحلي. من الممكن أيضًا تخزين بيانات API على تخزين Azure Blob ، وقراءة API من هناك. للقيام بذلك ، قم بإنشاء ملف .env :
cp .env.template .envوملء الحقول المطلوبة.
سوف البرنامج النصي الإعداد:
data .STORAGE_BACKEND على BLOB : قم بتحميل مجموعات البيانات إلى تخزين blob.هناك ثلاث طرق لتشغيل البرنامج النصي للإعداد ، يعتمد على ما إذا كان لديك NVIDIA GPU ومجموعة أدوات حاوية NVIDIA مثبتة. يرجى تشغيل البرنامج النصي الإعداد باستخدام الطريقة القابلة للتطبيق بالنسبة لك:
ملحوظة
تحتوي مجموعة البيانات على حوالي 100.000 حزمة على PYPI مع أكثر من 100 تنزيل أسبوعي. لتسريع التطوير المحلي ، يمكنك خفض كمية الحزم التي تتم معالجتها محليًا عن طريق خفض قيمة FRAC_DATA_TO_INCLUDE في pypi_scout/config.py .
ابدأ التطبيق باستخدام Docker Compose:
docker-compose upبعد فترة قصيرة ، سيكون طلبك مباشرًا على http: // localhost: 3000.
يتم إنشاء مجموعة البيانات لهذا المشروع باستخدام مجموعة بيانات PYPI على Google BigQuery. يمكن العثور على استعلام SQL المستخدم في pypi_bigquery.sql. تتوفر مجموعة البيانات الناتجة كملف CSV على Google Drive.