LỜI NÓI ĐẦUTrong thời đại số hóa ngày càng phát triển, việc kinh doanh trực tuyến đã trở thànhmột phần quan trọng của nền kinh tế và mang lại nhiều cơ hội kinh doanh tiềm năng.Cùng với s
GIỚI THIỆU ĐỀ TÀI
Tính cấp thiết của đề tài
Trong thời đại kỹ thuật số ngày càng phát triển, việc kinh doanh trực tuyến đã trở thành một phần quan trọng của nền kinh tế và mang lại nhiều cơ hội kinh doanh tiềm năng Cùng với sự tăng trưởng của ngành thú cưng khi ngày càng nhiều người nuôi thú cưng và cần các sản phẩm và dịch vụ liên quan đến chúng, việc xây dựng website cửa hàng thú cưng trực tuyến không chỉ là xu hướng mà còn là nhu cầu thiết yếu giúp tiếp cận một thị trường rộng lớn hơn và tạo nguồn thu nhập trực tuyến
Với mục tiêu xây dựng một trang web cửa hàng thú cưng hiện đại, đề tài này hướng đến việc mở ra một kênh tiếp cận khách hàng mới, mang lại cho khách hàng trải nghiệm mua sắm tiện lợi, nhanh chóng và an toàn, tăng cường khả năng cạnh tranh. Hơn nữa, website cung cấp một nền tảng để thu thập dữ liệu khách hàng, từ đó giúp cửa hàng hiểu rõ hơn về nhu cầu và hành vi mua sắm của họ, qua đó tối ưu hóa chiến lược kinh doanh và marketing. Để làm được các điều trên, ASP.NET Core với khả năng xử lý hiệu quả và bảo mật cao, là nền tảng lý tưởng cho việc xử lý dữ liệu và xây dựng chức năng cho website. Cùng với đó, ReactJS, công nghệ phát triển giao diện người dùng linh hoạt, giúp tạo ra một trải nghiệm người dùng mượt mà và hấp dẫn Kết hợp hai công nghệ này, chúng ta có thể phát triển một website cửa hàng thú cưng trực tuyến không chỉ đáp ứng tốt về mặt kỹ thuật mà còn thân thiện và dễ sử dụng cho khách hàng Tuy nhiên không dừng lại ở đó website còn là cơ hội để ứng dụng mô hình ngôn ngữ lớn vào nhằm thay thế các công việc hỗ trợ kỹ thuật truyền thống thành sử dụng trí tuệ nhân tạo, ngoài ra còn ứng dụng khả năng tạo sinh của LLM trong nhiệm vụ đưa ra sản phẩm phù hợp với sở thích người dùng
Khi hoàn thiện, sản phẩm dự kiến mang lại nhiều lợi ích như tạo điều kiện cho khách hàng tiếp cận sản phẩm mong muốn một cách dễ dàng hơn, đáp ứng nhu cầu tìm kiếm sự tiện lợi và đa dạng trong việc chăm sóc thú cưng của khách hàng, giúp tiếp cận khách hàng ở mọi nơi, mọi lúc, không giới hạn bởi địa lý hay thời gian và chứng minh được khả năng của mô hình ngôn ngữ lớn trong việc xây dựng trang web.
Đối tượng nghiên cứu
Đề tài này hướng đến đối tượng là người tiêu dùng quan tâm đến các thú cưng cũng như các sản phẩm liên quan Trong các đối tượng này tập trung vào nhóm người dùng chính là các chủ sở hữu thú cưng và những người yêu thích thú cưng, đi kèm theo là các chuyên gia chăm sóc thú cưng cũng như người dùng có yêu cầu đặc biệt ( ví dụ như khiếm thị , ).
Phạm vi nghiên cứu
Website chủ yếu tập trung vào việc xử lý các nghiệp vụ cơ bản và nâng cao của một website thương mại điện tử, cụ thể là cửa hàng thú cưng trực tuyến như: Xem danh sách các sản phẩm (thú cưng, thức ăn, phụ kiện, v.v.), thông tin chi tiết sản phẩm, thêm sản phẩm vào giỏ hàng cá nhân, tương tác và bình luận trên các sản phẩm có trên hệ thống, thanh toán online, lịch sử mua hàng, danh sách sản phẩm yêu thích, cũng như xây dựng một giao diện thân thiện với người dùng, cung cấp trải nghiệm sử dụng mượt mà và dễ dàng truy cập Về phần lõi xử lý, xây dựng đầy đủ các APIs để hỗ trợ cho phần hiển thị cuối cùng của website, đảm bảo rằng tất cả các chức năng từ hiển thị sản phẩm đến quản lý giỏ hàng và xử lý thanh toán đều được tích hợp mượt mà và hiệu quả Về phần ứng dụng khả năng của mô hình LLM, đưa ra được giải pháp và ứng dụng công nghệ trí tuệ nhân tạo vào website một cách ổn định và hiệu quả.
Mục tiêu đề tài
Đề tài cung cấp cơ hội để khám phá và áp dụng hai trong số những công nghệ phát triển web hàng đầu hiện nay, ASP.NET Core, ReactJS và LLM Điều này giúp mở rộng kiến thức về cách thức xây dựng một ứng dụng web hiện đại từ phía server (sử dụng ASP.NET Core) và phía client (sử dụng ReactJS) cũng như khả năng ứng dụng của trí tuệ nhân tạo (LLM). Ý nghĩa thực tiễn: Thị trường thú cưng đang phát triển nhanh chóng với nhu cầu mua sắm trực tuyến tăng cao, việc xây dựng một website cửa hàng thú cưng trực tuyến đáp ứng nhu cầu này của người tiêu dùng là cực kỳ quan trọng Điều này giúp người dùng tiếp cận với các sản phẩm và dịch vụ chăm sóc thú cưng một cách thuận tiện hơn, giúp cửa hàng mở rộng đối tượng khách hàng và tăng cường doanh số.Đồng thời còn là một cơ hội để tìm hiểu, chứng minh khả năng của AI trong việc làm tăng hiệu quả một số công việc vốn đòi hỏi rất nhiều nguồn nhân lực.
CƠ SỞ LÝ THUYẾT
Giới thiệu công nghệ sử dụng
2.1.1 Giới thiệu về ASP.NET Core
2.1.1.1 Tổng quan về ASP.NET Core
ASP.NET Core là một framework phát triển ứng dụng web mạnh mẽ và đa nền tảng của Microsoft Dưới đây là một tổng quan về ASP.NET Core, bao gồm các đặc điểm và ưu điểm quan trọng:
ASP.NET Core là mã nguồn mở, cho phép cộng đồng đóng góp vào việc phát triển và cải tiến Nó hỗ trợ chạy trên nhiều hệ điều hành như Windows, macOS và Linux, giúp tạo ra các ứng dụng đa nền tảng. Được thiết kế để tối ưu hóa hiệu suất và tiêu thụ tài nguyên Nó cung cấp một kiến trúc module hóa, cho phép bạn sử dụng chỉ những thành phần cần thiết cho ứng dụng của bạn, giúp giảm bớt kích thước ứng dụng và tối ưu hóa tài nguyên.
Cung cấp một loạt công cụ và thư viện để phát triển ứng dụng web chuyên nghiệp.
Nó hỗ trợ MVC (Model-View-Controller), Clean Architecture và Web API, cho phép bạn xây dựng cả trang web và dịch vụ web RESTful trong một dự án.
ASP.NET Core được thiết kế với khả năng tích hợp đám mây trong tâm trí Nó hỗ trợ triển khai ứng dụng trên các môi trường đám mây như Microsoft Azure, AWS và Google Cloud Điều này rất hữu ích cho việc phát triển ứng dụng dựa trên kết nối đám mây và tích hợp các dịch vụ đám mây.
Khả Năng Chạy Trên NET Core hoặc NET Framework cho phép bạn lựa chọn phiên bản NET Framework phù hợp với ứng dụng của bạn Bạn có thể chạy trên NET Core để có hiệu suất tốt và đa nền tảng, hoặc chọn NET Framework nếu ứng dụng của bạn yêu cầu tích hợp với các thư viện và dự án đã có sẵn.
Nhờ mã nguồn mở, có một cộng đồng đông đảo của những người đam mê và nhà phát triển luôn sẵn sàng giúp đỡ, cung cấp thư viện và hỗ trợ kỹ thuật.
ASP.NET Core là một lựa chọn xuất sắc cho phát triển ứng dụng web hiện đại, và nó mang lại sự linh hoạt, tối ưu hóa và tích hợp đám mây mạnh mẽ để phục vụ nhu cầu của các dự án phức tạp.
2.1.1.2 Đặc tính của ASP.NET Core
● ASP.Net Core có một số thay đổi kiến trúc lớn, đó là kết quả của việc học hỏi
● ASP.Net Core không còn dựa trên System.Web.dll nữa Nó được dựa trên một tập hợp các gói, các module hay cũng được gọi là các Nuget packages Điều này cho phép bạn tối ưu ứng dụng của bạn để chỉ bao gồm những packages nào cần thiết.
● Lợi ích của nó là giúp cho ứng dụng nhỏ hơn, bảo mật chặt chẽ hơn, giảm sự phức tạp, tối ưu hiệu suất hoạt động và giảm chi phí, thời gian cho việc phát triển.
● Các cái tiến của ASP.Net Core:
○ Hợp nhất việc xây dựng web UI và web APIs.
○ Tích hợp những client-side frameworks hiện đại và những luồng phát triển.
○ Hệ thống cấu hình dựa trên môi trường đám mây thật sự.
○ Dependency injection được xây dựng sẵn.
○ HTTP request được tối ưu nhẹ hơn.
○ Có thể host trên IIS hoặc self-host trong process của cá nhân.
○ Được xây dựng trên NET Core, hỗ trợ thực sự app versioning.
○ Chuyển các thực thể, thành phần, module như những NuGet packages.
○ Những công cụ mới để đơn giản hóa quá trình phát triển web hiện đại.
○ Xây dựng và chạy đa nền tảng(Windows, Mac và Linux).
○ Mã nguồn mở và tập trung vào cộng đồng.
ReactJS là một thư viện JavaScript opensource được Facebook phát triển, được sử dụng chủ yếu để xây dựng giao diện người dùng trong các ứng dụng web đơn trang (Single Page Applications - SPAs) và các ứng dụng web tương tác Cốt lõi của ReactJS nằm trong việc xây dựng các thành phần UI (components) có khả năng tái sử dụng và quản lý trạng thái.
Một trong những điểm thú vị của ReactJS là khả năng sử dụng cả trên phía máy chủ(server-side) lẫn phía khách hàng (client-side), và cho phép hai phần này tương tác với nhau ReactJS sử dụng mô hình Virtual DOM để tối ưu hiệu suất của ứng dụng.Thay vì cập nhật trực tiếp trên DOM thực tế, ReactJS sử dụng một bản sao tạm thời làVirtual DOM để so sánh sự khác biệt giữa các giá trị của lần render này với lần render trước Sau đó, ReactJS chỉ cập nhật những phần thay đổi tối thiểu trên DOM thực tế.Việc sử dụng Virtual DOM giúp cải thiện hiệu suất xử lý và render của ứng dụng.
ReactJS áp dụng cơ chế one-way data binding (luồng dữ liệu một chiều) Dữ liệu được truyền từ component cha (parent) xuống component con (child) thông qua các thuộc tính (props) Luồng dữ liệu này giúp việc kiểm soát và sửa lỗi trở nên dễ dàng hơn ReactJS thích hợp cho việc xây dựng các ứng dụng có quy mô lớn và với dữ liệu thay đổi liên tục theo thời gian Ví dụ, trang Newsfeed của Facebook có nhiều status khác nhau và mỗi status lại có số lượng like, share, comment thay đổi liên tục Trong trường hợp này, ReactJS là một lựa chọn hữu ích để xử lý và cập nhật giao diện linh hoạt và hiệu quả.
● Viết ứng dụng trực tiếp bằng JavaScript và JSX: ReactJS cho phép viết ứng dụng bằng JavaScript, và JSX là một tính năng mạnh mẽ, cho phép kết hợp HTML và JavaScript trong cùng một file Điều này giúp developer tạo ra các tính năng mới và xem kết quả ngay lập tức, giúp quá trình phát triển trở nên dễ dàng và thú vị hơn.
● Tách giao diện thành các component độc lập: ReactJS cho phép phân tách giao diện phức tạp thành các component đơn giản và độc lập Điều này giúp quản lý mã nguồn dễ dàng hơn, tăng tính tái sử dụng của code và giảm sự phức tạp của ứng dụng.
● Kết nối component thông qua Props: Các component trong ReactJS kết nối với nhau thông qua props, cho phép truyền dữ liệu từ một component parent xuống các component child Điều này tạo ra sự tương tác linh hoạt giữa các thành phần và tăng tính tái sử dụng của mã nguồn.
● Quản lý trạng thái với State: ReactJS cung cấp khái niệm state, cho phép điều chỉnh trạng thái của các component Việc quản lý trạng thái trở nên dễ dàng hơn, giúp phát triển ứng dụng linh hoạt và tương tác hơn.
Giới thiệu về Clean Architecture
Clean Architecture là một phương pháp thiết kế kiến trúc phần mềm, nhằm tách biệt các thành phần của hệ thống thành các lớp độc lập và đảm bảo tính rõ ràng, dễ bảo trì và kiểm thử Clean Architecture được đề xuất bởi Robert C Martin, còn được gọi làUncle Bob, với mục tiêu tạo ra các hệ thống phần mềm dễ mở rộng, linh hoạt và độc lập với công nghệ.
Domain: Đây là các đối tượng chứa dữ liệu cốt lõi của ứng dụng Entities không biết về bất kỳ thành phần nào khác trong hệ thống.
Application: Đây là các lớp chứa các quy trình cụ thể và chứa các tác vụ xử lý logic Use Cases không biết về bất kỳ chi tiết cụ thể nào của giao diện người dùng hoặc cơ sở dữ liệu.
Infrastructure: Đây là các giao diện định nghĩa các phương thức mà giao diện người dùng hoặc các thành phần bên ngoài khác có thể sử dụng để giao tiếp với hệ thống Các giao diện này cung cấp một cách để tách biệt các thành phần khác nhau và làm cho hệ thống dễ dàng thay đổi.
Presentation: Đây là các thành phần bên ngoài của hệ thống như cơ sở dữ liệu, framework web hoặc giao diện người dùng Chúng cung cấp các cơ chế cụ thể để tương tác với các thành phần bên trong của hệ thống.
Clean Architecture tập trung vào việc tách biệt logic nghiệp vụ và phụ thuộc vào các công nghệ cụ thể Nó giúp tăng tính linh hoạt, bảo trì và kiểm thử trong quá trình phát triển phần mềm Bằng cách tuân thủ Clean Architecture, chúng ta có thể tái sử dụng lại các thành phần và thay đổi công nghệ mà không ảnh hưởng tới logic nghiệp vụ của ứng dụng.
Dưới đây là hình ảnh xây dựng ban đầu khi áp dụng Clean Architecture vào Backend:
● Cồng kềnh và phức tạp: Điều dễ thấy nhất là Clean Architecture không hề dễ sử dụng, phải viết nhiều lớp (class/object) hơn Trong trường hợp ứng dụng quá đơn giản, ít tính năng, vòng đời ngắn thì chọn lựa kiến trúc này có thể mang lại những rắc rối không cần thiết.
● Tính trừu tượng cao: Trừu tượng càng cao thì tiện cho các developers nhưng sẽ gây ảnh hưởng không nhỏ tới tốc độ thực thi (performance). Ngoài ra cũng không thể code nhanh, vội vã được mà phải tạo đủ các Interfaces. Ưu điểm:
● Chia để trị rất hiệu quả trong ứng dụng lớn: Trong Clean Architecture thì code tầng nào thì ở đúng tầng nấy Hạn chế được việc "code ở đâu cũng là code, chạy được là được" Nếu làm tốt được các bài toán nhỏ thì không có bài toán lớn nào không giải quyết được.
● Rất dễ maintain và mở rộng: Việc tìm kiếm bug và lỗi logic sẽ trở nên dễ dàng và nhanh hơn, file code sẽ không nhiều vì chỉ làm đúng việc của nó Vì các tầng độc lập với nhau thông qua các Interfaces nên việc mở rộng hoặc thay đổi các tầng sẽ không ảnh hưởng tới nhau Điều này hạn chế các breaking change cũng như phải viết lại code (refactoring).
● Rất dễ làm Unit Test: Các logic business của các tầng trong Clean Architecture chính là các Unit Test cần được kiểm thử rất cẩn thận Vì sự độc lập thông qua Interfaces nên các mock test rất dễ triển khai Việc này được thực hiện thông qua implement lại để coverage được tất cả các trường hợp.
Mô hình LLM (Large Language Model)
2.3.1 Transformer a Tổng quan về Transformer
Transformer là một loại mô hình được giới thiệu trong bài báo "Attention is All You Need" nhằm giúp giải quyết các vấn đề đang tồn tại của các mạng nơron truyền thống như RNN hay LSTM Điểm khiến Transformer vượt xa các mạng nơron đã đề cập là cơ chế Attention khiến nó có thể xử lý dữ liệu dạng văn bản với độ dài lớn mà không làm giảm khả năng xử lý ngôn ngữ. b Kiến trúc của Transformer và nguyên lý hoạt động Đầu tiên chúng ta cần phải hiểu rõ rằng máy tính sẽ không thực sự hiểu rõ ngữ nghĩa của một từ là gì mà nó sẽ hiểu thông qua dưới một dạng đơn giản hơn là các con số, các vector và ma trận Vậy việc đầu tiên để xử lý ngôn ngữ của con người thì ta cần p chuyển đổi ngôn ngữ mà con người sử dụng sang dạng mà máy có thể hiểu.
Bằng cách sử dụngInput Embedding,ta chuyển đổi các từ ngữ của con người sang dạng các vector tương ứng Tuy nhiên trong thực tế một từ ngữ sẽ có một ý nghĩa khác nhau với từng vị trí mà nó đứng Vì vậy để giải quyết vấn đề này ta sẽ cần thêm Positional Embedding để chuyển đổi vị trí của các từ ngữ này sang dạng vector và kết hợp với vector embedding của từ ngữ. Ở bước tiếp theo đầu ra từ bước trước đó sẽ được đưa vào khối multihead attention: a Self-attention: Đây là cơ chế tạo nên điểm mạnh của transformer Tại đây nó sẽ tính toán trọng số của từng cặp trong câu để biết được mức độ liên quan của từ này với từ khác trong cùng một câu Ở đây chúng sẽ dựa vào ba vector chính là Query vector: Vector biểu diễn cho từ đang được xử lý, Key vector: Vector biểu diễn cho tất cả các từ trong câu, Value vector: Vector chứa thông tin mà mô hình muốn học hỏi từ các từ khác. b Multi-head attention là một kỹ thuật mở rộng cơ chế self-attention trong Transformer, giúp mô hình học hỏi mối quan hệ giữa các từ trong câu một cách hiệu quả hơn bằng việc chia nhỏ ra được gọi là “head”, các head này được đưa vào cơ chế attention và sau đó kết hợp lại với nhau. điều này giúp cho mô hình hiểu rõ hơn về ý nghĩa của câu. c Masked Self Attention là cơ chế được tương tự với Self Attention đã đề cập ở trên nhưng tại đây target token (word) hiện tại sẽ chỉ được sử dụng các token trước đó của nó mà không sử dụng các token sau nhằm đảm bảo model sẽ giải quyết được việc dự đoán các từ ngữ tiếp một cách tuần tự từ đầu tới cuối mà không biết trước kết quả Ví dụ: “Con mèo đang ngồi” nếu ta dự đoán từ tiếp theo cho câu trên thì cơ chế sẽ hoạt động như sau:
● “Con” thì model sẽ không thấy gì trước đó
● “Mèo” thì model sẽ sử dụng từ “con”
● “Đang” thì sẽ sử dụng “Con”, “mèo” d Bước Add thêm residual connection (kết nối dư) nhằm giảm vấn đề đó Normalization được thêm vào để chuẩn hóa dữ liệu đầu ra ở mỗi lớp để đảm bảo đầu vào của các lớp là thống nhất và ổn định. e Các khối Feed Forward Network (FFN) sẽ sử dụng input từ trước (các token sau khi đã đi qua cơ chế Attention) FFN sẽ bảo gồm hai phép biến đổi tuyến tính và một hàm RELU(f(x)=max(0,x) ) hay còn gọi là hàm kích hoạt Hàm này sẽ đảm bảo đầu ra sẽ phi tuyến tính và cung cấp khả năng để mô hình học các mẫu phức tạp hơn Mỗi token sẽ được xử lý độc tập tại đây để đảm bảo sự tinh chỉnh và biến đổi cục bộ. f Linear layer và hàm softmax: Từ đầu ra trước đó của lớp FFN, ta có chuỗi các vector biểu diễn ngữ cảnh được đưa qua một mạng tuyến tính và hàm softmax có công thức là: Để biến đổi input đầu vào thành để tạo ra phân phối xác suất của các từ trong từ điển, rồi từ đó chọn từ có xác xuất cao nhất.
Mô hình Ngôn ngữ Quy mô Lớn (Large Language Models - LLM) là một loại mô hình trí tuệ nhân tạo tiên tiến, chuyên về xử lý ngôn ngữ tự nhiên Được huấn luyện trên khối lượng dữ liệu văn bản khổng lồ, thường lên đến hàng trăm tỷ tham số, các mô hình này có khả năng nắm bắt được các mẫu và cấu trúc phức tạp của ngôn ngữ con người LLM có thể thực hiện nhiều nhiệm vụ ngôn ngữ đa dạng như tạo văn bản, dịch thuật, tóm tắt thông tin và trả lời câu hỏi, bằng cách dự đoán từ ngữ tiếp theo dựa trên ngữ cảnh đã cho. Điểm đặc biệt của LLM là khả năng học và áp dụng kiến thức tổng quát từ dữ liệu huấn luyện vào các nhiệm vụ mới mà không cần phải đào tạo lại từ đầu Khả năng này được gọi là học chuyển giao (transfer learning) và là một bước tiến quan trọng trong việc phát triển các hệ thống AI linh hoạt và đa năng.
Sự tiến bộ của LLM đã mở ra nhiều ứng dụng đột phá trong công nghệ ngôn ngữ. Chúng có thể tạo ra văn bản với chất lượng gần giống như con người, cung cấp công cụ hỗ trợ mạnh mẽ trong viết lách, phân tích dữ liệu và thậm chí là lập trình.
2.3.3 Cấu trúc và nguyên lý hoạt động
Như đã đề cập ở trên ta có thể xem Transformer là điểm chung của mọi mô hình ngôn ngữ lớn Những mô hình nổi tiếng hiện nay như GPT, Gemini, Claude, đều có những đặc điểm chung là được train trên một lượng dữ liệu lớn, nhiều tham số và sử dụng Transformer là cốt lõi, nhưng với mỗi mô hình khác nhau sẽ có những yếu tố khác biệt và mở rộng:
1 Về quy mô dữ liệu:
Tùy theo lượng dữ liệu đầu vào LLM có thể được train dựa trên các bài báo, sách, trang web, và nhiều nguồn khác nhau.
2 Sử mở rộng về kiến trúc:
Với những model khác nhau thì nhà phát hành sẽ nghiên cứu các cải tiến khác nhau cho kiến trúc của mình để phù hợp với mục đích, phần cứng và dữ liệu, Tiêu biểu nhất là các biến thể mở rộng từ Transfomer cơ bản như là Transformer-XL, GPT(Generative Pre-trained Transformer), BERT (Bidirectional Encoder Representations from Transformers), việc thêm các lớp và hiệu chỉnh tham số cũng là một cách cải thiện độ hiệu quả của mô hình.
3 Thay đổi cơ chế Attention:
Một số model LLM hiện nay còn thay thế cơ chế Attention cổ điển thành Hierarchical Attention (Attention phân cấp) để chia việc quản lý với các dữ liệu có chiều lớn và Sparse Attention để giảm bớt tính toán nhưng tăng hiệu quả khi xử lý.
4 Tối Ưu Hóa và Điều Chỉnh:
Như đã đề cập việc tối ưu hóa hiệu suất và điều chỉnh là một cách hiệu quả để khiến một model LLM có thể cải tiến hơn Đôi khi ta có thể sử dụng một model open source để Fine-tuning trên các tệp dữ liệu nhỏ hơn để tập trung tối ưu cho các công việc chuyên biệt nay Ví dụ như đánh giá phim, dịch thuật,
2.3.4 Khả năng và ứng dụng của mô hình ngôn ngữ lớn
Nhờ vào khả năng làm việc hiệu quả với ngôn ngữ mà LLM có thể đảm nhận nhiều vai trò to lớn trong cuộc sống:
1 Trợ lý ảo: Các mô hình ngôn ngữ lớn (LLM) như GPT-4 có khả năng biến thành trợ lý ảo vô cùng hiệu quả Nhờ vào việc train trên một bộ dữ liệu lớn, các LLM có thể hỗ trợ giải đáp thắc mắc của người dùng về các vấn đề kỹ thuật, thông tin và học tập.
2 Tạo nội dung: Chúng có thể dựa trên lượng data từ nhiều nguồn khác nhau để tạo ra những bài báo, blog, truyện ngắn Hiện nay LLM còn là công cụ hỗ trợ sáng tạo nội dung cho các nhà sáng tạo Với khả năng hiểu và mô phỏng lại ngôn ngữ con người, LLM có thể sáng tạo ra các bài thơ, bài,
3 Tư vấn và hỗ trợ khách hàng: Vì khả năng ngôn ngữ của mình LLM giúp giảm tải cho đội ngũ chăm sóc khách hàng thông qua việc trả lời cho người dùng những câu trả lời đơn giản mà không cần nhờ tới một tư vấn viên Với các mô hình mới hơn thì mức độ lưu loát của từng mô hình sẽ được cải thiện khiên cho câu văn tự nhiên và thân thiện, tạo cảm giác thoải mái cho khách hàng khi tiếp xúc Đồng thời chúng có thể hoạt động 24/7 để đảm bảo khách hàng luôn có được sự hỗ trợ kịp thời.
Ngoài những điều đã được liệt kê ra, khả năng của mô hình LLM là vô hạn khi người dùng có thể tùy chỉnh lại để đáp ứng cho mục đích riêng của mình.
2.3.5 Hạn chế của mô hình ngôn ngữ lớn
1 Như đã đề cập một mô hình ngôn ngữ lớn cần rất nhiều tài nguyên về phần cứng lẫn về khả năng chuyên môn để tạo ra và vận hành được Đối với training phase thì cần từ 4-8 GPU với mỗi con là 40GB VRAM để train ra một model LLM, một CPU ít nhất 32 cores Đối với quá trình inference thì ít nhất một card với 16GB VRAM, CPU 16 cores Ngoài ra để train được một mô hình LLM ổn định thì lượng dữ liệu đầu vào phải cực kì lớn với cấu trúc của data phải phù hợp, điều này đòi hỏi người có chuyên môn cao thực hiện.
2 Khả năng về ngôn ngữ: Mặc dù được train trên một lượng data khổng lồ, tuy nhiên ngôn ngữ vốn là một thứ đã tồn tại từ rất lâu Việc hiểu một ngôn ngữ và nói nhuần nhuyễn một ngôn ngữ đã khó khí mà mỗi một ngôn ngữ lại có cấu trúc khác nhau Vì vậy đối với các quốc gia có lượng data train không đủ thì sẽ xảy ra việc kết quả của LLM sẽ trở nên lủng củng, thiếu tự nhiên Ví dụ tiêu biết nhất ở đây chính là tiếng Việt vốn cơ bản đã khó và với mỗi một vùng miền lại có một kiểu khác nhau không chỉ về cách nói chuyện mà còn cả về mặt chứ.
Dify - Ứng dụng nghiên cứu LLM
Dify là một nền tảng phát triển ứng dụng Web cho mô hình LLM Nó hỗ trợ một giao diện thân thiện với người dùng và cung cấp nhiều tính năng thường có cho việc nghiên cứu và ứng dụng LLM như là workflow, prompt IDE, RAG pipeline và đồng thời cung cấp khả năng kết hợp các API LLM như Gemini, OpenAI, Azure,
Orchestration Studio: Là phần core của Dify, đóng vai trò là component trung gian giúp kết hợp các thành phần khác lại với nhau Nó là cầu nói để đưa các component về LLM, Agent và FE quản lý của nền tảng.
Completions: Là phần sẽ quản lý các tác vụ liên quan về LLM thông qua các Model Provider là các API để sử dụng các LLM, RAG pipeline để hỗ trợ cho các tác vụ về RAG như là tìm chunking, trả kết quả,
Agents Mode: Là phần sẽ quản lý các tool extension ngoài base từ Dify, ở đây ta có thể sử dụng các tool được cung cấp sẵn như là Github, Gmail, hoặc tự implement các tool API để hỗ trợ cho chatbot.
2.4.3 Kiến trúc về mặt lập trình
Cả một website Dify là tổ hợp các container làm việc với nhau để:
1 Nginx: Giữ vai trò trung tâm xử lý các kết nối giữa component với nhau và là nơi quản lý access của người dùng tới hệ thống của Dify
2 Web: Là container giữ vai trò FE của hệ thống
3 API: Là nơi xử lý các request từ FE, tại đây API đóng vai trò thực hiện các giao thức để thực hiện các tính năng.
4 Worker: Sẽ thực hiện các tác vụ nền ví dụ các tính năng nặng và mất thời gian như xử lý RAG cho một file pdf rất lớn, Ngoài ra còn đảm nhận xử lý tác vụ đồng thời và bất đồng bộ.
5 DB: Là Postgres database, giúp lưu trữ dữ liệu của hệ thống như thông tin chatbot, tài khoản đăng nhập hệ thống, config,
6 Weaviate: Là một database đặc biệt giúp cho lưu trữ các vector trong quá trình làm việc với RAG.
7 Redis: Hỗ trợ làm caching, session storage, real-time, cho hệ thống
8 Sandbox: Là nơi để nhà phát triển thực hiện các mã nguồn mới mà không làm ảnh hưởng tới toàn bộ hệ thống Chủ yếu được dùng cho quá trình kiểm thử,đảm bảo mã nguồn mới sẽ ổn định khi áp dụng vào hệ thống chính.
Giao Hàng Nhanh - Tích hợp Đơn vị vận chuyển
2.5.1 Giới thiệu về Giao Hàng Nhanh
GHN (Giao Hàng Nhanh) - Công ty giao nhận đầu tiên tại Việt Nam được thành lập năm 2012, với sứ mệnh phục vụ nhu cầu vận chuyển chuyên nghiệp của các đối tác Thương mại điện tử trên toàn quốc GHN cam kết mang đến cho khách hàng những trải nghiệm dịch vụ giao nhận nhanh, an toàn, hiệu quả giúp người bán hàng bán được nhiều hơn, người mua hàng hài lòng hơn.
Giao hàng nhanh được các sàn thương mại điện tử, nhãn hàng lớn cũng như lượng lớn người dùng tin dùng sử dụng.
2.5.2 Tích hợp API sử dụng
GHN (Giao hàng nhanh) đã ra mắt hệ thống quản lý đơn hàng mới với nhiều tính năng cải tiến gia tăng trải nghiệm và dễ dàng sử dụng hơn cho các khách hàng với đơn hàng lớn.
● Lợi ích của việc tích hợp vận chuyển vào các trang web thương mại điện tử
○ Giao diện thông minh, trải nghiệm mượt mà với tốc độ hệ thống luôn ổn định
○ Chủ động theo dõi tình trạng đơn hàng và quản lý dòng tiền COD trong tầm tay
○ Tích hợp bộ tính năng tạo và quản lý đơn hàng dành riêng cho người bán hàng online
Thông tin về document được đăng chi tiết tại:api.ghn.vnđể hiểu rõ thông tin chi tiết hơn về sử dụng dịch vụ.
KHẢO SÁT HIỆN TRẠNG VÀ MÔ HÌNH HÓA YÊU CẦU
Khảo sát hiện trạng
● Tìm kiếm sản phẩm: Trang web Paddy Pet Store cho phép người dùng tìm kiếm các sản phẩm thú cưng bằng cách sử dụng công cụ tìm kiếm Người dùng có thể tìm kiếm theo tên sản phẩm, thương hiệu hoặc danh mục sản phẩm.
● Danh mục sản phẩm: Trang web cung cấp danh mục sản phẩm thú cưng đa dạng, bao gồm thức ăn, cát vệ sinh, sữa tắm, đồ chơi và và nhà cho mèo Người dùng có thể duyệt qua các danh mục để tìm sản phẩm mong muốn.
● Chi tiết sản phẩm: Mỗi sản phẩm trên trang web có trang chi tiết riêng, cung cấp thông tin chi tiết về sản phẩm, bao gồm hình ảnh, mô tả, thành phần, hướng dẫn sử dụng và đánh giá từ khách hàng.
● Giỏ hàng và thanh toán: Trang web Paddy Pet Store cho phép người dùng thêm sản phẩm vào giỏ hàng và tiến hành thanh toán trực tuyến Người dùng có thể xem lại giỏ hàng, cập nhật số lượng sản phẩm và chọn phương thức thanh toán.
Chương 3 Khảo sát hiện trạng và mô hình hóa yêu cầu
● Tài khoản người dùng: Người dùng có thể đăng ký tài khoản trên trang web Paddy Pet Store để quản lý đơn hàng, theo dõi lịch sử mua hàng và lưu trữ thông tin cá nhân.
● Khuyến mãi và ưu đãi: Trang web thông báo về các khuyến mãi, ưu đãi và chương trình giảm giá đang diễn ra Người dùng có thể tìm hiểu và tận dụng các ưu đãi này khi mua sắm.
● Tư vấn và hỗ trợ: Trang web cung cấp thông tin tư vấn về chăm sóc thú cưng và các vấn đề liên quan đến thú thú cưng Người dùng cũng có thể liên hệ với dịch vụ hỗ trợ khách hàng thông qua số điện thoại hoặc email. Ưu điểm:
● Bố cục giao diện rõ ràng dễ thao tác cho người mới sử dụng.
● Dễ đặt hàng và dễ trả hàng khi có vấn đề phát sinh.
● Tốc độ tải trang: Một nhược điểm có thể là tốc độ tải trang của trang web Nếu trang web không được tối ưu hóa tốt, việc tải trang có thể mất nhiều thời gian, gây khó chịu cho người dùng và làm giảm trải nghiệm mua sắm trực tuyến.
● Cấu trúc thông tin: Nếu cấu trúc thông tin trên trang web không được tổ chức rõ ràng, có thể làm cho việc tìm kiếm sản phẩm trở nên khó khăn và gây khó chịu cho người dùng Điều này có thể xảy ra nếu danh mục sản phẩm không được phân loại một cách logic hoặc công cụ tìm kiếm không hiệu quả.
● Đăng nhập và Đăng ký tài khoản: Người dùng có thể đăng nhập vào trang web bằng tài khoản của mình hoặc đăng ký tài khoản mới.
● Tìm kiếm sản phẩm: Trang web cung cấp chức năng tìm kiếm để người dùng có thể tìm kiếm các sản phẩm thú cưng và dịch vụ hỗ trợ thú cưng.
● Danh mục sản phẩm: Trang web có các danh mục sản phẩm khác nhau, bao gồm thức ăn, cát vệ sinh, sữa tắm, đồ chơi và và nhà cho mèo Người dùng có thể xem các danh mục này để tìm kiếm sản phẩm mong muốn.
● Chi tiết sản phẩm: Mỗi sản phẩm được hiển thị với thông tin chi tiết, bao gồm hình ảnh, mô tả, thành phần, giá cả và các thông tin liên quan khác.
● Giỏ hàng: Người dùng có thể thêm sản phẩm vào giỏ hàng và kiểm tra các sản phẩm trong giỏ hàng trước khi tiến hành thanh toán.
● Thanh toán: Trang web cung cấp các phương thức thanh toán an toàn để người dùng có thể hoàn tất quá trình mua hàng.
● Hỗ trợ khách hàng: Trang web cung cấp thông tin liên hệ và chức năng hỗ trợ khách hàng để giải đáp các thắc mắc và yêu cầu hỗ trợ từ người dùng.
● Thông tin khuyến mãi: Người dùng có thể đăng ký nhận thông tin khuyến mãi qua email từ trang web. Ưu điểm:
Chương 3 Khảo sát hiện trạng và mô hình hóa yêu cầu
● Đa dạng sản phẩm: Trang web cung cấp một loạt các sản phẩm thú cưng và và dụng cụ đến các sản phẩm chăm sóc lông và các dụng cụ hỗ trợ việc chăm sóc thú cưng Điều này cho phép người dùng có nhiều lựa chọn và tìm thấy sản phẩm phù hợp với nhu cầu và mong muốn của họ.
● Giao diện thân thiện và dễ sử dụng: Trang web có giao diện trực quan, dễ sử dụng và tương thích với nhiều thiết bị, giúp người dùng dễ dàng duyệt sản phẩm và thực hiện các hoạt động mua sắm trực tuyến.
Xác định yêu cầu
Người quản lý có khả năng thêm, sửa, và chỉnh sửa trạng thái của sản phẩm Họ có thể xem danh sách sản phẩm và xem chi tiết mỗi sản phẩm, bao gồm hình ảnh, giá, mô tả và danh mục Trước khi sản phẩm được hiển thị, quản trị viên cần xác thực nó, đảm bảo chất lượng và phù hợp.
Chức năng quản lý danh mục cho phép người quản lý thêm, sửa và chỉnh sửa trạng thái của các loại sản phẩm Danh mục giúp tổ chức sản phẩm và cung cấp khả năng
Chương 3 Khảo sát hiện trạng và mô hình hóa yêu cầu
Người quản lý có thể tạo, sửa và hủy đơn hàng Họ có thể xem danh sách đơn hàng và xem chi tiết mỗi đơn hàng, bao gồm sản phẩm, giá trị đơn hàng và trạng thái Nhân viên có quyền chỉnh sửa trạng thái của đơn hàng để cập nhật tình trạng vận chuyển hoặc giao hàng.
- Quản lý Tài khoản Khách hàng:
Khách hàng có thể đăng ký và đăng nhập vào tài khoản của họ Họ có thể xem và sửa thông tin cá nhân của mình Chức năng giỏ hàng cho phép họ thêm và xóa sản phẩm, cũng như hiển thị tổng giá trị của đơn hàng Người quản lý có khả năng quản lý tài khoản khách hàng để hỗ trợ nếu cần thiết.
Khách hàng có thể lựa chọn phương thức thanh toán và nhập thông tin thanh toán, kèm theo đó là giá tiền khi ship cho từng khu vực Họ cần xác nhận đơn hàng trước khi hoàn tất quá trình thanh toán.
Chức năng tìm kiếm linh hoạt cho phép người dùng tìm kiếm sản phẩm dựa trên tên, danh mục hoặc các tiêu chí tùy chỉnh, tăng trải nghiệm tìm kiếm của họ.
- Bảo mật và Xác thực:
Hệ thống sử dụng cơ chế xác thực mạnh mẽ, bao gồm đăng nhập, đăng ký và quên mật khẩu Mailkit được tích hợp để gửi thông tin xác thực cho người dùng, đảm bảo tính bảo mật và chắc chắn trong quá trình tương tác.
Phân quyền cho từng người dùng trong hệ thống Bao gồm: người dùng mới chưa đăng ký tài khoản, khách hàng đã có tài khoản và đã đăng nhập, quản trị viên, nhân viên.
● Vai trò quản trị viên: Có quyền cao nhất trong hệ thống, có quyền quản lý người dùng, quản lý danh mục sản phẩm, quản lý sản phẩm, quản lý đơn hàng.
● Vai trò khách hàng: Tìm kiếm sản phẩm, thêm sản phẩm vào giỏ hàng, thêm sản phẩm vào danh sách yêu thích, thay đổi thông tin cá nhân, đánh giá sản phẩm, thanh toán đơn hàng sản phẩm.
- Trợ lý ảo cho người dùng:
Chức năng trợ lý ảo để hỗ trợ người dùng sử dụng trang web, cũng như trả lời các câu hỏi liên quan tới quá trình sử dụng.
- Đưa ra sản phẩm phù hợp với người dùng:
Chức năng đưa ra các sản phẩm tương tự dựa trên tương tác của người dùng trên trang web và lịch sử mua hàng của người dùng.
Chức năng tạo ra các mã giảm giá cũng như quản lý chúng.
3.2.2 Yêu cầu phi chức năng
- Giao diện Người dùng Dễ sử dụng:
Giao diện người dùng được thiết kế với nguyên tắc đơn giản và trực quan, giúp người dùng dễ dàng điều hướng và tìm kiếm sản phẩm Các menu và nút chức năng được đặt ở vị trí rõ ràng và tiện lợi.
Hệ thống tích hợp với các cổng thanh toán phổ biến như Momo để cung cấp nhiều phương thức thanh toán linh hoạt, bảo mật và thuận tiện Người dùng có thể lựa chọn giữa thẻ tín dụng, ví điện tử, thanh toán khi nhận hàng (COD), và các phương tiện thanh toán khác, kèm theo việc áp dụng mã giảm giá.
Giao diện thông báo lỗi thân thiện và chi tiết giúp người dùng hiểu rõ vấn đề và có thể thực hiện các bước sửa lỗi Thông báo lỗi được hiển thị một cách trực quan mà không làm mất đi trải nghiệm người dùng.
- Thống Kê và Báo Cáo:
Hệ thống tự động thu thập dữ liệu về hoạt động trang web, doanh số bán hàng, và các thông số quan trọng khác Báo cáo được tạo ra để cung cấp cái nhìn tổng quan về hiệu suất kinh doanh
Dữ liệu người dùng được bảo vệ chặt chẽ bằng cách sử dụng các biện pháp bảo mật
Chương 3 Khảo sát hiện trạng và mô hình hóa yêu cầu
Phương thức xác thực mạnh mẽ được triển khai để đảm bảo rằng chỉ người dùng được ủy quyền có thể truy cập tài khoản của họ.
Trang web được tối ưu hóa để đảm bảo hoạt động ổn định và thời gian tải trang nhanh chóng Hình ảnh được tối ưu hóa và các yếu tố khác được quản lý để giảm thiểu thời gian tải và cung cấp trải nghiệm người dùng mượt mà.
- Thiết Kế Cơ Bản của Website Thương Mại Điện Tử:
Mô hình hóa yêu cầu
Chương 3 Khảo sát hiện trạng và mô hình hóa yêu cầu
3.3.1.2 UseCase Diagram cho khách hàng
Chương 3 Khảo sát hiện trạng và mô hình hóa yêu cầu
3.3.1.4 UseCase Diagram cho quản lý
Đặc tả UseCase
Ở phần này, nhóm chúng em chỉ tập trung vào những usecase chúng em phát triển ở Khóa luận tốt nghiệp, phần còn lại các thầy, cô có thể xem lại các usecase nhóm đã phát triển ở Tiểu luận chuyên ngành.
Use Case Name Thanh toán
Description Người dùng tiến hành thanh toán sản phẩm theo yêu cầu
Trigger Người dùng tiến hành thanh toán sản phẩm đã đặt trong giỏ hàng
Pre-Condition(s) Người dùng đã đăng nhập
Sản phẩm đã được thêm vào giỏ hàng.
Post-Condition(s) Thanh toán thành công và lên đơn hàng
Basic Flow 1 Người dùng truy cập trang giỏ hàng.
2 Hệ thống hiển thị danh sách các sản phẩm có trong giỏ hàng cùng với thông tin chi tiết như tên sản phẩm, số lượng, giá cả.
3 Người dùng chọn hình thức thanh toán COD và nhập địa chỉ giao hàng
4 Hệ thống dựa vào địa chỉ đơn hàng cập nhật lại giá tiền
5 Người dùng ấn “Thanh toán”
6 Hệ thống thông báo cho người dùng biết rằng đơn hàng đã được nhận, sau đó chuyển hướng người dùng đến trang danh sách sản phẩm để có thể tiếp tục mua hàng.
Chương 3 Khảo sát hiện trạng và mô hình hóa yêu cầu
Alternative Flow 3.1 Người dùng nhập coupon
3.1.1 Hệ thống cập nhật lại giá tiền của đơn hàng
5.1 Nếu người dùng chọn Momo là phương thức thanh toán
5.1.1 Thông tin thanh toán sẽ được gửi tới Momo
5.1.2 Người dùng quét mã thanh toán do Momo cung cung cấp
3.4.2 UseCase Trò chuyện với chatbot
Use Case name Trò chuyện với Chatbot
Description Khách hàng sử dụng chức năng trò chuyện với chatbot để nhận hỗ trợ hoặc thông tin.
Trigger Khách hàng khởi động cuộc trò chuyện với chatbot.
PreCondition(s) Khách hàng đã truy cập vào trang web
Chatbot đang hoạt động và sẵn sàng tiếp nhận yêu cầu.
Basic Flow 1 Khách hàng bắt đầu cuộc trò chuyện với chatbot.
2 Chatbot chào hỏi và yêu cầu khách hàng cung cấp thông tin hoặc đặt câu hỏi.
3 Khách hàng nhập câu hỏi hoặc thông tin cần hỗ trợ.
4 Chatbot xử lý yêu cầu và cung cấp câu trả lời hoặc thông tin liên quan.
Alternative Flow Khách hàng hỏi không phù hợp hoặc có từ ngữ sai với thuần phong mỹ tục
3.1 Chatbot trả lời người dùng yêu cầu hỏi câu hỏi khác vì việc này nằm ngoài phạm vi của nó
Exception Flow Nếu có lỗi kỹ thuật hoặc hệ thống không hoạt động:
1 Chatbot hiển thị thông báo lỗi và yêu cầu khách hàng thử lại sau.
3.4.3 UseCase Đưa ra sản phẩm phù hợp với người dùng
Use Case name Đưa ra sản phẩm phù hợp với người dùng
Description Hệ thống đề xuất sản phẩm dựa trên lịch sử tương tác và hành vi của người dùng.
Chương 3 Khảo sát hiện trạng và mô hình hóa yêu cầu
Trigger Khách hàng thực hiện tương tác trên trang web
PreCondition(s) Khách hàng đã đăng nhập vào tài khoản.
Hệ thống đã ghi nhận và lưu trữ lịch sử tương tác của khách hàng.
PostCondition(s) Khách hàng nhận được đề xuất sản phẩm phù hợp với sở thích và nhu cầu của họ.
Basic Flow 1 Khách hàng đăng nhập vào tài khoản và bắt đầu tương tác với trang web hoặc ứng dụng.
2 Hệ thống theo dõi và ghi nhận các hành vi và lịch sử tương tác của khách hàng (ví dụ: xem sản phẩm, thêm sản phẩm vào giỏ hàng, mua hàng).
3 Dựa trên các tương tác này, hệ thống phân tích và xác định các sản phẩm phù hợp để đề xuất cho khách hàng.
4 Hệ thống hiển thị danh sách sản phẩm được đề xuất trên trang
5 Khách hàng xem danh sách sản phẩm được đề xuất và có thể chọn mua sản phẩm từ danh sách này.
Alternative Flow - Nếu không có đủ dữ liệu về lịch sử tương tác của khách hàng:
3.1 Hệ thống sử dụng các thông tin khác như sở thích đã khai báo hoặc các sản phẩm phổ biến để đề xuất.
1 Hệ thống có thể hiển thị các sản phẩm phổ biến hoặc sản phẩm mới nhất như một giải pháp tạm thời.
Use Case name Tạo coupon cho khách hàng
Description Cho phép quản trị viên tạo và phát hành coupon cho khách hàng, với các điều kiện và thông tin cụ thể.
Trigger Quản trị viên muốn tạo một coupon mới cho khách hàng.
PreCondition(s) Quản trị viên đã đăng nhập vào tài khoản admin.
PostCondition(s) Coupon được tạo thành công và lưu trữ trong hệ thống, sẵn sàng để khách hàng sử dụng.
Basic Flow 1 Quản trị viên truy cập vào trang quản lý coupon.
2 Hệ thống hiển thị danh sách các coupon hiện có và nút để tạo coupon mới.
3 Quản trị viên nhấn vào nút “Tạo coupon mới”.
4 Hệ thống hiển thị biểu mẫu tạo coupon, cho phép quản trị viên nhập các thông tin cần thiết
Chương 3 Khảo sát hiện trạng và mô hình hóa yêu cầu
5 Quản trị viên nhập thông tin coupon và nhấn nút
“Lưu” để xác nhận tạo coupon.
6 Hệ thống kiểm tra và lưu trữ thông tin coupon mới tạo.
7 Hệ thống hiển thị thông báo xác nhận thành công và quay lại danh sách coupon.
Alternative Flow Ở bước 6, nếu quản trị viên quyết định hủy bỏ việc tạo coupon:
1 Quản trị viên nhấn nút “Hủy”.
2 Hệ thống không lưu trữ thông tin coupon và quay lại danh sách coupon.
Exception Flow Nếu hệ thống gặp lỗi khi tạo coupon (ví dụ: thông tin không hợp lệ):
1 Hệ thống hiển thị thông báo lỗi và cho phép quản trị viên chỉnh sửa thông tin hoặc hủy bỏ thao tác.
2 Quản trị viên có thể chỉnh sửa lại thông tin và thử lưu lại hoặc hủy bỏ việc tạo coupon.
Use Case name Vô hiệu coupon
Description Cho phép quản trị viên vô hiệu hóa một coupon hiện có trong hệ thống, ngăn không cho khách hàng sử dụng coupon đó.
Trigger Quản trị viên muốn vô hiệu một coupon.
PreCondition(s) Quản trị viên đã đăng nhập vào tài khoản admin.
PostCondition(s) Coupon bị vô hiệu hóa và không còn khả dụng cho khách hàng sử dụng.
Basic Flow 1 Quản trị viên truy cập vào trang quản lý coupon.
2 Hệ thống hiển thị danh sách các coupon hiện có.
3 Quản trị viên chọn coupon cần vô hiệu hóa từ danh sách và nhấn nút “Vô hiệu hóa” bên cạnh coupon.
4 Hệ thống hiển thị thông báo xác nhận việc vô hiệu hóa.
5 Quản trị viên xác nhận việc vô hiệu hóa coupon.
6 Hệ thống cập nhật trạng thái của coupon thành "vô hiệu".
7 Hệ thống hiển thị thông báo thành công và cập nhật danh sách coupon.
Alternative Flow Ở bước 6, nếu quản trị viên quyết định hủy bỏ việc vô hiệu hóa:
1 Quản trị viên nhấn nút “Hủy”.
Chương 3 Khảo sát hiện trạng và mô hình hóa yêu cầu
2 Hệ thống không thay đổi trạng thái của coupon và quay lại danh sách coupon.
Exception Flow Nếu hệ thống gặp lỗi khi vô hiệu hóa coupon (ví dụ: lỗi kết nối cơ sở dữ liệu):
1 Hệ thống hiển thị thông báo lỗi và cho phép quản trị viên thử lại hoặc hủy bỏ thao tác.
2 Quản trị viên có thể thử lại việc vô hiệu hóa hoặc hủy bỏ thao tác.
THIẾT KẾ PHẦN MỀM
Lược đồ lớp (Class Diagram)
Có thể xem rõ hơn theo đường dẫn dưới đây:
Tổng quát: Ở đây, enumeration là một kiểu (type) đại diện cho một nhóm các hằng số, có nghĩa các hằng số trong enum chỉ có thể đọc và không thay đổi giá trị Để hiểu rõ hơn cách khai báo và sử dụng, ta có thể đọc nội dung ở đây:Enum C#
Lược đồ tuần tự (Sequence Diagram)
4.2.2 Sd Trò chuyện với chatbot
4.2.3 Sd Đưa ra sản phẩm phù hợp với người dùng
Lược đồ hoạt động (Activity Diagram)
4.3.2 Ad Trò chuyện với chatbot
4.3.3 Ad Đưa ra sản phẩm phù hợp với người dùng
Thiết kế cơ sở dữ liệu
4.4.1 Thiết kế mức quan niệm
CATEGORY (CategoryId, CategoryName, CreatedDateTime, UpdatedDateTime)
CUSTOMER(CustomerId, CustomerRoleId, FirstName, LastName, Email,
Gender, PasswordHash, PaswordSalt, VerificationToken, VerifiedAt, PasswordResetToken, TokenExpires, Avatar, PhoneNumber, Address, Status)
ORDERPRODUCTS(OrderProductId, CustomerId, OrderId, ProductId, Quantity, OrderProductStatus)
ORDER (OrderId, UserId, OrderDate, OrderStatus, PaymentStatus,ExpectedDeliveryStartDate, ExpectedDeliveryEndDate)
PRODUCTS(ProductId, CategoryId, ProductName, ProductDetail, ProductQuantity, ProductPrice_Amount, ProductPrice_Currency, ProductPrice_Discount, ImageData, Status,CreatedDateTime, UpdatedDateTime)
USERPERMISSION(UserPermissionId, UserRoleId, TableName, Read, Create, Update, Deactive)
USER(UserId, UserRoleId, FirstName, LastName, Email, Gender, PasswordHash, PaswordSalt, VerificationToken, VerifiedAt, PasswordResetToken, TokenExpires, Avatar, PhoneNumber, Address, Status)
Quan hệ Khóa chính Khóa ngoại Unique
KIỂM THỬ PHẦN MỀM
Kiểm thử hộp đen
5.1.1 Tổng quát về kiểm thử hộp đen Đối Tượng Kiểm Thử: Thành Phần Phần Mềm (TPPM) - có thể là hàm chức năng, module chức năng, phân hệ chức năng.
Mục Tiêu Kiểm Thử: Áp dụng chiến lược kiểm thử hộp đen để đảm bảo rằng TPPM đáp ứng đầy đủ yêu cầu chức năng của nó. Đây là chiến lược kiểm thử theo góc nhìn từ ngoài vào, các người tham gia kiểm thử hộp đen không cần có kiến thức nào về thông tin hiện thực TPPM cần kiểm thử (mã nguồn của thành phần phần mềm, thuật giải được dùng, các dữ liệu được xử lý…).
5.1.2 Quy trình kiểm thử hộp đen
7.1 Phân Tích Đặc Tả Yêu Cầu Chức Năng:
Xác định và hiểu rõ các yêu cầu chức năng mà TPPM cần thực hiện.
Sử dụng kỹ thuật định nghĩa testcase để xác định:
Giá trị dữ liệu nhập cho TPPM (hợp lệ và không hợp lệ).
Trạng thái của TPPM cần có để thực hiện test case.
Giá trị dữ liệu xuất mà TPPM phải tạo ra.
7.3 Kỹ Thuật Kiểm Thử: Áp dụng kỹ thuật kiểm thử, ở đây nhóm sẽ dùng kỹ thuật kiểm thử sau:
● Dựa Trên Đặc Tả Use Case (Use Case): Sử dụng các use case để kiểm thử các tình huống thực tế.
Thực hiện kiểm thử dựa trên các testcase đã định nghĩa.
So sánh kết quả thu được từ kiểm thử với kết quả kỳ vọng trong từng testcase.7.6 Lập Báo Cáo Kết Quả Kiểm Thử:
Thống kê kết quả kiểm thử:
Tên chức năng Tổng số test case Số test case Fail Đăng nhập 13 3 Đăng ký 9 5
Quên, đổi mật khẩu 11 1 Đặt hàng 5 2
Trong quá trình phát triển, vì thời gian phát triển có hạn nhóm có những lỗi đã được hoàn thiện tuy nhiên một số lỗi vẫn đang trong thời gian chỉnh sửa, những lỗi được phát hiện sẽ được tiếp tục chỉnh sửa vào Khóa luận tốt nghiệp.
Chương 5 Kiểm thử phần mềm
Bug Management Tool
5.2.1 Tổng quát về Bug Management Tool
Bug Management Tool là một ứng dụng phần mềm cho phép các nhóm phát triển quản lý hiệu quả các lỗi và sự cố phần mềm Chức năng chính của công cụ theo dõi lỗi là cung cấp một kho lưu trữ tập trung, nơi tất cả các lỗi, khiếm khuyết, bất thường và lỗi có thể được ghi lại và ghi lại Trong mỗi báo cáo, các chi tiết chính được ghi lại, chẳng hạn như các bước để tái tạo vấn đề, mức độ ưu tiên hoặc mức độ nghiêm trọng được chỉ định, trạng thái hiện tại và bất kỳ siêu dữ liệu có liên quan nào khác thông qua các trường có thể tùy chỉnh.
Ngoài việc theo dõi cơ bản, nhiều công cụ theo dõi lỗi hiệu quả còn cung cấp các tính năng bổ sung giúp hợp lý hóa quy trình giải quyết Các nhóm có thể liên kết các lỗi được báo cáo với các cam kết hoặc thay đổi mã cụ thể để cho phép truy xuất nguồn gốc giữa các sự cố và các bản sửa lỗi Tính năng tìm kiếm và lọc mạnh mẽ cũng giúp các nhà phát triển nhanh chóng xử lý khối lượng lớn lỗi theo thời gian. Việc tích hợp với các công cụ kiểm tra và kiểm soát nguồn giúp nâng cao hơn nữa tính minh bạch Cài đặt bảo mật dựa trên vai trò đảm bảo đúng cá nhân có quyền truy cập để xem, thảo luận và chỉ định lỗi khi cần Khả năng báo cáo đã trang bị cho các nhóm và người quản lý cái nhìn sâu sắc về các vấn đề nóng bỏng, tốc độ của nhóm và sự tiến bộ nói chung Thông qua việc theo dõi tổng hợp và giám sát dự án, các công cụ phát hiện lỗi nhằm mục đích cải thiện cả chất lượng phần mềm và hiệu quả phát triển.
Tóm lại, hệ thống theo dõi lỗi hoạt động như một trung tâm để sắp xếp tất cả các sự cố phần mềm gặp phải Các tính năng của chúng hỗ trợ tối ưu hóa hoạt động cộng tác, khả năng hiển thị và quản lý các vấn đề từ đầu đến cuối.
Azure DevOps là dịch vụ lưu trữ do Microsoft cung cấp nhằm giúp các tổ chức quản lý các dự án phát triển phần mềm và cộng tác phát triển mã Nó cung cấp hệ thống theo dõi lỗi tích hợp mạnh mẽ để quản lý các sự cố phần mềm trong suốt vòng đời phát triển Lỗi được báo cáo dưới dạng mục công việc có thể tùy chỉnh thuộc loại
"Lỗi" nắm bắt các chi tiết chính như mô tả, các bước tái tạo, mức độ ưu tiên được chỉ định và trạng thái hiện tại trong vòng đời Tính năng tìm kiếm và lọc mạnh mẽ cho phép dễ dàng truy cập vào mọi lỗi được báo cáo Các nhà phát triển có thể được chỉ định quyền sở hữu các lỗi cụ thể để theo dõi tiến trình giải quyết Hệ thống theo dõi phẩm phát triển khác để truy xuất nguồn gốc.
Các khả năng bổ sung trong Azure DevOps nâng cao khả năng hiển thị và giám sát lỗi Bảng thông tin có thể tùy chỉnh và báo cáo tích hợp kiểm tra xu hướng về các lỗi còn tồn tại, các vấn đề cũ, chu kỳ giải quyết, v.v Ban quản lý đạt được những hiểu biết sâu sắc để xác định và giải quyết sự thiếu hiệu quả Nhận xét mở rộng cho phép thảo luận rõ ràng xung quanh từng lỗi giữa người kiểm tra, nhà phát triển và các bên liên quan khác Việc tích hợp với các công cụ kiểm tra của bên thứ ba sẽ đưa các lỗi được báo cáo trực tiếp vào Azure DevOps Hệ thống mở rộng quy mô để hỗ trợ các cơ sở mã rất lớn và các nhóm dự án phức tạp, được phân bổ trên toàn cầu.
Những lí do khiến Azure Devops vượt trội:
● Nền tảng tích hợp - Đây là một nền tảng ALM hoàn chỉnh với tính năng kiểm soát nguồn tích hợp, CI/CD, lập kế hoạch, v.v Các vấn đề luôn nằm trong bối cảnh mã và bản dựng.
● Khả năng mở rộng - Xử lý các dự án rất lớn và phức tạp với hàng nghìn nhà phát triển Các nhóm phân tán có thể cộng tác liền mạch.
● Khả năng tùy chỉnh - Mọi thứ trong Azure có thể được tùy chỉnh để phù hợp với bất kỳ dự án nào.
● Tích hợp các công cụ phát triển - Tích hợp liền mạch với các công cụ code như
● Lập kế hoạch linh hoạt - Hỗ trợ theo dõi và lập kế hoạch linh hoạt tốt hơn thông qua bảng, hồ sơ, kanban giúp quản lý lỗi như một phần của công việc tổng thể.
● Truy xuất nguồn gốc - Liên kết trực tiếp tới các code, test cung cấp khả năng truy xuất đầy đủ từ nguồn gốc đến giải pháp.
● Kiểm soát bảo mật và quyền truy cập - Kiểm soát bảo mật chi tiết đảm bảo quyền truy cập và khả năng hiển thị phù hợp.
● Khả năng phân tích - Khả năng báo cáo mạnh mẽ giúp người dùng xác định được gốc lỗi và tập trung vào nó
● Hỗ trợ và cộng đồng - Được hỗ trợ bởi Microsoft với sự hỗ trợ 24/7, tài nguyên trực tuyến và cộng đồng người dùng lớn.
● Độ tin cậy và khả năng mở rộng - Cơ sở hạ tầng được lưu trữ đảm bảo thời gian hoạt động, độ tin cậy và khả năng mở rộng cao cho các dự án lớn.
TRIỂN KHAI CI/CD
Giới thiệu
CI là viết tắt của Continuous Integration (tích hợp liên tục), CD là viết tắt của Continuous Delivery (chuyển giao liên tục) hoặc Continuous Deployment (triển khai liên tục).
Khái niệm CI/CD thường đề cập đến việc tự động hóa trong quy trình phát triển phần mềm và chuyển giao sản phẩm, giúp cho việc tích hợp diễn ra nhanh hơn và sản phẩm hoàn thiện được chuyển đến người dùng trong thời gian ngắn nhất.
Hiện nay, CI/CD đã được áp dụng rộng rãi vào quy trình làm việc của các doanh nghiệp làm trong lĩnh vực IT, song hành cùng với DevOps và Agile Một quy trình CI/CD hoàn chỉnh có thể được hình dung như sau:
● Developer commit code (đẩy code lên server).
● Quy trình CI/CD sẽ tự động chạy build, chạy test và deploy sản phẩm.
● Tiếp tục chuyển giao sản phẩm đến người dùng.
Triển khai
6.2.1 Docker Đầu tiên, nhóm chúng em sử dụng Docker để đóng gói sản phẩm containers đồng thời trên một máy chủ nhất định Các container là lightweight và chúng không cần tải thêm của một hypervisor, chạy trực tiếp trên kernel của máy chủ. Điều này có nghĩa là bạn có thể chạy nhiều containers hơn trên một kết hợp phần cứng nhất định hơn là nếu bạn đang sử dụng các máy ảo Ta thậm chí có thể chạy các container Docker trong máy chủ lưu trữ mà thực sự là các máy ảo.
● Docker cung cấp công cụ và nền tảng để quản lý vòng đời của các containers của bạn:
● Phát triển ứng dụng và các thành phần hỗ trợ bằng cách sử dụng các containers.
● Các container trở thành đơn vị phân phối và thử nghiệm ứng dụng.
● Khi đã sẵn sàng, triển khai ứng dụng của bạn vào môi trường production, dưới dạng container hoặc orchestrated service Điều này hoạt động giống nhau cho dù môi trường sản xuất của bạn là một trung tâm dữ liệu cục bộ, nhà cung cấp đám mây hay là một tổ hợp của hai.
GitHub Actions là một công cụ tự động hóa linh hoạt tích hợp một cách mượt mà với nền tảng GitHub Nó trang bị cho nhà phát triển khả năng tự động hóa các quy trình làm việc khác nhau trong dự án phát triển phần mềm của họ Công cụ này hoạt động dựa trên mô hình sự kiện, có nghĩa là nó thực hiện một loạt các hành động được xác định trước khi có sự kiện cụ thể xảy ra, như đẩy mã nguồn, tạo pull request, hoặc các sự kiện kích hoạt khác.
Chương 6 Triển khai CI/CD
GitHub Actions bao gồm một số thành phần chính để tự động hóa các quy trình phát triển và triển khai Dưới đây là một tóm tắt về các thành phần quan trọng của GitHub Actions:
Workflows là các bước cụ thể và quy trình làm việc được định nghĩa trong file cấu hình YAML Mỗi workflow định rõ các sự kiện (events) kích hoạt nó và chứa một hoặc nhiều công việc (jobs)
Công việc là một tập hợp các bước thực hiện một số công việc cụ thể Các công việc trong một job có thể được thực hiện trên các máy ảo khác nhau và chạy độc lập hoặc theo các quy tắc xác định.
Bước là các hành động cụ thể thực hiện trong một công việc Mỗi bước là một command, script hoặc một hành động đã được định nghĩa sẵn.
Hành động là các thành phần tái sử dụng có thể được chia sẻ và sử dụng trong nhiều dự án GitHub Actions cung cấp một thư viện hành động cơ bản và bạn cũng có thể tạo hành động tùy chỉnh của riêng mình.
Sự kiện là các trigger hoặc kích hoạt mà một workflow đặc định sẽ phản ứng Ví dụ: push code, tạo pull request, hay tạo release.
Máy chạy là môi trường thực hiện các công việc của workflow GitHubActions có máy chạy được quản lý bởiGitHub, nhưng bạn cũng có thể tự chạy máy chạy của mình (self-hosted runners).
Artifacts (Tài liệu) việc khác có thể sử dụng trong quy trình làm việc.
Matrix Builds (Xây dựng ma trận)
GitHub Actions hỗ trợ xây dựng ma trận, cho phép bạn chạy các bước trong nhiều môi trường và điều kiện khác nhau một cách dễ dàng.
Github Action cung cấp cho chúng ta các secret variable để lưu trữ những thông tin quan trọng không được tiết lộ, đây là một số biến nhóm sử dụng để lưu: Đây là kết quả Workflow mà nhóm đã xây dựng để tích hợp quy trình CI/CD:
Chương 6 Triển khai CI/CD nhỏ và vừa (SMEs) tới các doanh nghiệp lớn Phần mềm Github Package Registry được đánh giá cao bởi cả người dùng lẫn chuyên gia trong lĩnh vực Package RegistrySoftware.
Chương 6 Triển khai CI/CD
Amazon Elastic Compute Cloud (Amazon EC2) là một cơ sở hạ tầng điện toán đám mây được cung cấp bởi Amazon Web Services (AWS) giúp cung cấp tài nguyên máy tính ảo hoá theo yêu cầu.
Amazon EC2 cung cấp các ứng dụng máy tính ảo hoá có thể mở rộng về khả năng xử lý cùng các thành phần phần cứng ảo như bộ nhớ máy tính (ram), vi xử lý, linh hoạt trong việc lựa chọn các phân vùng lưu trữ dữ liệu ở các nền tảng khác nhau và sự an toàn trong quản lý dịch vụ bởi kiến trúc ảo hoá đám mây mạnh mẽ của AWS.
Amazon EC2 sẽ cung cấp một hoặc máy chủ ảo có thể kết hợp với nhau để dễ dàng triển khai ứng dụng nhanh nhất và đảm bảo tính sẵn sàng cao nhất Thậm chí về mặt thanh toán bạn dễ dàng biết được các mức chi phí cần thanh toán dựa trên thông tin tài nguyên bạn sử dụng.
ỨNG DỤNG MÔ HÌNH NGÔN NGỮ LỚN
Triển khai được LLM để chăm sóc khách hàng
Việc triển khai một hệ thống chatbot tích hợp trên trang web sử dụng Platform Dify và các kỹ thuật prompt engineering là một quá trình phức tạp nhưng cần thiết để tối ưu hóa tương tác giữa khách hàng và doanh nghiệp Mục tiêu của hệ thống này là đảm bảo rằng chatbot có thể trả lời người dùng một cách thân thiện và chính xác, đồng thời đáp ứng các yêu cầu nghiệp vụ của một nhân viên chăm sóc khách hàng. a Tích hợp Platform Dify vào Trang Web
Platform Dify cung cấp một nền tảng linh hoạt để xây dựng và triển khai chatbot. Quá trình tích hợp bao gồm các bước sau:
Thiết lập tài khoản và cấu hình cơ bản: Đầu tiên, cần đăng ký tài khoản trên Platform Dify và thiết lập các thông số ban đầu cho chatbot.
Thiết kế giao diện người dùng: Sử dụng công cụ thiết kế của Dify để tạo ra một giao diện trực quan và thân thiện với người dùng Giao diện này phải phù hợp với nhận diện thương hiệu của doanh nghiệp. chatbot trên các trang mong muốn. b.Áp dụng Kỹ thuật Prompt Engineering
Prompt engineering là kỹ thuật quan trọng nhằm hướng dẫn chatbot trả lời chính xác và phù hợp Các bước triển khai kỹ thuật này bao gồm:
Xác định các tình huống giao tiếp phổ biến: Liệt kê các câu hỏi và tình huống thường gặp mà khách hàng có thể hỏi.
Thiết kế các prompt mẫu: Viết các mẫu câu hỏi và câu trả lời cho từng tình huống cụ thể Các prompt này cần rõ ràng, ngắn gọn và dễ hiểu.
Tối ưu hóa xử lý ngôn ngữ tự nhiên (NLP): Áp dụng các kỹ thuật NLP để giúp chatbot hiểu và phản hồi các câu hỏi của khách hàng một cách tự nhiên và thân thiện.Tích hợp các quy tắc nghiệp vụ: Đảm bảo rằng các câu trả lời của chatbot tuân thủ các quy tắc và quy định của doanh nghiệp.
Chương 7 Ứng dụng mô hình ngôn ngữ lớn c Kiểm tra và Tối ưu hóa
Sau khi tích hợp và cấu hình, cần tiến hành kiểm tra toàn diện để đảm bảo hệ thống hoạt động hiệu quả:
Kiểm tra chức năng: Đảm bảo rằng tất cả các chức năng của chatbot hoạt động đúng như mong đợi, bao gồm khả năng trả lời các câu hỏi thông thường và xử lý các tình huống phức tạp.
Tối ưu hóa liên tục: Dựa trên phản hồi và phân tích hiệu suất, liên tục tối ưu hóa các prompt và quy trình để cải thiện chất lượng câu trả lời cũng như tốc độ phản của chatbot thông qua việc thay đổi model phù hợp.
Sử dụng LLM để thay thế hệ thống recommendation truyền thống
Trong bối cảnh công nghệ ngày càng phát triển, việc sử dụng mô hình ngôn ngữ lớn(LLM) để thay thế các thuật toán hệ thống gợi ý truyền thống đã trở thành một xu hướng nổi bật Bằng cách cung cấp cho LLM những thông tin chi tiết như lịch sử tương tác, lịch sử mua hàng và danh sách các sản phẩm của trang web, hệ thống không chỉ cải thiện độ chính xác trong việc đề xuất sản phẩm mà còn mang lại nhiều lợi ích vượt trội khác.
Lịch sử tương tác là một yếu tố quan trọng trong việc đào tạo mô hình LLM nhằm hiểu rõ hơn về hành vi và sở thích của người dùng Các thông tin này bao gồm:
Lượt xem sản phẩm: Dữ liệu về các sản phẩm mà người dùng đã xem cho phép hệ thống nhận diện những mặt hàng mà họ có thể quan tâm.
Thời gian tương tác: Đo lường thời gian người dùng dành cho mỗi sản phẩm giúp đánh giá mức độ quan tâm và sự chú ý của họ. b Lịch sử Mua Hàng
Lịch sử mua hàng cung cấp cái nhìn sâu sắc về các sản phẩm mà người dùng đã thực sự mua, giúp hệ thống hiểu rõ hơn về nhu cầu và sở thích thực tế của họ Thông tin này bao gồm:
Sản phẩm đã mua: Ghi nhận các sản phẩm mà người dùng đã mua giúp hệ thống xác định các mặt hàng phù hợp với sở thích của họ.
Tần suất mua hàng: Phân tích tần suất mua hàng để dự đoán các sản phẩm mà người dùng có thể cần trong tương lai.
Giá trị đơn hàng: Xác định các mức giá mà người dùng thường chi tiêu, từ đó đề xuất các sản phẩm phù hợp với ngân sách của họ. c Danh sách Sản phẩm của Trang web
Danh sách sản phẩm của trang web cung cấp một cơ sở dữ liệu phong phú về tất cả các sản phẩm có sẵn Điều này bao gồm:
Thông tin sản phẩm: Bao gồm tên sản phẩm, mô tả, hình ảnh, giá cả và các thông số kỹ thuật khác.
Phân loại sản phẩm: Các sản phẩm được phân loại theo các danh mục khác nhau, giúp mô hình LLM dễ dàng tìm kiếm và đề xuất các sản phẩm liên quan. Đánh giá và bình luận: Thông tin về đánh giá và bình luận của khách hàng giúp mô hình hiểu rõ hơn về chất lượng và độ hài lòng của sản phẩm.
Chương 7 Ứng dụng mô hình ngôn ngữ lớn
Ứng dụng RAG để giải quyết bài toán khó của mô hình LLM
Bẳng việc tích hợp các kỹ thuật tiên tiến như Retrieval-Augmented Generation (RAG) đã mở ra nhiều cơ hội mới trong việc nâng cao hiệu quả và phạm vi ứng dụng của các mô hình ngôn ngữ lớn (LLM) Việc đưa hai bộ tài liệu quan trọng là “Các bệnh phổ biến ở chó mèo” và “Hướng dẫn sử dụng trang web cho người dùng” đã nâng cao khả năng trả lời của chatbot Giờ đây chatbot có thể trả lời người dùng những câu hỏi liên quan về các bệnh ở chó và mèo, các câu hỏi về sử dụng trang web mà không cần phải train lại một model mới trên lượng dataset này. a Xử Lý RAG
RAG kết hợp hai thành phần chính:
● Truy xuất thông tin (Retrieval): Thành phần này chịu trách nhiệm tìm kiếm các đoạn văn bản liên quan từ một tập hợp tài liệu lớn dựa trên truy vấn đầu vào.
● Sinh văn bản (Generation): Thành phần này sử dụng thông tin truy xuất được để tạo ra câu trả lời tự nhiên và phù hợp với truy vấn.
Quy trình tổng quát của RAG bao gồm các bước sau:
● Nhận truy vấn đầu vào: Một câu hỏi hoặc yêu cầu từ người dùng.
● Truy xuất thông tin: Tìm kiếm và lấy các đoạn văn bản liên quan từ bộ tài liệu.
● Sinh văn bản: Sử dụng mô hình ngôn ngữ để tạo ra câu trả lời dựa trên thông tin được truy xuất. b RAG cho tài liệu nội bộ
Bộ Tài Liệu "Các Bệnh Thường Gặp Ở Chó Và Mèo"
Bộ tài liệu này cung cấp thông tin chi tiết về các bệnh lý phổ biến ở chó và mèo, bao gồm triệu chứng, nguyên nhân, cách điều trị và phòng ngừa Quy trình xử lý RAG với bộ tài liệu này như sau:
Nhận truy vấn đầu vào: Ví dụ, người dùng hỏi "Triệu chứng của bệnh viêm da ở chó là gì?".
Truy xuất thông tin: Hệ thống sử dụng thành phần truy xuất để tìm kiếm các đoạn văn bản liên quan đến "viêm da ở chó" từ bộ tài liệu. gồm ngứa, đỏ da, và rụng lông."
Bộ Tài Liệu "Hướng Dẫn Sử Dụng Trang Web"
Bộ tài liệu này chứa các hướng dẫn chi tiết về cách sử dụng các chức năng và dịch vụ trên trang web Quy trình xử lý RAG với bộ tài liệu này như sau:
Nhận truy vấn đầu vào: Ví dụ, người dùng hỏi "Làm thế nào để đặt hàng trên trang web?".
Truy xuất thông tin: Hệ thống sử dụng thành phần truy xuất để tìm kiếm các đoạn văn bản liên quan đến "đặt hàng" từ bộ tài liệu.
Sinh văn bản: Thành phần sinh văn bản lấy các đoạn văn bản được truy xuất và tạo ra một câu trả lời tự nhiên, chẳng hạn như "Để đặt hàng trên trang web, bạn cần đăng nhập vào tài khoản, chọn sản phẩm muốn mua, thêm vào giỏ hàng và làm theo các bước thanh toán.