Ứng dụng ChatGPT và RAG xây dựng trợ lý ảo trong thương mại điện tử
Trong thời đại công nghệ 4.0, thương mại điện tử phát triển dẫn đến việc hình thành các sản phẩm chăm sóc khách hàng và nâng cao hiệu quả kinh doanh, trong đó có trợ lý ảo.
Tóm tắt:
-Mục tiêu: Xây dựng trợ lý ảo trong thương mại điện tử (TMĐT) sử dụng ChatGPT và RAG để cải thiện trải nghiệm khách hàng.
-Kiến trúc: RAG: Truy xuất thông tin từ cơ sở dữ liệu; ChatGPT: Tạo câu trả lời dựa trên thông tin truy xuất; ChromaDB:
Lưu trữ và tìm kiếm dữ liệu.
-Công nghệ sử dụng: API: OpenAI, Hugging Face Transformers; Thư viện: Transformers, ChromaDB, OpenAI Python Client.
-Kết quả thử nghiệm: Trả lời nhanh, định dạng rõ ràng nhưng còn hạn chế về độ chính xác; Chi phí API cao.
-Hướng phát triển: Cải thiện chất lượng dữ liệu, tối ưu prompting; Giảm chi phí API, bổ sung tính năng gợi ý sản
phẩm; Tích hợp kiểm tra chất lượng câu trả lời.
Giới thiệu chung
Những năm gần đây, trợ lý ảo đã trở thành một phần không thể thiếu trong thương mại điện tử, đóng vai trò quan trọng trong việc cải thiện trải nghiệm người dùng và tối ưu hóa quy trình kinh doanh. Có nhiều cách để xây dựng trợ lý ảo, tùy thuộc vào mục đích sử dụng và mức độ phức tạp của hệ thống.
Các phương pháp phổ biến trong việc phát triển trợ lý ảo bao gồm sử dụng chatbot dựa trên quy tắc, áp dụng mô hình học máy truyền thống và tích hợp mô hình ngôn ngữ lớn (LLMs). Chatbot dựa trên quy tắc là hệ thống đơn giản, hoạt động dựa trên các kịch bản được lập trình sẵn, phù hợp cho các tác vụ cơ bản nhưng hạn chế trong xử lý ngôn ngữ tự nhiên và không thể trả lời các câu hỏi ngoài phạm vi kịch bản. [8] Trong khi đó, các trợ lý ảo sử dụng học máy truyền thống linh hoạt hơn nhờ vào khả năng huấn luyện mô hình để nhận dạng mẫu và phản hồi, nhưng vẫn gặp khó khăn với các truy vấn phức tạp hoặc đòi hỏi ngữ cảnh. [8]
Phương pháp tiên tiến nhất hiện nay là tích hợp mô hình ngôn ngữ lớn như ChatGPT, với khả năng xử lý ngôn ngữ tự nhiên, hiểu ngữ cảnh tốt, giao tiếp tự nhiên, xử lý đa dạng truy vấn và cung cấp phản hồi chi tiết, đặc biệt phù hợp với các ứng dụng thương mại điện tử hiện đại. [3][8]
Khi kết hợp với Retrieval-Augmented Generation (RAG), trợ lý ảo có thể mở rộng khả năng bằng cách truy xuất thông tin từ cơ sở dữ liệu hoặc các nguồn tài liệu bên ngoài. Phương pháp này không chỉ nâng cao độ chính xác của câu trả lời mà còn đảm bảo tính cập nhật của thông tin. [1][2]
Trong bài báo này, chúng tôi sẽ tập trung vào việc xây dựng trợ lý ảo dựa trên sự kết hợp giữa ChatGPT và RAG, một giải pháp tiên tiến và hiệu quả trong lĩnh vực thương mại điện tử. Trợ lý ảo này có khả năng hỗ trợ khách hàng tìm kiếm sản phẩm, trả lời câu hỏi, giải quyết các vấn đề liên quan đến đơn hàng, và cá nhân hóa trải nghiệm người dùng. Đồng thời, chúng tôi sẽ trình bày chi tiết về kiến trúc hệ thống, các công cụ sử dụng, và các phương pháp kiểm thử để đảm bảo hiệu năng và độ tin cậy của trợ lý ảo. [3]

Xây dựng trợ lý ảo
Kiến trúc tổng thể
Kiến trúc tổng thể của một trợ lý ảo kết hợp giữa ChatGPT và RAG (Retrieval- Augmented Generation) được mô tả như Hình 1.

