SQLModel을 사용하여 SQLITE 데이터베이스에서 전자 상거래 데이터 (세부 스키마의 경우 SQL_Models.py로 이동)를 저장합니다 (주 SQL 구성 요소는 SQL_DB.PY입니다). SQL_DB.PY를 사용하여 제품을 데이터베이스에 삽입 할 때마다 제품 ID (제품 검색 용)와 함께 해당 제품 텍스트 벡터 포함이 QDrant 벡터 데이터베이스에 자동으로 저장됩니다. 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 (Hosing Qdrant 서버의 경우)이 설치되어 있어야합니다. 다운로드 페이지 : 여기cuda 설치해야합니다. 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
2 단계에서 필요할 때 프로젝트 디렉토리의 full path 를 기록하십시오.
Docker Desktop을 설치하고 Docker 설치를 확인하십시오.
docker --version
Docker 버전을 얻고 텍스트를 빌드하면 입력하십시오 (Docker Desktop이 시스템에서 열리고 실행 중인지 확인하십시오).
docker pull qdrant/qdrant
아래 명령으로 docker에서 qdrant 서버를 실행하지만 <PathToLocalRepo> 부분을 step 1 에 언급 된 프로젝트 디렉토리의 full path 로 바꾸십시오. 예 <PathToLocalRepo> 는 'd :/temp/e- 커머스 -llm 기반 재무 시스템'과 같은 것입니다.
docker run -d --name qdrant -p 6333:6333 -v <PathToLocalRepo>/db/qdrant_storage:/qdrant/storage qdrant/qdrant
PIP를 사용하여 virtualenv 라이브러리를 설치하십시오.
pip install virtualenv
Python3.12가 필요한 종속성과 함께 잘 작동하므로 동일한 Python 버전으로 .venv 라는 가상 환경을 만듭니다.
virtualenv -p python3.12 .venv
가상 환경 활성화 :
.venvScriptsactivate
종속성 설치 :
pip install -r requirements.txt
설치의 최종 종속성은 Pytorch입니다. 그 전에 시스템 OS를 알고 Cudas 버전을 설치하십시오. 입력하여 설치된 CUDAS 버전을 확인할 수 있습니다.
nvcc --version
pytorch가 지원하는 Cuda 버전을 찾아서 pytorch.org에서 지원하는 버전을 확인하고 해당 버전 중 하나가 시스템에 설치 한 버전인지 확인하십시오. 일치가 없으면 Cuda가 Pytorch가 지원하는 버전으로 다시 설치해야합니다.
동일한 pytorch.org 사이트로 이동하여 아래로 스크롤하여 'Pytorch 설치'섹션으로 스크롤하고 관련 옵션을 선택하여 시스템에 대한 pytorch 설치 명령을 얻으십시오. CUDA 12.4 명령이있는 내 Windows OS의 경우 (시스템에 따라 다를 수 있음) :
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
마지막으로 설치 :
pip install transformers[torch]
필요하지 않지만 시험에 권장되는 합성 데이터 실험을 시작할 수 있습니다. 아래에 실행되는 합성 데이터를 채우려면 명령 아래로 실행되면 SQLITE 데이터베이스 및 제품 용 벡터 컬렉션을 자동으로 생성 할 수 있습니다 (잠시 시간이 걸립니다).
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 에서 컬렉션으로 저장합니다.
CODE에서 FINE-TUNING.IPYNB를 열고 이전에 생성 된 가상 환경 .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는 이미 Uvicorn을 사용하여 Fastapi 서버를 실행할 수있는 기능을 구축했습니다. 따라서 실행 명령 :
python run.py
서버가 완전히로드 될 때까지 잠시 기다렸다가 API를 시험해 보려면 http://127.0.1:8000/docs로 이동하십시오. 제품 검색에 대한 4 개의 API가 있으며, 고객에게 제품 권장, 추천 피드백 저장 및 추천 성능을 모니터링합니다. ENTITIE의 ID에 대해서는 ENTITIE의 ID 및 API가 데이터베이스를 관리하는 방법에 대해 E-Commerce-LLM-Based-Recommendation-System/db/sqlite_storage/main.db 데이터베이스와 함께 API를 탐색하십시오.
run.py 및 sql_db.py를 수정하여 sql_models.py에 자세히 설명 된 모든 모델에서 CRUD 작업을 수행하기 위해 엔드 포인트를 추가하여 완전한 연약한 서버를 만들 수 있습니다.