Bối cảnh và vấn đề nghiên cứu

Thị trường cà phê đang có xu hướng phát triển mạnh mẽ trên phạm vi toàn cầu cũng như tại Việt Nam. Đặc biệt, sau giai đoạn biến động của đại dịch Covid-19, thói quen tiêu dùng đã có sự dịch chuyển rõ rệt sang hình thức mua sắm trực tuyến, kéo theo nhu cầu tiêu thụ các sản phẩm cà phê đóng gói và cà phê bột tăng cao. Xu hướng này đặt ra yêu cầu cấp thiết về việc xây dựng các nền tảng thương mại điện tử chuyên biệt, giúp người tiêu dùng thuận tiện trong việc tra cứu nguồn gốc, hương vị, giá thành và thanh toán trực tuyến, đồng thời hỗ trợ doanh nghiệp quản lý vận hành mượt mà, chính xác về sản phẩm và doanh thu.

Khóa luận tốt nghiệp của sinh viên Võ Văn Đức và Ôn Gia Phú (ngành Công nghệ Thông tin, chuyên ngành Công nghệ Phần mềm, Trường Đại học Sư phạm Kỹ thuật TP.HCM) thực hiện đề tài nhằm giải quyết các nhiệm vụ và mục tiêu nghiên cứu cụ thể:

  1. Xây dựng một website thương mại điện tử chuyên kinh doanh cà phê với đầy đủ các phân hệ chức năng: quản lý danh mục, sản phẩm, khách hàng, nhân viên, giỏ hàng, đặt hàng và quản lý doanh thu.
  2. Tích hợp các dịch vụ bên thứ ba bao gồm API tính phí vận chuyển từ Giao Hàng Nhanh Express và các cổng thanh toán trực tuyến (ví điện tử MoMo, cổng thanh toán VNPAY).
  3. Tích hợp hệ thống gợi ý sản phẩm (Recommendation System) cá nhân hóa cho người dùng dựa trên thuật toán học máy.
  4. Tích hợp Chatbot AI hỗ trợ giải đáp và tra cứu thông tin sản phẩm theo thời gian thực dựa trên mô hình ngôn ngữ lớn (LLM).
  5. Thiết lập quy trình tự động hóa tích hợp và triển khai liên tục (CI/CD) nhằm tối ưu hóa quá trình kiểm thử, triển khai và bảo trì hệ thống.

Về đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Hành vi của khách hàng tiêu thụ cà phê (mặt hàng, hương vị, nguồn gốc, thương hiệu, hình thức thanh toán); quy trình quản trị doanh nghiệp bán lẻ cà phê trực tuyến; phương thức tích hợp thanh toán và vận chuyển điện tử.
  • Phạm vi nghiên cứu: Xây dựng hệ thống phần mềm web bán lẻ cà phê và trang quản trị; dữ liệu khảo sát từ các cửa hàng trực tuyến (sieuthicafe.vn, trungnguyenecoffee.com, caphenguyenchat.vn).
  • Thời gian và kinh phí thực hiện: Đề tài được thực hiện bởi Nhóm 60 trong 6 tháng (từ ngày 08/01/2024 đến ngày 01/07/2024) với tổng kinh phí là 1.500.000 VNĐ.

Cơ sở lý thuyết và phương pháp

Khóa luận kết hợp nền tảng công nghệ phát triển phần mềm hiện đại và các thuật toán trí tuệ nhân tạo để giải quyết bài toán thương mại điện tử.

1. Khung công nghệ và kiến trúc nền tảng

  • Spring Boot (Java Backend): Framework mã nguồn mở cấp doanh nghiệp (enterprise-level), hỗ trợ cơ chế tự động cấu hình (Auto-configuration), tích hợp sẵn các web server nhúng (Tomcat, Jetty, Undertow) và cung cấp các module Spring Boot Starter giúp đóng gói ứng dụng độc lập, phù hợp với kiến trúc microservices.
  • Angular (Frontend): Framework xây dựng giao diện động dựa trên TypeScript, áp dụng cơ chế liên kết dữ liệu hai chiều (Two-Way Data Binding), kiến trúc hướng thành phần (Component-based), Dependency Injection cùng thư viện RxJS/Observables phục vụ xử lý bất đồng bộ.
  • Structured Query Language (SQL): Hệ quản trị cơ sở dữ liệu quan hệ được sử dụng để quản lý dữ liệu có cấu trúc thông qua các tập lệnh DQL (Data Query Language), DDL (Data Definition Language) và DML (Data Manipulation Language).

