Сохраняет данные электронной коммерции (перейдите в SQL_Models.py для подробной схемы) в базе данных SQLite с использованием SQLModel (основной компонент SQL IS SQL_DB.PY). Всякий раз, когда продукт вставляется в базу данных с использованием SQL_DB.PY, его соответствующий текстовый вектор продукта вместе с идентификатором продукта (для поиска продукта) автоматически хранится в базе данных Qdrant Vector. FASTAPI Server Run.py использует SQL_DB.PY для извлечения и вставки данных в базу данных, а компонент LLM LLM.Py использует SQL_DB.PY для генерации запросов и генерации наборов CSV для тонкой настройки Google FLAN-T5 (перейдите к Fine-Tuning.ipynb).
Git в вашу систему.Python 3 в вашей системе.Docker Desktop (для шланга Qdrant Server). Страница загрузки: здесьcuda в вашу систему для тонкой настройки LLM. Узнайте, какая последняя версия CUDA, которую Pytorch поддерживает по адресу: pytorch.org и установите эту версию CUDA. Пожалуйста, обратитесь к руководству по установке CUDAS для пошагового руководства для установки.Убедитесь, что GIT установлен в вашей системе. Затем откройте терминал и введите:
git clone https://github.com/abhash-rai/E-Commerce-LLM-Based-Recommendation-System.git
Открытый каталог проектов:
cd E-Commerce-LLM-Based-Recommendation-System
Зайдите в замешательство на full path к каталогу проекта, как это потребуется на шаге 2.
Установите Docker Desktop и проверьте установку Docker:
docker --version
Если вы получите версию Docker и создаете текст, введите (убедитесь, что Docker Desktop открыт и работает в вашей системе):
docker pull qdrant/qdrant
Запустите Qdrant Server на Docker с командой ниже, но замените <PathToLocalRepo> часть на full path каталога проекта, отмеченный на step 1 . Пример <PathToLocalRepo> был бы чем-то вроде «d:/temp/e-commerce-llm-резокрементная система».
docker run -d --name qdrant -p 6333:6333 -v <PathToLocalRepo>/db/qdrant_storage:/qdrant/storage qdrant/qdrant
Установите библиотеку virtualenv с помощью PIP:
pip install virtualenv
Я обнаружил, что Python3.12 хорошо работает вместе с необходимыми зависимостями, поэтому создайте виртуальную среду с именем .venv с той же версией Python:
virtualenv -p python3.12 .venv
Активировать виртуальную среду:
.venvScriptsactivate
Установить зависимости:
pip install -r requirements.txt
Окончательная зависимость для установки - это Pytorch. Перед этим убедитесь, что вы знаете свою системную ОС и установили версию CUDAS. Вы можете проверить установленную версию CUDAS, введя:
nvcc --version
Узнайте, какие версии CUDA, которые Pytorch поддерживает по адресу: pytorch.org, и посмотрите, является ли одна из этих версий, которую вы установили в своей системе. Если нет совпадения, вам нужно переустановить CUDA в версию, которую поддерживает Pytorch.
Перейдите на тот же сайт pytorch.org и прокрутите вниз, чтобы вниз, чтобы «установить Pytorch» и выберите соответствующие параметры, чтобы получить команду установки Pytorch для вашей системы. Для моей ОС Windows с командой CUDA 12.4 была (ваша может отличаться в соответствии с вашей системой):
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
Наконец, установите:
pip install transformers[torch]
Вы можете начать экспериментировать с синтетическими данными, которые не требуются, но рекомендуется для проборов. Чтобы заполнить синтетические данные, запускаемые ниже команды, которая автоматически создаст базу данных SQLite и Vectore для продуктов (займет несколько минут):
python populate_synthetic_db.py
База данных SQLITE будет находиться на E-Commerce-LLM-Based-Recommendation-System/db/sqlite_storage/main.db и Qdrant будет хранить векторные встроенные в качестве коллекций в E-Commerce-LLM-Based-Recommendation-System/db/qdrant_storage .
Откройте Fine-Tuning.ipynb в коде VS и выберите ранее сгенерированную виртуальную среду .venv в качестве ядра. Затем запустите каждую ячейку ноутбука, которая в конечном итоге будет генерировать набор данных CSV для тонкой настройки, настроить модель Google FLAN-T5 LLM и сохранить тонкую настроенную модель локально для получения рекомендаций.
Имя LLM вместе с аналогичной информацией и путями установлены в constants.py. Вы можете поддерживать LLM_NAME в любом из: «Google/Flan-T5-Small», «Google/Flan-T5-Base», «Google/Flan-T5-Large», «Google/Flan-T5-XL» или «Google/Flan-T5-XXL». Для получения информации о модели перейдите по адресу: https://huggingface.co/docs/transformers/en/model_doc/flan-t5
run.py уже создал функциональность для запуска сервера Fastapi с помощью Uvicorn. Итак, запустите команду:
python run.py
Подождите некоторое время, пока сервер не будет полностью загружен, затем попробовать API, перейдите по адресу: http://127.0.0.1:8000/docs. Существует 4 API для поиска продуктов, рекомендующих продукт клиенту, хранение рекомендаций и рекомендации по мониторингу. Исследуйте APIS вместе с базой данных: E-Commerce-LLM-Based-Recommendation-System/db/sqlite_storage/main.db для идентификатора объектов и того, как API управляют базой данных.
Вы можете изменить run.py и sql_db.py, чтобы добавить конечные точки для выполнения операций CRUD на каждом моделях, подробно описанных в sql_models.py, чтобы создать полный сервер.