使用SQLModel(主SQL Component是SQL_DB.PY)存储电子商务数据(转到SQL_Models.py获取详细架构)。每当使用sql_db.py插入产品时,其相应的产品文本向量嵌入与产品ID(用于产品搜索)(用于产品搜索)会自动存储在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 (用于HOSIDER QDRANT服务器)。下载页面:此处cuda才能进行LLM微调。找出Pytorch支持的CUDA最新版本,请访问: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桌面并检查Docker安装:
docker --version
如果您获得Docker版本并构建文本,请输入(确保Docker桌面打开并在系统中运行):
docker pull qdrant/qdrant
使用以下命令在Docker上运行QDRANT服务器,但用step 1中指出的项目目录的full path替换<PathToLocalRepo>部分。示例<PathToLocalRepo>将是'd:/temp/e-commerce-llm基于s-commendation-system'。
docker run -d --name qdrant -p 6333:6333 -v <PathToLocalRepo>/db/qdrant_storage:/qdrant/storage qdrant/qdrant
使用PIP安装virtualenv库:
pip install virtualenv
我发现python3.12与所需的依赖关系一起运行良好,因此创建名为.venv的虚拟环境,具有相同的python版本:
virtualenv -p python3.12 .venv
激活虚拟环境:
.venvScriptsactivate
安装依赖项:
pip install -r requirements.txt
安装的最终依赖性是Pytorch。在此之前,请确保您知道系统操作系统并安装了CUDAS版本。您可以通过输入来检查安装的CUDAS版本:
nvcc --version
找出Pytorch支持的CUDA的版本:pytorch.org,看看其中一个版本是否是您在系统上安装的版本。如果没有匹配,则需要将CUDA重新安装到Pytorch支持的版本。
转到同一pytorch.org站点,然后向下滚动到“安装pytorch”部分,然后选择相关选项以获取系统的Pytorch安装命令。对于我的Windows OS,带有CUDA 12.4命令(根据您的系统可能有所不同):
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
最后,安装:
pip install transformers[torch]
您可以开始尝试合成数据,但建议进行尝试。要填充命令下方运行的合成数据,该命令将自动创建SQLITE数据库和Vectore Collection(将花一些时间):
python populate_synthetic_db.py
SQLITE数据库将在E-Commerce-LLM-Based-Recommendation-System/db/sqlite_storage/main.db和qdrant上存储矢量嵌入式作为集合作为eCollections E-Commerce-LLM-Based-Recommendation-System/db/qdrant_storage 。
在VS代码中打开fine-tuning.ipynb,然后选择先前生成的虚拟环境.venv作为内核。然后,运行笔记本的每个单元格,该单元将最终生成用于微调的CSV数据集,调整Google FLAN-T5 LLM型号,并在本地保存微调模型以生成建议。
llm名称以及类似的信息和路径在常数中设置。您可以选择将llm_name保留到任何一个:“ Google/Flan-T5-SMALL”,“ Google/Flan-T5-base”,“ Google/Flan-T5-Large”,“ Google/Google/Flan-T5-Xl”或“ Google/Flan-T5-XL”或“ Google/Flan-T5-XXL”。有关模型信息,请访问:https://huggingface.co/docs/transformers/en/model_doc/flan-t5
run.py已经在使用Uvicorn运行FastApi服务器已经内置功能。因此,运行命令:
python run.py
等待一段时间,直到服务器满载,然后尝试API,转到:http://127.0.0.1.1:8000/docs。有4个用于搜索产品的API,向客户推荐产品,存储建议反馈以及监视建议性能。与数据库一起探索API: E-Commerce-LLM-Based-Recommendation-System/db/sqlite_storage/main.db用于实体ID以及API的管理数据库。
您可以修改run.py和sql_db.py来添加端点以在sql_models.py中详细详细介绍的每个型号上执行CRUD操作,以制造完整的fleded服务器。