Hệ thống truy xuất thông tin (Retrieval System): RAG sẽ truy xuất các tài liệu hoặc thông tin có liên quan từ cơ sở dữ liệu bên ngoài hoặc kho dữ liệu.
Mô hình tạo câu trả lời (Answer Generation):
ChatGPT hoặc mô hình ngôn ngữ tương tự sẽ được sử dụng để tạo câu trả lời dựa trên thông tin truy xuất được. [3]
Cơ sở dữ liệu (Database): Sử dụng ChromaDB.
Đây là nơi chứa các tài liệu, cơ sở dữ liệu, và thông tin mà hệ thống sẽ truy xuất.
API và thư viện
Để xây dựng trợ lý ảo kết hợp ChatGPT và RAG, chúng tôi sử dụng các API và thư viện sau: [3]
API
OpenAI API (ChatGPT): API này cung cấp các mô hình ngôn ngữ mạnh mẽ của OpenAI, như GPT-4, giúp tạo câu trả lời tự nhiên từ các đoạn văn bản. [3] Hugging Face Transformers API: Thư viện transformers từ Hugging Face cung cấp các mô hình như GPT, BERT, và các mô hình RAG để xử lý truy vấn và tạo câu trả lời. [5][7]
Thư viện
Transformers (Hugging Face): Cung cấp các mô hình ngôn ngữ tiên tiến, bao gồm GPT, BERT, và các mô hình cho RAG. Có thể sử dụng để triển khai mô hình tạo câu trả lời và truy xuất. [5][7]
ChromaDB: Dùng để chuyển đổi câu hỏi và tài liệu thành các vector nhúng (embeddings) để tính toán độ tương đồng và tìm kiếm thông tin. [6]
OpenAI Python Client: Thư viện này gọi API của OpenAI và tích hợp ChatGPT vào ứng dụng. [3]
Dữ liệu đào tạo
Bộ dữ liệu mà chúng tôi sử dụng trong dự án là các file PDF chứa thông tin sản phẩm của một cửa hàng thời trang. Các file PDF này cung cấp thông tin chi tiết về các sản phẩm được bán tại cửa hàng, bao gồm các yếu tố quan trọng giúp người dùng hiểu rõ về từng sản phẩm. Cấu trúc thông tin trong mỗi file PDF bao gồm:
Tên sản phẩm: Đây là tên gọi chính thức của sản phẩm, giúp người dùng nhận diện sản phẩm. Ví dụ: “Áo sơ mi nam”, “Quần jeans nữ”, “Váy dạ hội”, v.v.
Mã sản phẩm: Mỗi sản phẩm được gán một mã số duy nhất để dễ dàng phân biệt và tìm kiếm trong kho hàng. Ví dụ: “SM12345”, “JN9876”, v.v.
Giá sản phẩm: Mỗi sản phẩm có giá bán cụ thể, giúp người dùng biết được mức giá của sản phẩm khi mua. Ví dụ: “500.000 VND”, “750.000 VND”, v.v.
Mô tả sản phẩm: Thông tin chi tiết về sản phẩm, bao gồm chất liệu, kiểu dáng, màu sắc, kích cỡ, và các đặc điểm nổi bật. Ví dụ: “Áo sơ mi nam làm từ vải cotton cao cấp, màu trắng, có size M, L, XL.”
Hình ảnh sản phẩm: Một số PDF có thể đính kèm hình ảnh của sản phẩm, giúp người dùng dễ dàng hình dung về sản phẩm. Các hình ảnh này có thể được trích xuất và sử dụng để trực quan hóa sản phẩm trong hệ thống.
Kích thước và số lượng: Thông tin về các kích thước có sẵn của sản phẩm (như S, M, L, XL) và số lượng tồn kho cho từng kích thước. Điều này giúp người dùng biết được sự lựa chọn và tình trạng hàng hóa.
Chất liệu và bảo quản: Các hướng dẫn về chất liệu vải, cách bảo quản sản phẩm để giữ cho sản phẩm luôn trong tình trạng tốt nhất. Ví dụ: “Giặt tay, không sấy khô”, “Chất liệu vải len, tránh giặt máy.”
Thông tin khuyến mãi (nếu có): Các chương trình giảm giá hoặc khuyến mãi áp dụng cho sản phẩm, giúp khách hàng nhận được ưu đãi đặc biệt. Ví dụ: “Giảm 20% cho đơn hàng trên 1 triệu đồng.”
Đánh giá và nhận xét từ khách hàng: Một số sản phẩm có thể đi kèm với các nhận xét, đánh giá từ khách hàng đã mua và sử dụng sản phẩm, giúp khách hàng khác có thêm thông tin để đưa ra quyết định mua sắm.
Prompting
Trong quá trình phát triển và cải tiến trợ lý ảo của chúng tôi, kỹ thuật Prompting đã được áp dụng để điều chỉnh và tối ưu hóa câu trả lời đầu ra của mô hình ngôn ngữ. [4]
Khi người dùng đặt câu hỏi về sản phẩm (ví dụ: “Sản phẩm này có màu gì?”), chúng tôi đã điều chỉnh prompt để mô hình trả lời một cách chính xác hơn và theo đúng ngữ cảnh của câu hỏi. Ví dụ, thay vì chỉ hỏi “Màu sắc của sản phẩm là gì?”, prompt được điều chỉnh thành “Dựa trên thông tin sản phẩm, vui lòng cung cấp màu sắc của sản phẩm và các tùy chọn màu sắc có sẵn.”
Đối với các yêu cầu thông tin có tính chất tóm tắt hoặc chi tiết, chúng tôi đã điều chỉnh prompt để mô hình tạo ra câu trả lời theo yêu cầu của người dùng. Ví dụ, với câu hỏi “Mô tả sản phẩm này”, nếu người dùng muốn mô tả ngắn gọn, prompt sẽ yêu cầu “Cung cấp mô tả ngắn gọn về sản phẩm này” để mô hình chỉ đưa ra những thông tin quan trọng nhất.
Khi người dùng hỏi về các chương trình khuyến mãi hoặc giảm giá, prompt đã được thiết kế để yêu cầu mô hình không chỉ liệt kê các ưu đãi mà còn làm rõ các điều kiện áp dụng. Ví dụ, prompt có thể được điều chỉnh thành “Cung cấp thông tin chi tiết về các chương trình khuyến mãi hiện tại, bao gồm mức giảm giá và điều kiện áp dụng.”
Để các câu trả lời dễ hiểu và dễ đọc hơn, chúng tôi đã sử dụng prompting để yêu cầu mô hình trả lời dưới dạng liệt kê hoặc bảng. Ví dụ, thay vì trả lời thông tin theo dạng văn bản dài, prompt có thể yêu cầu “Vui lòng liệt kê các tính năng chính của sản phẩm này theo dạng bảng.”
Kết quả thử nghiệm
Sau một thời gian thử nghiệm và phát triển, chúng tôi đã xây dựng thành công một trợ lý ảo đơn giản phục vụ cho shop thời trang. Trợ lý ảo này được thiết kế với mục tiêu cung cấp thông tin nhanh chóng về các sản phẩm của cửa hàng, hỗ trợ người dùng tìm kiếm sản phẩm phù hợp, và cung cấp các gợi ý mua sắm.
Về cơ bản, trợ lý ảo đã trả lời được các câu hỏi của người dùng, tuy nhiên nếu câu hỏi không rõ ràng, điều này có thể gây nhiễu và trợ lý không thể đưa ra câu trả lời đúng.