2. Thuật toán gợi ý sản phẩm (Recommendation System)

Tác giả đã tiến hành đánh giá ba hướng tiếp cận chính trong hệ thống gợi ý trước khi lựa chọn:

Thuật toán Đặc điểm tập dữ liệu Thời gian thực thi Tài nguyên tiêu thụ
Content-Based Filtering Dựa vào thông tin thuộc tính sản phẩm Tương đối nhanh, cần cập nhật hồ sơ người dùng liên tục Không quá lớn
Collaborative Filtering Dựa vào hành vi tương tác và đánh giá của người dùng Phụ thuộc kích thước dữ liệu, quét ma trận tương tác Tiêu tốn tài nguyên xử lý ma trận thưa
Hybrid Filtering Kết hợp thông tin sản phẩm và hành vi người dùng Tăng cao do tính toán phức tạp Yêu cầu tài nguyên và công nghệ tiên tiến

Do tập dữ liệu của hệ thống tập trung vào đánh giá sản phẩm (ratings) của người dùng, không quản lý lịch sử tìm kiếm và các thuộc tính sản phẩm (khối lượng, loại, hương vị, nguồn gốc) có miền giá trị hẹp, tác giả chọn phương pháp Lọc cộng tác (Collaborative Filtering).

Khi so sánh giữa các thuật toán Matrix Factorization (SVD, NMF) và K-Nearest Neighbors (KNN), thuật toán KNNBasic từ thư viện Surprise (Python) được lựa chọn do tập dữ liệu thử nghiệm có quy mô nhỏ (dưới 400 dòng), không xuất hiện tình trạng ma trận quá thưa và xu hướng đánh giá của người dùng có tính đồng nhất cao (thích: 4–5 sao, không thích: 1–2 sao). Mô hình được tối ưu hóa siêu tham số bằng kỹ thuật GridSearchCV và đánh giá sai số thông qua kiểm định chéo K-fold với chỉ số RMSE (Root Mean Square Error), kết hợp các độ đo khoảng cách/tương đồng: Cosine, Pearson và MSD (Mean Squared Difference).

3. Trí tuệ nhân tạo và mô hình ngôn ngữ lớn (Chatbot AI)

Tác giả đã tiến hành thử nghiệm so sánh giữa mô hình cục bộ và mô hình dịch vụ đám mây:

Tiêu chí Hugging Face (ggml-vistral-7B-chat-q4_0.gguf) OpenAI LLM (gpt-3.5-turbo-0125)
Số lượng tham số 7 tỷ tham số 175 tỷ tham số
Tốc độ thực thi Chậm khi chạy trên phần cứng thử nghiệm Nhanh, phụ thuộc độ trễ máy chủ
Độ chính xác truy vấn Chưa cao, thường xuyên sinh sai câu lệnh SQL Độ chính xác cao trong việc sinh cú pháp SQL
Yêu cầu tài nguyên Tốn dung lượng GPU lớn, phức tạp khi triển khai Sử dụng qua API, chi phí vận hành 20 USD/tháng

Dựa trên kết quả thử nghiệm, tác giả lựa chọn API mô hình gpt-3.5-turbo-0125 của OpenAI kết hợp cùng thư viện LangChain để xây dựng Chatbot dạng SQL Agent. Hệ thống sử dụng công cụ nhúng vector OpenAiEmbedding, cơ sở dữ liệu vector Chroma và bộ công cụ SQLDatabaseToolkit để tự động chuyển đổi câu hỏi ngôn ngữ tự nhiên thành câu lệnh truy vấn SQL, thực thi trên cơ sở dữ liệu quan hệ và diễn giải kết quả trả về cho khách hàng.

