Menyimpan data e-commerce (buka sql_models.py untuk skema terperinci) dalam database sqlite menggunakan sqlmodel (komponen sql utama adalah sql_db.py). Setiap kali suatu produk dimasukkan ke dalam basis data menggunakan sql_db.py, embedding vektor teks produk yang sesuai bersama dengan ID produk (untuk pencarian produk) disimpan secara otomatis dalam database vektor qdrant. FastAPI Server run.py menggunakan sql_db.py untuk mengambil dan memasukkan data ke dalam basis data dan komponen LLM LLM.Py menggunakan sql_db.py untuk pembuatan kueri dan pembuatan dataset CSV untuk fine tuning Google FLAN-T5 (buka fine-tuning.ipynb).
Git di sistem Anda.Python 3 di sistem Anda.Docker Desktop (untuk Hosing Qdrant Server) yang diinstal pada sistem Anda. Halaman Unduh: Di Sinicuda di sistem Anda untuk fine tuning LLM. Cari tahu versi terbaru CUDA yang didukung Pytorch di: pytorch.org dan instal versi CUDA itu. Silakan merujuk ke Panduan Instalasi Cudas untuk panduan langkah demi langkah untuk instalasi.Pastikan Git diinstal pada sistem Anda. Kemudian, Terminal Buka dan Masuk:
git clone https://github.com/abhash-rai/E-Commerce-LLM-Based-Recommendation-System.git
Buka Direktori Proyek:
cd E-Commerce-LLM-Based-Recommendation-System
Perhatikan full path ke direktori proyek karena akan diperlukan pada langkah 2.
Instal Docker Desktop dan periksa instalasi Docker:
docker --version
Jika Anda mendapatkan versi Docker dan membuat teks lalu, masukkan (pastikan Docker Desktop terbuka dan berjalan di sistem Anda):
docker pull qdrant/qdrant
Jalankan Qdrant Server di Docker dengan perintah di bawah ini tetapi ganti bagian <PathToLocalRepo> dengan full path direktori proyek yang dicatat pada step 1 . Contoh <PathToLocalRepo> akan menjadi sesuatu seperti 'D:/Temp/E-Commerce-Llm-Based-System'.
docker run -d --name qdrant -p 6333:6333 -v <PathToLocalRepo>/db/qdrant_storage:/qdrant/storage qdrant/qdrant
Instal Pustaka virtualenv Menggunakan Pip:
pip install virtualenv
Saya menemukan Python3.12 bekerja dengan baik bersama dengan dependensi yang diperlukan sehingga buat lingkungan virtual bernama .venv dengan versi Python yang sama:
virtualenv -p python3.12 .venv
Aktifkan lingkungan virtual:
.venvScriptsactivate
Instal dependensi:
pip install -r requirements.txt
Ketergantungan akhir untuk menginstal adalah Pytorch. Sebelum itu pastikan Anda mengetahui OS sistem Anda dan menginstal versi Cudas. Anda dapat memeriksa versi Cudas yang diinstal dengan memasukkan:
nvcc --version
Cari tahu versi CUDA yang didukung Pytorch di: pytorch.org dan lihat apakah salah satu versi itu adalah yang Anda instal pada sistem Anda. Jika tidak ada yang cocok, Anda perlu menginstal ulang CUDA ke versi yang didukung Pytorch.
Pergi ke situs pytorch.org yang sama dan gulir ke bawah untuk menginstal bagian 'Pytorch' dan pilih opsi yang relevan untuk mendapatkan perintah instalasi Pytorch untuk sistem Anda. Untuk OS Windows saya dengan perintah CUDA 12.4 (milik Anda mungkin berbeda sesuai dengan sistem Anda):
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
Akhirnya, instal:
pip install transformers[torch]
Anda dapat mulai bereksperimen dengan data sintetis yang tidak diperlukan tetapi disarankan untuk mencoba. Untuk mengisi data sintetis di bawah perintah di bawah ini, yang akan membuat basis data sqlite dan koleksi vektor untuk produk secara otomatis (akan memakan waktu beberapa saat):
python populate_synthetic_db.py
Database SQLITE akan di E-Commerce-LLM-Based-Recommendation-System/db/sqlite_storage/main.db dan qdrant akan menyimpan embeddings vektor sebagai koleksi di E-Commerce-LLM-Based-Recommendation-System/db/qdrant_storage .
Buka fine-tuning.ipynb dalam kode VS dan pilih lingkungan virtual yang dihasilkan sebelumnya .venv sebagai kernel. Kemudian, jalankan setiap sel notebook yang pada akhirnya akan menghasilkan dataset CSV untuk fine tuning, selarahkan model Google FLAN-T5 LLM, dan simpan model yang disetel fine secara lokal untuk menghasilkan rekomendasi.
Nama LLM bersama dengan informasi dan jalur yang sama diatur dalam constants.py. Anda dapat memilih untuk menyimpan llm_name ke salah satu dari: "Google/flan-t5-small", "Google/flan-t5-base", "Google/Flan-T5-Large", "Google/Flan-T5-XL", atau "Google/Flan-T5-XXL". Untuk informasi model, kunjungi: https://huggingface.co/docs/transformers/en/model_doc/flan-t5
Run.py telah membangun fungsionalitas untuk menjalankan server FastAPI dengan Uvicorn. Jadi, jalankan perintah:
python run.py
Tunggu beberapa saat sampai server sepenuhnya dimuat, lalu untuk mencoba API pergi ke: http://127.0.0.1:8000/docs. Ada 4 API untuk mencari produk, merekomendasikan produk kepada pelanggan, menyimpan umpan balik rekomendasi, dan memantau kinerja rekomendasi. Jelajahi API bersama dengan database: E-Commerce-LLM-Based-Recommendation-System/db/sqlite_storage/main.db untuk id entitas dan bagaimana API mengelola database.
Anda dapat memodifikasi run.py dan sql_db.py untuk menambahkan titik akhir untuk melakukan operasi crud pada setiap model yang dirinci dalam sql_models.py untuk membuat server penuh.