TL ؛ DR: تم اختراق تطبيق الويب معًا مع الواجهة الخلفية MongoDB Atlas باستخدام استعلامات بحث مختلفة.
قد يكون تقديم تجربة بحث رائعة في التطبيق في التطبيقات أمرًا صعبًا ، ولكن لا يلزم أن يكون كذلك.
يجمع هذا التطبيق بين العديد من تقنيات البحث المتاحة في MongoDB على مجموعة بيانات تشغيلية من الأفلام. MongoDB هي قاعدة بيانات مستندات شائعة جدًا معروفة بقدراتها القوية معاملاتها والتحليلية على البيانات المهيكلة وشبه المنظمة في بنية تشبه JSON. إضافة البحث عن الصلة والبحث في المتجه الدلالي في نفس النظام الأساسي ولغة الاستعلام أمر سهل للغاية وبسيط للغاية ، دون تعقيد كبير. كقاعدة بيانات متجه ، تقوم الآن أيضًا بتخزين بيانات غير منظمة مثل النص أو الصور أو الصوت ، في تضمينات المتجهات (متجهات عالية الأبعاد) لتسهيل العثور على كائنات مماثلة واستردادها بسرعة.
MongoDB ) ،Lucene ) ،text-embedding-ada-002 ) ،clip-ViT-B-32 ) ، يتيح بحث ATLAS إمكانيات البحث والتسجيل الصلة بناءً على فهارس Lucene مفتوحة المصدر. هنا ، أستخدمه للبحث في الأفلام ذات الصلة بدعم اللغة وتصحيح الخطأ المطبعي. 
يتم تشغيل مؤامرة نصية لكل فيلم من خلال واجهة برمجة تطبيقات Openai التضمين ، ويتم تخزين تلك التضمينات text-embedding-ada-002 في MongoDB. يتم تضمين موجه المستخدم ويستخدم للاستعلام في قاعدة بيانات المتجه لمحتوى مماثل. يمكنك البحث إما عن إدخالك ، أو إجراء بحث تشابه استنادًا إلى مؤامرة فيلم موجود. 
يتم تفسير صورة ملصق كل فيلم بواسطة clip-ViT-B-32 . يتم تخزين تلك التضمينات الصورة في mongodb. يمكن للمستخدم العثور على أفلام تحتوي على صور ملصقات تشبه استعلامهم. 
بنية المستندات تبدو على النحو التالي. باللون الأزرق ، لديك الحقول والأشياء المتداخلة والصفائف مع البيانات التشغيلية. يتم الاستعلام عن الأزرق مع البحث عن قاعدة البيانات والبحث عن صلة بحث أطلس. تضيف هذه المشاريع الحقول باللون الأصفر: تمثيل BASE64 لملصق الفيلم ، و ADA Openai Text Embedings و Clip Image Embeddings ، تم الاستعلام عنه مع بحث ناقلات Atlas.

تحتاج python3 و pip .
python3 --version
python3 -m ensurepip --upgrade
pip3 install -r requirements.txt
تحتاج إلى مجموعة MongoDB Atlas . يمكن أن تكون هذه مجموعة مجانية ، تم إنشاؤها على cloud.mongodb.com. تأكد من الوصول إلى قاعدة البيانات والوصول إلى الشبكة ، يتيح لك إجراء اتصال إلى قاعدة البيانات. لاحظ أن المجموعات المجانية لها حجم وقيود في الأداء ، فلا تتردد في تشغيل هذا على مجموعة صغيرة مدفوعة الأجر مع الكثير من البيانات.
تحتاج إلى تعيين بعض متغيرات البيئة المحلية. القالب هو .env.example الذي يمكنك نسخه إلى ملف .env المحلي الخاص بك.
MDB_CONN=<YOUR MongoDB Atlas connection string>
DB="sample_mflix"
COLL="embedded_movies"
OPENAI_API_KEY=<YOUR OpenAI API key>
استنساخ mdb-search-data repo.
في هناك ، يتم تقديم خيارين: استعادة من النسخ الاحتياطي أو توليد التضمينات بنفسك محليًا. الاستعادة من النسخ الاحتياطي تستغرق أقل من دقيقة واحدة.
في Atlas ، في Search tab Cluster View ، أدخل تكوين JSON التالي. استخدم اسم الفهرس default وتأكد من إنشائه على مجموعة embedded_movies . هذا هو السحر الذي سيمكّن البحث عن النص الكامل الديناميكي على الحقول ، وكذلك تمكين فهارس البحث المتجه. لا حاجة لنسخة بيانات: س
{
"mappings": {
"dynamic": true,
"fields": {
"plot_embedding": {
"dimensions": 1536,
"similarity": "cosine",
"type": "knnVector"
},
"poster_embedding": {
"dimensions": 512,
"similarity": "cosine",
"type": "knnVector"
}
}
}
}
هذا هو قارورة python3 تطبيق الويب.
ابدأ تطبيق Flask مثل هذا
flask --app app run
أو مع مساعد فقط استخدم بيثون مثل هذا
python app.py
يمكنك الوصول إلى تطبيق الويب على http://localhost:8080 .
يمكنك الآن:
ثق بـ ML ونموذج التضمين. هل يمكنك تخمين لماذا هذه الصور متشابهة؟