Thiết kế và triển khai

1. Phân quyền tác nhân (Actors)

Hệ thống phân chia quyền hạn rõ ràng cho 4 nhóm tác nhân thông qua sơ đồ Use Case:

Nhóm tác nhân Mô tả vai trò Quyền hạn chính trong hệ thống
Guest Khách vãng lai chưa có tài khoản Tìm kiếm, xem danh mục/chi tiết sản phẩm, quản lý giỏ hàng tạm, quản lý danh sách yêu thích, trò chuyện cùng Chatbot AI, đăng ký tài khoản.
User Khách hàng đã đăng nhập Kế thừa toàn bộ quyền Guest; quản lý hồ sơ, đổi mật khẩu, bình luận/đánh giá sản phẩm, đặt hàng, thanh toán qua MoMo/VNPAY, xem lịch sử và chi tiết đơn hàng, hủy đơn, xem danh sách gợi ý cá nhân hóa.
Employee Nhân viên cửa hàng Kế thừa quyền User; quản lý thông tin sản phẩm, chi tiết sản phẩm, danh mục, thương hiệu, hương vị, nguồn gốc, hình ảnh, nhà cung cấp, thông tin khách hàng, xem báo cáo doanh thu.
Admin Quản trị viên hệ thống Kế thừa toàn bộ quyền Employee; quản lý tài khoản nhân viên, cấp và thu hồi quyền truy cập hệ thống.

2. Thiết kế cơ sở dữ liệu (Database Design)

Cơ sở dữ liệu quan hệ được thiết kế chuẩn hóa gồm 19 bảng thực thể chính:

  • Nhóm người dùng & phân quyền: user, employee.
  • Nhóm danh mục & thuộc tính cà phê: category, brand, flavor, product_origin, vendor.
  • Nhóm sản phẩm: product, product_detail, product_image, sale, review.
  • Nhóm giao dịch & đơn hàng: cart, cart_item, order, order_detail, invoice, shipping_method.
  • Nhóm tiện ích: wishlist, wishlist_item.

3. Quy trình xử lý của SQL Agent Chatbot

Quy trình tự động hóa trả lời truy vấn của Chatbot AI diễn ra qua 6 bước:

  1. Người dùng nhập câu hỏi dạng ngôn ngữ tự nhiên vào giao diện Chatbot.
  2. Câu hỏi được tiền xử lý văn bản (loại bỏ dấu câu, chuyển chữ thường, Tokenization) và chuyển đổi thành vector đa chiều thông qua OpenAiEmbedding.
  3. Vector câu hỏi được gửi đến mô hình OpenAI LLM thông qua API của LangChain để phân tích ngữ nghĩa và tạo câu lệnh truy vấn SQL tương ứng.
  4. SQLDatabaseToolkit nhận câu truy vấn SQL và thực thi trực tiếp trên hệ quản trị cơ sở dữ liệu để trích xuất dữ liệu thô.
  5. Kết quả dữ liệu từ cơ sở dữ liệu được gửi ngược lại cho mô hình LLM để dịch sang ngôn ngữ tự nhiên thân thiện với người dùng.
  6. Hệ thống hiển thị câu trả lời hoàn chỉnh trên giao diện web.

4. Tự động hóa CI/CD và Kiểm thử phần mềm

  • CI/CD Pipeline: Sử dụng GitHub Actions để tự động hóa các công đoạn kiểm tra mã nguồn, build gói ứng dụng Java Spring Boot và triển khai lên môi trường máy chủ mỗi khi có thay đổi trên repository.
  • Unit Testing: Triển khai kiểm thử đơn vị (Unit Test) cho các module logic nghiệp vụ trọng yếu phía backend, bao gồm kiểm thử các Service và Repository quản lý: thương hiệu (brand), danh mục (category), hương vị (flavor) và thông tin chi tiết sản phẩm (product detail).

