Este proyecto tiene como objetivo implementar una búsqueda semántica y una aplicación LLM-Chat con trapo a escala. Consiste en tres componentes 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.
El diseño modular permite que cada componente sea escalable independientemente, lo que permite que el sistema maneje grandes volúmenes de tráfico según sea necesario.
Para la implementación del mundo real, se recomienda adoptar una solución de base de datos de vectores distribuidos en lugar de ChromAdB. Además, serán necesarias mejoras adicionales para hacer la producción de la aplicación lista.
Esta configuración del proyecto es solo el comienzo de la creación de una aplicación basada en el chat lista para la producción.
Instalar dependencias (use Python> = 3.10). Deberá agregar la variable de entorno CMAKE_ARGS para una instalación exitosa de LLMA-CPP-Python. Para Apple Silicon MacBooks, use el siguiente comando. Consulte la documentación oficial de LLMA-CPP-Python para ver otras instrucciones específicas de la plataforma. enlace
CMAKE_ARGS="-DLLAMA_METAL=on"
pip install -r requirements.txt
Afterwords, en la siguiente secuencia ejecuta cada servicio.
Este es un servicio de base de datos vectorial que crea, modifica y actualiza las entradas del conjunto de datos. Sigue estas instrucciones aquí
Este servicio API está impulsado por el modelo LLAMA-2-7B para la interfaz de chat y utiliza ChromAdB_Service para la recuperación de contexto. Sigue estas instrucciones aquí
Esta es una aplicación frontend (Streamlit) que se basa en LLM_Service para encender las funciones de búsqueda de chat y búsqueda semántica.
Para iniciar la aplicación frontend, ejecute el comando a continuación.
streamlit run frontend/1_Product_Chat.py
Comuníquese con mí en LinkedIn para cualquier pregunta relacionada con la implementación y TechonLogies. Siéntase libre de abrir solicitudes de extracción para mejoras adicionales. ¡Gracias!