Almacena datos de comercio electrónico (vaya a sql_models.py para un esquema detallado) en una base de datos SQLite utilizando SQLModel (el componente SQL principal es SQL_DB.PY). Cada vez que se inserta un producto en la base de datos utilizando sql_db.py, su correspondiente incrustación de vector de texto del producto junto con la ID del producto (para la búsqueda del producto) se almacena automáticamente en la base de datos Qdrant Vector. Fastapi Server run.py utiliza sql_db.py para obtener e insertar datos en la base de datos y el componente LLM LLM.PY utiliza sql_db.py para la generación de consultas y la generación de conjuntos de datos CSV para el ajuste fino de Google FLAN-T5 (vaya a ajuste fino.ipynb).
Git en su sistema.Python 3 en su sistema.Docker Desktop (para la manguera Qdrant Server) en su sistema. Página de descarga: aquícuda instalado en su sistema para el ajuste fino de LLM. Descubra cuál es la última versión de CUDA que Pytorch admite en: pytorch.org e instale esa versión de CUDA. Consulte la Guía de instalación de CUDAS para una guía paso a paso para la instalación.Asegúrese de que GIT esté instalado en su sistema. Luego, abra terminal e ingrese:
git clone https://github.com/abhash-rai/E-Commerce-LLM-Based-Recommendation-System.git
Abrir directorio de proyecto:
cd E-Commerce-LLM-Based-Recommendation-System
Mantenga la nota de la full path al directorio del proyecto, ya que será necesario en el paso 2.
Instale el escritorio Docker y verifique la instalación de Docker:
docker --version
Si obtiene la versión Docker y el texto de compilación, ingrese (asegúrese de que Docker Desktop esté abierto y ejecutado en su sistema):
docker pull qdrant/qdrant
Ejecute Qdrant Server en Docker con el comando a continuación, pero reemplace la porción <PathToLocalRepo> con la full path del directorio del proyecto observado en step 1 . Ejemplo <PathToLocalRepo> sería algo así como 'D:/temp/E-Commerce-LLM basado en el sistema de preparación'.
docker run -d --name qdrant -p 6333:6333 -v <PathToLocalRepo>/db/qdrant_storage:/qdrant/storage qdrant/qdrant
Instale la biblioteca virtualenv usando PIP:
pip install virtualenv
Encontré que Python3.12 funciona bien junto con las dependencias requeridas, así que cree un entorno virtual llamado .venv con la misma versión de Python:
virtualenv -p python3.12 .venv
Active el entorno virtual:
.venvScriptsactivate
Instalar dependencias:
pip install -r requirements.txt
La dependencia final para instalar es Pytorch. Antes de eso, asegúrese de conocer su sistema operativo sistema y la versión CUDAS instalada. Puede verificar la versión CUDAS instalada ingresando:
nvcc --version
Descubra cuáles son las versiones de CUDA que Pytorch admite en: pytorch.org y vea si una de esas versión es la que instaló en su sistema. Si no hay coincidencia, entonces debe reinstalar CUDA a una versión que Pytorch admite.
Vaya al mismo sitio pytorch.org y desplácese hacia abajo para 'instalar la sección Pytorch' y seleccione opciones relevantes para obtener el comando de instalación de Pytorch para su sistema. Para mi sistema operativo Windows con el comando CUDA 12.4 fue (el suyo podría ser diferente según su sistema):
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
Finalmente, instale:
pip install transformers[torch]
Puede comenzar a experimentar con datos sintéticos que no son necesarios, pero recomendado para probar. Para llenar los datos sintéticos ejecutados a continuación, que creará la base de datos SQLite y la recopilación de vectore para productos automáticamente (tomará unos momentos):
python populate_synthetic_db.py
La base de datos de SQLite estará en E-Commerce-LLM-Based-Recommendation-System/db/sqlite_storage/main.db y QDRANT almacenarán las integridades de vectores como colecciones en E-Commerce-LLM-Based-Recommendation-System/db/qdrant_storage .
Abra el ajuste fino.ipynb en el código VS y seleccione el entorno virtual generado anteriormente .venv como el núcleo. Luego, ejecute cada celda del cuaderno que finalmente generará un conjunto de datos CSV para un ajuste fino, sintonice el modelo Google FLAN-T5 LLM y guardará el modelo ajustado localmente para generar recomendaciones.
El nombre de LLM junto con información y rutas similares se establecen en constants.py. Puede elegir mantener LLM_NAME en cualquiera de: "Google/Flan-T5-Small", "Google/Flan-T5-Base", "Google/Flan-T5-Large", "Google/Flan-T5-XL" o "Google/Flan-T5-XXL". Para la información del modelo, visite: https://huggingface.co/docs/transformers/en/model_doc/flan-t5
Run.py ya ha creado la funcionalidad para ejecutar Fastapi Server con UVICORN. Entonces, ejecute el comando:
python run.py
Espere un tiempo hasta que el servidor esté completamente cargado, luego para probar las API vaya a: http://127.0.0.1:8000/docs. Hay 4 API para buscar productos, recomendar el producto a un cliente, almacenar comentarios de recomendación y monitorear el rendimiento de la recomendación. Explore las API junto con la base de datos: E-Commerce-LLM-Based-Recommendation-System/db/sqlite_storage/main.db para ID de entidades y cómo las API gestionan la base de datos.
Puede modificar run.py y sql_db.py para agregar puntos finales para realizar operaciones CRUD en todos los modelos detallados en sql_models.py para hacer un servidor con pleno derecho.