Nội dung chính theo từng chương

Phần Mở đầu

Trình bày tính cấp thiết của đề tài trong bối cảnh thương mại điện tử ngành hàng cà phê, xác định mục tiêu, đối tượng, phương pháp nghiên cứu và dự toán kinh phí. Tác giả tiến hành khảo sát thực tế 3 website thương mại điện tử gồm sieuthicafe.vn, trungnguyenecoffee.com và caphenguyenchat.vn.

Kết quả so sánh khảo sát được tác giả tổng hợp theo thang điểm:

Trang web khảo sát Giao diện bắt mắt, bố cục rõ ràng (Thang 10) Tốc độ tải trang (Thang 10) Độ thân thiện, dễ sử dụng (Thang 10) Xếp hạng tổng thể
sieuthicafe.vn 8.5 8.0 7.0 Hạng 3
trungnguyenecoffee.com 9.0 8.5 8.5 Hạng 1
caphenguyenchat.vn 8.0 8.5 8.0 Hạng 2

Chương 1: Cơ sở lý thuyết

Tập trung làm rõ cơ sở lý thuyết của kiến trúc Spring Boot, các đặc tính cốt lõi của Angular (TypeScript, Component, Two-way Binding), ngôn ngữ truy vấn cơ sở dữ liệu SQL. Đi sâu phân tích bài toán hệ thống đề xuất (Collaborative Filtering, KNNBasic, công thức khoảng cách, thư viện Surprise) và nguyên lý hoạt động của mô hình ngôn ngữ lớn (NLP, kỹ thuật Word/Document Embeddings, LangChain, cơ chế SQL Agent).

Chương 2: Yêu cầu người dùng

Xác định chi tiết các yêu cầu nghiệp vụ đối với từng đối tượng sử dụng (khách hàng, nhân viên, quản trị viên); đề xuất phương pháp tiếp cận thiết kế phần mềm và xác định danh mục sản phẩm bàn giao cuối cùng bao gồm mã nguồn frontend, backend, hệ thống AI và tài liệu thiết kế.

Chương 3: Phân tích hệ thống

Mô tả chi tiết 4 nhóm tác nhân (Actors) và bảng phân rã 22 chức năng hệ thống. Trình bày lược đồ Use Case tổng quát, Use Case phân quyền cho từng actor và đặc tả chi tiết 8 Use Case cốt lõi: Xem giỏ hàng, Thêm sản phẩm vào giỏ, Xóa sản phẩm khỏi giỏ, Đặt hàng, Thanh toán MoMo, Thanh toán VNPAY, Trò chuyện cùng Chatbot AI và Xem danh sách đề xuất. Đi kèm là các biểu đồ hoạt động (Activity Diagrams) và biểu đồ tuần tự (Sequence Diagrams) tương ứng.

Chương này cũng công bố kết quả thực nghiệm huấn luyện thuật toán KNNBasic trên tập dữ liệu đánh giá: sử dụng GridSearchCV để tìm tham số tối ưu $k$, tiến hành 30 lần đo giá trị RMSE tương ứng với 3 độ đo tương đồng: Cosine, Pearson và MSD.

Chương 4: Thiết kế hệ thống

Chi tiết hóa lược đồ quan hệ thực thể (ERD) với 19 bảng và biểu đồ lớp (Class Diagram). Trình bày thiết kế 13 màn hình giao diện chính (trang chủ, danh sách sản phẩm, chi tiết sản phẩm, giỏ hàng, đặt hàng, hồ sơ cá nhân, đăng nhập quản trị, báo cáo doanh thu, quản trị sản phẩm, chọn địa điểm và phí giao hàng, gợi ý sản phẩm, cửa sổ Chatbot AI). Mô tả kiến trúc luồng làm việc của CI/CD thông qua GitHub Actions cho backend Spring Boot.

Chương 5: Cài đặt và kiểm thử