Ngoài ra, chi phí để sử dụng API ChatGPT cũng khá cao trong trường hợp dùng đơn lẻ (khoảng 2,5 USD/1M token). [3]
Kết luận
Dưới đây là các đánh giá chi tiết về ưu điểm, nhược điểm và hướng phát triển trong tương lai của hệ thống trợ lý ảo này.
Ưu điểm:
Trả lời nhanh chóng: Trợ lý ảo có khả năng trả lời các câu hỏi của người dùng một cách nhanh chóng, nhờ vào việc truy xuất và xử lý thông tin từ các file PDF đã được cung cấp.
Định dạng câu trả lời rõ ràng: Các câu trả lời của trợ lý ảo được định dạng một cách rõ ràng và dễ hiểu. Mỗi thông tin về sản phẩm (tên, giá, mô tả, v.v.) được trình bày một cách có cấu trúc, giúp người dùng dễ dàng theo dõi và hiểu thông tin.
Nhược điểm:
Hạn chế về tính xác thực: Do dữ liệu đầu vào còn hạn chế, mô hình vẫn gặp khó khăn trong việc cung cấp câu trả lời chính xác và đầy đủ. Khi yêu cầu của người dùng vượt quá những thông tin có sẵn trong các file PDF, mô hình có thể tạo ra các câu trả lời không chính xác hoặc không liên quan đến câu hỏi.
Điều này làm giảm độ tin cậy của trợ lý ảo, đặc biệt là trong các tình huống mà thông tin chi tiết hoặc đặc biệt không có sẵn trong dữ liệu đầu vào.
Chi phí sử dụng API bên thứ ba: Trợ lý ảo hiện tại đang sử dụng các API của bên thứ ba để xử lý các tác vụ như phân tích ngữ nghĩa và tạo câu trả lời. Việc sử dụng API cũng làm tăng chi phí vận hành của hệ thống, đặc biệt là khi có nhiều câu hỏi từ người dùng hoặc khi mô hình cần xử lý một lượng lớn dữ liệu.
Hướng phát triển trong tương lai:
Để cải thiện hiệu quả và khả năng chính xác của trợ lý ảo, chúng tôi có một số hướng phát triển trong tương lai:
Gợi ý sản phẩm: Dựa trên các thông tin đầu vào từ người dùng, như sở thích, loại sản phẩm, hoặc nhu cầu cụ thể, trợ lý ảo có thể đưa ra các gợi ý sản phẩm phù hợp. Điều này không chỉ giúp người dùng tiết kiệm thời gian tìm kiếm mà còn có thể thúc đẩy việc mua sắm và cải thiện trải nghiệm khách hàng.
Tăng số lượng tài liệu đầu vào: Việc bổ sung thêm các tài liệu sản phẩm, mô tả chi tiết hơn, và các tài liệu liên quan khác sẽ giúp mô hình cung cấp thông tin chính xác hơn và tạo ra các câu trả lời có chất lượng cao hơn. Thêm vào đó, việc tích hợp các tài liệu từ nhiều nguồn khác nhau, chẳng hạn như bài đánh giá từ khách hàng, hướng dẫn sử dụng sản phẩm, hay các bài viết liên quan, sẽ làm phong phú thêm cơ sở dữ liệu của mô hình.
Tối ưu hóa kỹ thuật prompting: Kỹ thuật prompting sẽ được điều chỉnh và tối ưu hơn nữa để mô hình hiểu và đáp ứng các yêu cầu của người dùng một cách chính xác hơn. Các prompt sẽ được điều chỉnh để yêu cầu mô hình cung cấp thông tin rõ ràng và dễ hiểu hơn, đồng thời hạn chế khả năng tạo ra các câu trả lời không liên quan.
Xây dựng các chức năng kiểm tra câu trả lời: Việc này có thể được thực hiện thông qua việc xây dựng các hệ thống đánh giá chất lượng câu trả lời tự động, dựa trên các tiêu chí như tính đầy đủ, độ chính xác, và sự liên quan đến câu hỏi. Chúng tôi cũng sẽ nghiên cứu và áp dụng các phương pháp học máy để cải thiện khả năng tự học của mô hình, giúp mô hình ngày càng thông minh và chính xác hơn theo thời gian.
Giảm chi phí sử dụng API bên thứ ba: Trong tương lai, chúng tôi sẽ tìm cách tối ưu hóa chi phí liên quan đến việc sử dụng API của bên thứ ba. Một trong những cách để làm điều này là phát triển các mô hình tự xây dựng hoặc sử dụng các dịch vụ API thay thế có chi phí thấp hơn nhưng vẫn đảm bảo hiệu quả trong việc xử lý thông tin. Đồng thời, chúng tôi cũng sẽ nghiên cứu các giải pháp tiết kiệm chi phí khác mà vẫn đảm bảo chất lượng câu trả lời của trợ lý ảo.
Mặc dù trợ lý ảo hiện tại có những ưu điểm vượt trội trong việc cung cấp thông tin nhanh chóng nhưng cũng còn tồn tại một số hạn chế về tính chính xác và chi phí. Tuy nhiên, với các kế hoạch phát triển trong tương lai như tăng cường dữ liệu đầu vào, tối ưu hóa kỹ thuật prompting, và xây dựng các chức năng kiểm tra câu trả lời, chúng tôi tin rằng trợ lý ảo sẽ ngày càng hoàn thiện và trở thành một công cụ hữu ích hơn cho việc hỗ trợ khách hàng trong việc tìm kiếm và mua sắm sản phẩm.
Tài liệu tham khảo:
1. K2View. “What is RAG Chatbot?”, https://www.k2view.com/
blog/rag-chatbot/
2. NVIDIA Blog. “What is Retrieval- Augmented Generation?”,
https://blogs.nvidia.com/blog/what-is- retrieval-
augmented-generation/
3. OpenAI. “ChatGPT”, https://openai.com/index/chatgpt/
4. Huyen Chip. “GenAI Platform”, https://huyenchip.
com/2024/07/25/genai- platform.html
5. LlamaIndex Documentation. “Response Synthesis
Examples”, https://docs.llamaindex.ai/en/stable/examp les/
low_level/response_synthesis/
6. Chroma. “Try Chroma” Retrieved from https://www.
trychroma.com/
7. Xusen Lin. “API for Open LLM”, https://github.com/
xusenlinzy/api-for- open-llm
8. Marc Caballé, “Rule-Based Chatbots vs. AI Chatbots: Key
Differences”, https://www.hubtype.com/blog/rule-based-
chatbots-vs-ai-chatbots
9. Nguyễn Quang Hưng, Lê Minh Duy, “Sử dụng Few-Shot
Learning để xây dựng Chain-of-Thought tự động không
giám sát,” Hội thảo quốc gia lần thứ XXVII:
Một số vấn đề chọn lọc của Công nghệ thông tin và truyền
thông, Nha Trang, 11- 12/10/2024.
(Bài viết đăng ấn phẩm in Tạp chí TT&TT số 3 tháng 3/2024)