เก็บข้อมูลอีคอมเมิร์ซ (ไปที่ SQL_MODELS.py สำหรับสคีมาโดยละเอียด) ในฐานข้อมูล SQLite โดยใช้ SQLModel (ส่วนประกอบ SQL หลักคือ SQL_DB.PY) เมื่อใดก็ตามที่ผลิตภัณฑ์ถูกแทรกลงในฐานข้อมูลโดยใช้ SQL_DB.PY การฝังเวกเตอร์ข้อความผลิตภัณฑ์ที่สอดคล้องกันพร้อมกับรหัสผลิตภัณฑ์ (สำหรับการค้นหาผลิตภัณฑ์) จะถูกจัดเก็บโดยอัตโนมัติในฐานข้อมูลเวกเตอร์ QDRANT Fastapi Server Run.py ใช้ SQL_DB.py สำหรับการดึงและแทรกข้อมูลลงในฐานข้อมูลและส่วนประกอบ LLM LLM.py ใช้ SQL_DB.py สำหรับการสร้างแบบสอบถามและการสร้างชุดข้อมูล CSV สำหรับการปรับแต่งของ Google FLAN-T5
Git ในระบบของคุณPython 3 ในระบบของคุณDocker Desktop (สำหรับการซ่อนเซิร์ฟเวอร์ Qdrant) ที่ติดตั้งในระบบของคุณ หน้าดาวน์โหลด: ที่นี่cuda ในระบบของคุณสำหรับการปรับแต่ง LLM ค้นหาว่า Cuda เวอร์ชันล่าสุดที่ Pytorch รองรับได้ที่: pytorch.org และติดตั้ง Cuda เวอร์ชันนั้น โปรดดูคู่มือการติดตั้ง CUDAS สำหรับคู่มือทีละขั้นตอนสำหรับการติดตั้งตรวจสอบให้แน่ใจว่า Git ติดตั้งในระบบของคุณ จากนั้นเปิดเทอร์มินัลและป้อน:
git clone https://github.com/abhash-rai/E-Commerce-LLM-Based-Recommendation-System.git
Open Project Directory:
cd E-Commerce-LLM-Based-Recommendation-System
จดบันทึก full path ไปยังไดเรกทอรีโครงการตามที่จำเป็นในขั้นตอนที่ 2
ติดตั้ง Docker Desktop และตรวจสอบการติดตั้ง Docker:
docker --version
หากคุณได้รับเวอร์ชัน Docker และสร้างข้อความจากนั้นให้ป้อน (ตรวจสอบให้แน่ใจว่า Docker Desktop เปิดและทำงานในระบบของคุณ):
docker pull qdrant/qdrant
เรียกใช้เซิร์ฟเวอร์ QDRANT บน Docker ด้วยคำสั่งด้านล่าง แต่แทนที่ <PathToLocalRepo> ส่วนด้วย full path ของไดเรกทอรีโครงการที่ระบุไว้ใน step 1 ตัวอย่าง <PathToLocalRepo> จะเป็นเช่น 'd:/temp/e-commerce-lll-recommendation-system'
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 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 จะจัดเก็บการฝังตัวของเวกเตอร์เป็นคอลเลกชันที่ E-Commerce-LLM-Based-Recommendation-System/db/qdrant_storage
เปิดการปรับแต่ง. IPYNB ในรหัส VS และเลือกสภาพแวดล้อมเสมือนจริงที่สร้างขึ้นก่อนหน้านี้ .venv เป็นเคอร์เนล จากนั้นเรียกใช้แต่ละเซลล์ของโน้ตบุ๊กซึ่งในที่สุดจะสร้างชุดข้อมูล CSV สำหรับการปรับแต่งอย่างละเอียดปรับรุ่น Google FLAN-T5 LLM และบันทึกโมเดลที่ปรับแต่งอย่างละเอียดไว้ในเครื่องสำหรับการสร้างคำแนะนำ
ชื่อ LLM พร้อมกับข้อมูลและเส้นทางที่คล้ายกันถูกตั้งค่าในค่าคงที่ 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
รอสักครู่จนกว่าเซิร์ฟเวอร์จะถูกโหลดอย่างเต็มที่จากนั้นลองใช้ APIs ไปที่: http://127.0.0.1:8000/docs มี 4 API สำหรับการค้นหาผลิตภัณฑ์แนะนำผลิตภัณฑ์ให้กับลูกค้าจัดเก็บข้อเสนอแนะคำแนะนำและประสิทธิภาพการแนะนำการตรวจสอบ สำรวจ APIs พร้อมกับฐานข้อมูล: E-Commerce-LLM-Based-Recommendation-System/db/sqlite_storage/main.db สำหรับ id ของเอนทิตีและวิธีการจัดการฐานข้อมูล APIs
คุณสามารถแก้ไข run.py และ sql_db.py เพื่อเพิ่มจุดสิ้นสุดเพื่อดำเนินการ CRUD ในทุกรุ่นที่มีรายละเอียดใน sql_models.py เพื่อสร้างเซิร์ฟเวอร์ที่เต็มเปี่ยม