Mô tả môi trường cài đặt thực tế của hệ thống và kết quả thực thi kiểm thử đơn vị (Unit Test) cho các thành phần quản lý danh mục, hương vị, thương hiệu và chi tiết sản phẩm, đảm bảo hệ thống vận hành đúng logic trước khi đóng gói triển khai.

Kết quả và đóng góp

Khóa luận đã hoàn thành các mục tiêu đề ra với những kết quả thực nghiệm cụ thể:

  1. Xây dựng hoàn chỉnh hệ thống thương mại điện tử full-stack: Tích hợp giao diện người dùng Angular với backend Spring Boot và cơ sở dữ liệu SQL 19 bảng thực thể; hỗ trợ 22 chức năng nghiệp vụ quản trị và mua sắm.
  2. Tích hợp thanh toán và logistics tự động: Kết nối thành công API Giao Hàng Nhanh Express để tự động tính toán phí vận chuyển dựa trên địa chỉ giao hàng; tích hợp thanh toán trực tuyến qua cả ví điện tử MoMo và cổng thanh toán VNPAY.
  3. Đánh giá thực nghiệm mô hình đề xuất KNN: Đã huấn luyện mô hình KNNBasic trên thư viện Surprise, so sánh hiệu năng của các hàm tính độ tương đồng qua 30 lần đo kiểm định chéo:
    • Độ đo MSD (Mean Squared Difference) và Cosine cho chỉ số sai số RMSE ổn định và tối ưu hơn so với độ đo Pearson trên tập dữ liệu đánh giá cà phê.
  4. Ứng dụng thành công SQL Agent Chatbot: Tích hợp mô hình gpt-3.5-turbo-0125 của OpenAI qua LangChain, cho phép chuyển đổi ngôn ngữ tự nhiên sang SQL để truy xuất dữ liệu sản phẩm trong kho theo thời gian thực với độ chính xác cao.
  5. Thiết lập chu trình CI/CD: Áp dụng GitHub Actions tự động hóa quy trình kiểm thử đơn vị và triển khai backend Spring Boot.

Hạn chế và hướng nghiên cứu tiếp

Khóa luận ghi nhận các hạn chế kỹ thuật và phạm vi nghiên cứu thực tế:

  • Quy mô tập dữ liệu còn nhỏ: Dữ liệu thử nghiệm dùng cho mô hình gợi ý KNN có dung lượng dưới 400 dòng đánh giá, chưa phản ánh được toàn diện các kịch bản ma trận cực thưa trong môi trường thương mại điện tử quy mô lớn.
  • Chi phí và phụ thuộc dịch vụ ngoài: Việc duy trì Chatbot AI phụ thuộc vào gói cước API của OpenAI (20 USD/tháng) và độ trễ phản hồi đôi khi bị ảnh hưởng khi máy chủ OpenAI chịu tải cao.
  • Phạm vi nền tảng: Hệ thống mới chỉ tập trung triển khai trên nền tảng Web Application, chưa xây dựng ứng dụng di động (Mobile App) riêng biệt cho người dùng cuối.

Hướng mở rộng tiếp theo: Tiếp tục mở rộng tập dữ liệu người dùng thực tế, nghiên cứu tích hợp thêm các mô hình ngôn ngữ lớn mã nguồn mở có khả năng triển khai nội bộ để tối ưu chi phí, đồng thời phát triển phiên bản ứng dụng di động đa nền tảng.

Giá trị tham khảo

Báo cáo khóa luận có giá trị tham khảo chuyên môn đối với:

  • Sinh viên ngành Công nghệ thông tin và Kỹ thuật phần mềm: Là tài liệu tham khảo hoàn chỉnh về quy trình xây dựng đồ án thương mại điện tử từ khâu khảo sát, phân tích Use Case, thiết kế ERD/Class Diagram đến lập trình kết hợp Angular và Spring Boot.
  • Người nghiên cứu ứng dụng AI vào phần mềm: Cung cấp hướng dẫn thực tế về cách sử dụng thư viện Surprise để xây dựng hệ thống gợi ý bằng thuật toán KNN và kỹ thuật thiết lập SQL Agent với LangChain kết hợp OpenAI LLM để truy vấn trực tiếp cơ sở dữ liệu quan hệ.

