? Vektor -Suchlappensystem
Ein ausgeklügeltes Filmempfehlungssystem mit Vektorsuche und Rag (Abrufer Augmented Generation), die durch die Satztransformatoren von Huggingface und MongoDB -Atlas betrieben werden.
? Merkmale
- Semantische Suche : Verwendet Satzeinbettungen für sinnvolle Filmsuche
- Vektordatenbank : Nutzt die Vektorsuchfunktionen von MongoDB Atlas
- Echtzeitverarbeitung : Erzeugen Sie Einbettung im Fliege mit der API von Huggingface
- Effizientes Abrufen : schnelle und genaue Filmempfehlungen basierend auf Handlungsbeschreibungen
Projektstruktur
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
Erste Schritte
Voraussetzungen
- Python 3,8 oder höher
- MongoDB Atlas Account
- API -Token mit Umarmung
- PIP (Python -Paketmanager)
Umgebungsaufbau
- Klonen Sie das Repository:
git clone https://github.com/yourusername/Vector-Search-RaG.git
cd Vector-Search-RaG
- Virtuelle Umgebung erstellen und aktivieren:
python -m venv ragenv
source ragenv/bin/activate # On Windows: ragenvScriptsactivate
- Abhängigkeiten installieren:
pip install pymongo requests python-decouple
- Erstellen Sie eine
.env -Datei im Stammverzeichnis mit Ihren Anmeldeinformationen:
MONGODB_URI = your_mongodb_connection_string
HUGGING_FACE_TOKEN = your_huggingface_token
Konfigurationskomponenten
Huggingface -Verbindung ( hf_connection.py )
- Verwaltet Verbindungen zur API von Suggingface
- Verwendet das Modell
sentence-transformers/all-MiniLM-L6-v2 zum Erzeugen von Einbettungen - Griff die API -Authentifizierung und Fehlerbehandlung
MongoDB -Verbindung ( mongo_connection.py )
- Stellt eine sichere Verbindung zu MongoDB Atlas her
- Implementiert die Sicherheit der TLS
- Beinhaltet Verbindungsvalidierung und Fehlerbehandlung
Filmempfehlungen ( movie_recs.py )
- Implementiert die Funktionalität der Vektorsuche
- Verarbeitet Filmfragen und generiert Empfehlungen
- Enthält Dienstprogramme zum Abholen und Aktualisieren von Filmdaten
? Verwendung
Basis -Suchbeispiel
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 )
Filmdaten aktualisieren
from apps . semantic_search . movie_recs import fetch_and_update_movies
# Fetch and update movie information
fetch_and_update_movies ()
Vektor -Suchdetails
Das System verwendet die $vectorSearch -Aggregation von MongoDB für die semantische Suche:
- Generiert Einbettung mit dem Satztransformator von Huggingface
- Suchvorgänge gegen vorbereitete Plot-Einbettungen, die in MongoDB gespeichert sind
- Gibt die semantisch ähnlichsten Filme zurück, die auf Handlungsbeschreibungen basieren
Sicherheitsfunktionen
- TLS -Verschlüsselung für MongoDB -Verbindungen
- Sichern Sie die Handhabung von API -Token über Umgebungsvariablen
- Zertifikatvalidierung für sichere Verbindungen
Euen Wichtige Anmerkungen
- Stellen Sie sicher
- Die Huggingface -API hat Ratenlimits - Erwägen Sie die Implementierung des Zwischenspeichers für die Produktionsnutzung
- Halten Sie Ihre
.env -Datei sicher und verpflichten Sie sie niemals für die Versionskontrolle
? Leistungsüberlegungen
- Das System verwendet
numCandidates: 100 für eine breite Suchabdeckung - Die Ergebnisse sind auf 4 Filme pro Abfrage für eine optimale Reaktionszeit begrenzt
- Der Vektorsuchesindex "Plotsemanticsearch" sollte in MongoDB ordnungsgemäß konfiguriert werden
? Beitragen
- Geben Sie das Repository auf
- Erstellen Sie Ihre Funktionszweig (
git checkout -b feature/AmazingFeature ). - Bestimmen Sie Ihre Änderungen (
git commit -m 'Add some AmazingFeature' ) - Push in den Zweig (
git push origin feature/AmazingFeature ) - Öffnen Sie eine Pull -Anfrage
Lizenz
Dieses Projekt ist gemäß den Bestimmungen der im Repository enthaltenen Lizenzdatei lizenziert.