Stockage des données de commerce électronique (accédez à SQL_MODELS.py pour un schéma détaillé) dans une base de données SQLite à l'aide de SQLModel (le composant SQL principal est SQL_DB.py). Chaque fois qu'un produit est inséré dans la base de données à l'aide de SQL_DB.py, son vecteur de texte produit correspondant incorporant l'ID de produit (pour la recherche de produits) est stocké automatiquement dans la base de données vectorielle QDRANT. FASTAPI Server run.py utilise SQL_DB.py pour la récupération et l'insertion de données dans la base de données et le composant LLM LLM.PY utilise SQL_DB.py pour la génération de requêtes et la génération de données CSV pour le réglage fin de Google FLAN-T5 (allez à Fine-Tuning.Ipynb).
Git sur votre système.Python 3 sur votre système.Docker Desktop (pour le serveur QDrant de tuyau) installé sur votre système. Page de téléchargement: icicuda sur votre système pour le réglage fin LLM. Découvrez quelle est la dernière version de CUDA que Pytorch prend en charge: pytorch.org et installez cette version de CUDA. Veuillez vous référer au guide d'installation CUDAS pour le guide étape par étape pour l'installation.Assurez-vous que GIT est installé sur votre système. Ensuite, ouvrez le terminal et entrez:
git clone https://github.com/abhash-rai/E-Commerce-LLM-Based-Recommendation-System.git
Répertoire ouvert du projet:
cd E-Commerce-LLM-Based-Recommendation-System
Gardez la note du full path vers le répertoire du projet car il sera nécessaire à l'étape 2.
Installez Docker Desktop et vérifiez l'installation de Docker:
docker --version
Si vous obtenez la version Docker et créez du texte, entrez (assurez-vous (assurez-vous que Docker Desktop est ouvert et exécutez dans votre système):
docker pull qdrant/qdrant
Exécutez le serveur QDrant sur Docker avec la commande ci-dessous mais remplacez <PathToLocalRepo> Portion par le full path du répertoire du projet noté à step 1 . L'exemple <PathToLocalRepo> serait quelque chose comme «d: / temp / e-commerce-llm-basé sur le système de recommandation».
docker run -d --name qdrant -p 6333:6333 -v <PathToLocalRepo>/db/qdrant_storage:/qdrant/storage qdrant/qdrant
Installez la bibliothèque virtualenv à l'aide de PIP:
pip install virtualenv
J'ai trouvé que Python3.12 fonctionne bien avec les dépendances requises, donc créer un environnement virtuel nommé .venv avec la même version python:
virtualenv -p python3.12 .venv
Activez l'environnement virtuel:
.venvScriptsactivate
Installez les dépendances:
pip install -r requirements.txt
La dépendance finale à installer est Pytorch. Avant cela, assurez-vous que vous connaissez votre système d'exploitation système et votre version CUDAS installée. Vous pouvez vérifier la version Cudas installée en entrant:
nvcc --version
Découvrez quelles sont les versions de CUDA que Pytorch prend en charge: pytorch.org et voyez si l'une de ces versions est celle que vous avez installée sur votre système. S'il n'y a pas de correspondance alors, vous devez réinstaller Cuda à une version prise en charge que Pytorch prend en charge.
Accédez au même site pytorch.org et faites défiler jusqu'à la section «Installer Pytorch» et sélectionnez les options pertinentes pour obtenir la commande d'installation Pytorch pour votre système. Pour mon système d'exploitation Windows avec CUDA 12.4 était (le vôtre pourrait être différent en fonction de votre système):
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
Enfin, installez:
pip install transformers[torch]
Vous pouvez commencer à expérimenter des données synthétiques qui ne sont pas nécessaires mais recommandées pour essayer. Pour remplir la commande de données synthétiques ci-dessous, qui créera la base de données SQLite et la collection Vectore pour les produits automatiquement (prendra quelques instants):
python populate_synthetic_db.py
La base de données SQLite sera dans E-Commerce-LLM-Based-Recommendation-System/db/sqlite_storage/main.db et QDRANT stockeront Vector Embeddings sous forme de collections à E-Commerce-LLM-Based-Recommendation-System/db/qdrant_storage .
Ouvrez fine-tuning.ipynb dans le code vs et sélectionnez l'environnement virtuel précédemment généré .venv comme noyau. Ensuite, exécutez chaque cellule du cahier qui générera finalement un ensemble de données CSV pour un réglage fin, réglez le modèle Google FLAN-T5 LLM et enregistrez le modèle réglé fin localement pour générer des recommandations.
Le nom LLM ainsi que des informations et des chemins similaires sont définis dans constants.py. Vous pouvez choisir de garder LLM_NAME à n'importe lequel de: "Google / Flan-T5-Small", "Google / Flan-T5-Base", "Google / Flan-T5-GARD", "Google / Flan-T5-XL", ou "Google / Flan-T5-XXL". Pour les informations sur le modèle, accédez à: https://huggingface.co/docs/transformers/en/model_doc/flan-t5
Run.py a déjà des fonctionnalités intégrées pour exécuter Fastapi Server avec Uvicorn. Donc, Exécuter la commande:
python run.py
Attendez un certain temps jusqu'à ce que le serveur soit entièrement chargé, puis pour essayer les API, allez à: http://127.0.0.1:8000/docs. Il existe 4 API pour rechercher des produits, recommander un produit à un client, stocker des commentaires de recommandation et surveiller les performances de recommandation. Explorez les API avec la base de données: E-Commerce-LLM-Based-Recommendation-System/db/sqlite_storage/main.db pour l'ID des entités et comment les API gèrent la base de données.
Vous pouvez modifier run.py et sql_db.py pour ajouter des points de terminaison pour effectuer des opérations crud sur tous les modèles détaillés dans sql_models.py pour créer un serveur à part entière.