Câu hỏi thường gặp

1. Vì sao nhóm tác giả lựa chọn phương pháp Lọc cộng tác (Collaborative Filtering) thay vì Lọc dựa trên nội dung (Content-Based) hay Lai (Hybrid)?
Do hệ thống không lưu trữ và quản lý lịch sử tìm kiếm chi tiết của người dùng, đồng thời các thuộc tính của sản phẩm cà phê (khối lượng, loại, hương vị, nguồn gốc, nhà sản xuất) có miền giá trị hẹp, không đủ đa dạng để phân lớp theo nội dung. Bên cạnh đó, ngân sách dự án (1.500.000 VNĐ) không đáp ứng được yêu cầu tài nguyên lớn của thuật toán Hybrid Filtering.

2. Thuật toán gợi ý nào được sử dụng và vì sao tác giả chọn KNNBasic thay vì KNNWithMeans hay KNNWithZScore?
Tác giả sử dụng thuật toán KNNBasic trong thư viện Surprise. Thuật toán này được chọn vì tập dữ liệu của hệ thống có quy mô nhỏ (dưới 400 dòng) và người dùng có xu hướng đánh giá tương đồng nhau (thích sản phẩm đánh giá 4–5 sao, không thích đánh giá 1–2 sao), không xuất hiện sự lệch chuẩn hay khắt khe cá nhân quá lớn để cần đến cơ chế trừ trung bình (WithMeans) hay chuẩn hóa z-score (WithZScore).

3. Cơ chế hoạt động của Chatbot AI SQL Agent trong hệ thống diễn ra như thế nào?
Người dùng nhập câu hỏi tự nhiên -> Hệ thống chuyển đổi thành vector qua OpenAiEmbedding -> Gửi đến OpenAI LLM qua API của LangChain để tạo ra câu truy vấn SQL -> SQLDatabaseToolkit thực thi câu lệnh SQL trên cơ sở dữ liệu -> Kết quả thô được gửi lại LLM để chuyển đổi thành câu trả lời ngôn ngữ tự nhiên -> Trả kết quả về cho người dùng.

4. Hệ thống tích hợp những cổng thanh toán và dịch vụ vận chuyển nào?
Hệ thống tích hợp hai hình thức thanh toán trực tuyến là ví điện tử MoMo và cổng thanh toán VNPAY, đồng thời kết nối trực tiếp với API của Giao Hàng Nhanh Express để tự động tính phí vận chuyển theo địa điểm giao hàng.

5. Nhóm tác giả đã tiến hành khảo sát và đánh giá những website thương mại điện tử nào trước khi thiết kế hệ thống?
Tác giả đã khảo sát 3 website kinh doanh cà phê thực tế gồm: sieuthicafe.vn (xếp hạng 3), caphenguyenchat.vn (xếp hạng 2) và trungnguyenecoffee.com (xếp hạng 1) dựa trên các tiêu chí về bố cục giao diện, tốc độ tải trang và độ thân thiện khi sử dụng.

Kết luận

Khóa luận tốt nghiệp của sinh viên Võ Văn Đức và Ôn Gia Phú đã xây dựng thành công hệ thống website thương mại điện tử chuyên kinh doanh cà phê với kiến trúc phân tầng chuẩn mực sử dụng Angular, Spring Boot và SQL. Điểm nổi bật của công trình là việc ứng dụng thực nghiệm giải thuật học máy KNNBasic thông qua thư viện Surprise cho phân hệ gợi ý sản phẩm và tích hợp thành công Chatbot SQL Agent dựa trên nền tảng LangChain kết hợp OpenAI LLM. Đồ án đáp ứng đầy đủ các yêu cầu nghiệp vụ quản trị, thanh toán và tự động hóa CI/CD, cung cấp nguồn tài liệu tham khảo chi tiết cho việc ứng dụng công nghệ phần mềm và trí tuệ nhân tạo vào lĩnh vực bán lẻ trực tuyến.