يحتوي هذا المستودع على كود لـ Playlist2Vec.com ، وهو موقع ويب تم تصميمه لتجريبي نموذج البحث المتجه الموصوف في ورقتنا ، "التمثيل والاستكشاف والتوصية لقوائم التشغيل".
ملاحظة: تم اختبار هذا الإعداد على Ubuntu 22.04 لكل من بنيات X86_64 و AARCH64.
قم بتثبيت Nginx باتباع الدليل المتاح على: كيفية تثبيت Nginx على Ubuntu 22.04.
يمكنك تثبيت Node.js (v20.18.0) من خلال الإشارة إلى هذا البرنامج التعليمي: كيفية تثبيت Node.js على Ubuntu 22.04.
قم بتشغيل الأمر التالي لاستنساخ المستودع:
git clone https://github.com/piyp791/playlist2vec.git
انتقل إلى دليل المشروع عن طريق التشغيل:
cd playlist2vec
انسخ ملف nginx/nginx.conf إلى /etc/nginx/ .
انسخ ملف nginx/site_config إلى /etc/nginx/sites-available/<YOURSITENAME> .
قم بإنشاء رابط رمزي من sites-available إلى sites-enabled مع الأمر التالي:
sudo ln -s /etc/nginx/sites-available/<YOURSITENAME> /etc/nginx/sites-enabled/
قم بإزالة ملف التكوين الافتراضي عن طريق التنفيذ:
sudo rm /etc/nginx/sites-enabled/default
إنشاء دليل ذاكرة التخزين المؤقت لـ Nginx:
sudo mkdir /var/cache/nginx
تحقق من أن التكوين صحيح عن طريق التشغيل:
sudo nginx -t
أعد تشغيل nginx مع الأمر:
sudo systemctl restart nginx
من داخل دليل المشروع ، قم بتنفيذ برنامج Build Script:
./build.sh.
سيؤدي ذلك إلى إنشاء إصدار HTTP من موقع الويب ، والذي يمكن دمجه مع خدمة مثل نفق CloudFlare للواجهة الأمامية HTTPS.
بشكل افتراضي ، يقوم برنامج Build Script بتكوين التطبيق لاستخدام الإصدار المصغر من Corpus ، والذي يحتوي على 377000 عنصر. في هذا التكوين ، يتم تحميل فهرس البحث عن مجموعة صغيرة في الذاكرة. على النقيض من ذلك ، يتم الوصول إلى مؤشر البحث المصمم باستخدام مجموعة كاملة في الوضع الذي تم تعيينه للذاكرة.
لتغيير هذا الإعداد ، يمكنك تعديل ملف .env . اضبط متغير IS_MINI على false لاستخدام النسخة الكاملة من المجموعة:
IS_MINI=false
cd search-service
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
uvicorn src.server:app --port 3001
cd autocomplete-service
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
uvicorn src.server:app --port 3002
cd web-server
npm install
npm run start-dev-mode
cd web-server
npm run test-dev
Papreja, P., Venkateswara, H., Panchanathan, S. (2020). Representation, Exploration and Recommendation of Playlists. In: Cellier, P., Driessens, K. (eds) Machine Learning and Knowledge Discovery in Databases. ECML PKDD 2019. Communications in Computer and Information Science, vol 1168. Springer, Cham. https://doi.org/10.1007/978-3-030-43887-6_50