? Sistem kain pencarian vektor
Sistem rekomendasi film yang canggih menggunakan kemampuan pencarian vektor dan rag (pengambilan augmented generasi), ditenagai oleh transformator kalimat Huggingface dan mongodb atlas.
? Fitur
- Pencarian Semantic : Memanfaatkan Embeddings Kalimat untuk Pencarian Film Bermakna
- Database Vektor : Memanfaatkan Kemampuan Pencarian Vektor MongoDB Atlas
- Pemrosesan real-time : Hasilkan embeddings on-the-lalat menggunakan API HuggingFace
- Pengambilan Efisien : Rekomendasi Film Cepat dan Akurat Berdasarkan Deskripsi Plot
Struktur proyek
Vector-Search-RaG/
├── apps/
│ └── semantic_search/
│ ├── __init__.py
│ ├── hf_connection.py # HuggingFace API connection
│ ├── mongo_connection.py # MongoDB connection handler
│ └── movie_recs.py # Movie recommendation logic
├── ragenv/ # Virtual environment
├── LICENSE
└── README.md
Memulai
Prasyarat
- Python 3.8 atau lebih tinggi
- Akun MongoDB Atlas
- Token API Huggingface
- Pip (Python Package Manager)
Pengaturan Lingkungan
- Klon Repositori:
git clone https://github.com/yourusername/Vector-Search-RaG.git
cd Vector-Search-RaG
- Buat dan aktifkan lingkungan virtual:
python -m venv ragenv
source ragenv/bin/activate # On Windows: ragenvScriptsactivate
- Instal dependensi:
pip install pymongo requests python-decouple
- Buat file
.env di direktori root dengan kredensial Anda:
MONGODB_URI = your_mongodb_connection_string
HUGGING_FACE_TOKEN = your_huggingface_token
Komponen Konfigurasi
HuggingFace Connection ( hf_connection.py )
- Mengelola koneksi ke API Huggingface
- Menggunakan Model
sentence-transformers/all-MiniLM-L6-v2 untuk Menghasilkan Embeddings - Menangani otentikasi API dan penanganan kesalahan
Koneksi MongoDB ( mongo_connection.py )
- Menetapkan koneksi yang aman ke mongodb atlas
- Mengimplementasikan keamanan TLS
- Termasuk validasi koneksi dan penanganan kesalahan
Rekomendasi Film ( movie_recs.py )
- Mengimplementasikan fungsionalitas pencarian vektor
- Memproses pertanyaan film dan menghasilkan rekomendasi
- Termasuk utilitas untuk mengambil dan memperbarui data film
? Penggunaan
Contoh Pencarian Dasar
from apps . semantic_search . movie_recs import search_movies
# Search for movies with a specific plot description
query = "A group of bandits stage a brazen train hold-up"
search_movies ( query )
Perbarui data film
from apps . semantic_search . movie_recs import fetch_and_update_movies
# Fetch and update movie information
fetch_and_update_movies ()
Detail Pencarian Vektor
Sistem ini menggunakan agregasi $vectorSearch MongoDB untuk pencarian semantik:
- Menghasilkan Embeddings Menggunakan Transformator Kalimat Huggingface
- Pencarian terhadap embeddings plot yang sudah dikomputasi sebelumnya disimpan di MongoDB
- Mengembalikan film yang paling mirip semantik berdasarkan deskripsi plot
Fitur Keamanan
- Enkripsi TLS untuk koneksi MongoDB
- Penanganan token API yang aman melalui variabel lingkungan
- Validasi Sertifikat untuk Koneksi Aman
️ Catatan penting
- Pastikan cluster Atlas MongoDB Anda memiliki kemampuan pencarian vektor yang diaktifkan
- API Huggingface memiliki batasan tingkat - pertimbangkan menerapkan caching untuk penggunaan produksi
- Menjaga file
.env Anda aman dan tidak pernah berkomitmen pada kontrol versi
? Pertimbangan kinerja
- Sistem ini menggunakan
numCandidates: 100 untuk cakupan pencarian luas - Hasilnya terbatas pada 4 film per kueri untuk waktu respons yang optimal
- Indeks pencarian vektor "Plotsemanticsearch" harus dikonfigurasi dengan benar di MongoDB
? Berkontribusi
- Garpu repositori
- Buat Cabang Fitur Anda (
git checkout -b feature/AmazingFeature ) - Komit perubahan Anda (
git commit -m 'Add some AmazingFeature' ) - Dorong ke cabang (
git push origin feature/AmazingFeature ) - Buka permintaan tarik
Lisensi
Proyek ini dilisensikan berdasarkan ketentuan file lisensi yang termasuk dalam repositori.