Ce projet vise à mettre en œuvre une échelle de recherche sémantique de recherche et de SHAP-alimentée par chiffon. Il se compose de trois composantes principales:
1. Vector Store Database (chromadb_service): Manages and stores vector embeddings for efficient retrieval.
2. Backend LLM-Powered API Service (llm_service): Handles the core logic and interacts with the LLM model.
3. Frontend Application: Provides the user interface for interacting with the application.
La conception modulaire permet à chaque composant d'être évolutif indépendamment, permettant au système de gérer de grands volumes de trafic au besoin.
Pour le déploiement du monde réel, il est recommandé d'adopter une solution de base de données vectorielle distribuée au lieu de ChromAdB. De plus, d'autres améliorations seront nécessaires pour rendre l'application prête pour la production.
Cette configuration de projet n'est que le début de la création d'une application basée sur le chat prêt pour la production.
Installez les dépendances (utilisez Python> = 3.10). Vous devrez ajouter Cmake_args variable d'environnement pour une installation LLMA-CPP-Python réussie. Pour les MacBooks Apple Silicon, veuillez utiliser la commande ci-dessous. Veuillez consulter la documentation officielle de LLMA-CPP-Python pour d'autres instructions spécifiques à la plate-forme. lien
CMAKE_ARGS="-DLLAMA_METAL=on"
pip install -r requirements.txt
Afterwords, dans la séquence suivante, exécutez chaque service.
Il s'agit d'un service de base de données vectorielle qui crée, modifie et met à jour les entrées de jeu de données. Suivez ces instructions ici
Ce service API est alimenté par le modèle LLAMA-2-7B pour l'interface de chat et utilise ChromAdb_Service pour la récupération de contexte. Suivez ces instructions ici
Il s'agit d'une application frontend (Streamlit) qui s'appuie sur LLM_Service pour alimenter les fonctionnalités de chatbot et de recherche sémantique.
Pour démarrer l'application Frontend Exécutez la commande ci-dessous.
streamlit run frontend/1_Product_Chat.py
Veuillez me contacter sur LinkedIn pour toutes les questions liées à la mise en œuvre et aux technologies. N'hésitez pas à ouvrir les refus de traction pour de nouvelles améliorations. Merci!