Mục tiêu của dự án là xây dựng một trợ lý ảo thông minh, có thể hỗ trợ sinh viên trong việc tìm kiếm thông tin học tập, giải đáp các câu hỏi liên quan đến tuyển sinh và cung cấp các dịch
CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ,
Tổng quan v`ềhệ thống trợ lý ẢO - - Ăn HH HH HH rh 5 1.2 Các công nghệ chính sử dụng trong dự án . + 555cc se rseeersrrseree 5 1.2.1 Request và BeautifulSoup — Thu thập dữ liệu từ trang web chính thức của
Trợ lý ảo là ứng dụng phần mềm thông minh hỗ trợ người dùng giải quyết vấn đề thông qua giao tiếp tự nhiên, như truy vấn thông tin và thực hiện tác vụ Trong giáo dục, trợ lý ảo giúp cung cấp thông tin nhanh chóng, giảm tải công việc cho các bộ phận hỗ trợ và tối ưu hóa trải nghiệm người dùng Đặc biệt, việc xây dựng trợ lý ảo cho Học Viện Công Nghệ Bưu Chính Viễn Thông mang lại nhiều lợi ích trong việc nâng cao hiệu quả học tập và quản lý thông tin.
Hệ thống Thông (PTTT) không chỉ cung cấp thông tin chính xác về chương trình học và tuyển sinh, mà còn tích hợp tính năng tư vấn tự động, hỗ trợ sinh viên và thí sinh nhanh chóng và hiệu quả Dự án của chúng tôi áp dụng công nghệ tiên tiến để xây dựng trợ lý ảo thông minh, thu thập dữ liệu từ nguồn thông tin chính thức, sử dụng các mô hình AI để tạo câu trả lời tự động và tối ưu hóa trải nghiệm người dùng qua giao diện web thân thiện.
1.2 Các công nghệ chính sử dụng trong dự án
Dự án trợ lý ảo PTTT áp dụng nhiều công nghệ tiên tiến để xây dựng hệ thống, bao gồm thu thập dữ liệu, phát triển lõi AI, và triển khai backend cũng như frontend Các công nghệ chính được sử dụng trong dự án này đóng vai trò quan trọng trong việc nâng cao hiệu suất và khả năng hoạt động của trợ lý ảo.
1.2.1 Request và BeautifulSoup — Thu thập dữ liệu từ trang web chính thức của
Để đảm bảo thông tin chính xác và cập nhật về các chương trình học, tuyển sinh và thông tin khác từ PTIT, hệ thống trợ lý ảo C3 cần thu thập dữ liệu từ trang web chính thức của trường Chúng tôi áp dụng hai công nghệ phổ biến trong việc thu thập dữ liệu từ web để thực hiện nhiệm vụ này.
Request [I] là một thư viện Python mạnh mẽ cho phép gửi yêu cầu HTTP đến các trang web và thu thập dữ liệu Thư viện này giúp đơn giản hóa quá trình thực hiện các yêu cầu, mang lại hiệu quả cao trong việc lấy thông tin từ Internet.
GET hoặc POST và lấy v`ênội dung của trang web dưới dạng HTML hoặc JSON
Sau khi thu thập dữ liệu từ trang web của PTITT, chúng tôi sử dụng BeautifulSoup để phân tích cú pháp HTML và trích xuất thông tin cần thiết BeautifulSoup là một thư viện Python mạnh mẽ cho việc xử lý và phân tích dữ liệu HTML, giúp tách các phần tử trên trang web như tiêu đề mô tả, thông tin khóa học, lịch thi và các thông tin khác.
Quá trình thu thập dữ liệu từ trang web sẽ đảm bảo rằng trợ lý ảo luôn cung cấp thông tin chính xác và kịp thởi cho người dùng
1.2.2 RAG (Retrieval-Augmented Generation) — L6i AI thông minh
Retrieval-Augmented Generation (RAG) là một phương pháp hiệu quả kết hợp giữa truy xuất thông tin và sinh ngữ nghĩa Hệ thống RAG tìm kiếm các đoạn văn bản liên quan từ các nguồn dữ liệu lớn, như cơ sở dữ liệu của PITT, để cung cấp câu trả lời chính xác và mạch lạc Quá trình này bao gồm hai bước chính: đầu tiên, hệ thống truy xuất thông tin từ các tài liệu có sẵn như trang web, cơ sở dữ liệu và tài liệu học tập; sau đó, nó sử dụng mô hình sinh ngữ nghĩa để tạo ra câu trả lời cho người dùng.
Quá trình này không chỉ giúp hệ thống phản hổ các câu hỏi mà còn cải thiện tính linh hoạt và sự phù hợp trong các câu trả lời
Sự kết hợp giữa hai yếu tố này cho phép trợ lý ảo cung cấp câu trả lời chính xác hơn và linh hoạt hơn trong việc xử lý các câu hỏi mới mà không cần cập nhật toàn bộ cơ sở dữ liệu.
1.2.3 LangChain — Xây dựng quy trình làm việc thông minh
LangChain là một thư viện Python mạnh mẽ giúp tạo ra quy trình làm việc phức tạp cho các mô hình ngôn ngữ Thư viện này kết nối các mô hình AI với công cụ bên ngoài như API, cơ sở dữ liệu và hệ thống bên thứ ba, từ đó xây dựng quy trình tự động và thông minh để trả lời câu hỏi và thực hiện các tác vụ.
Trong dự án trợ lý ảo PTITT, LangChain sẽ kết nối các mô hình ngôn ngữ với các công cụ như Gemini API, Chroma database và hệ thống dữ liệu của PTIT, nhằm tạo ra quy trình làm việc liền mạch và hoàn toàn tự động hóa.
LangChain sẽ giúp trợ lý ảo hoạt động hiệu quả hơn trong việc xử lý các yêu cân từ người dùng
1.2.4 Gemini API và Chroma Database — Hệ thống lưu trữ và truy vấn thông tin
Gemini API là một công cụ mạnh mẽ của Google, cung cấp các mô hình ngôn ngữ tiên tiến và hỗ trợ xây dựng hệ thống AI thông minh Trong dự án trợ lý ảo PTIT, Gemini API sẽ được áp dụng để xử lý yêu cầu ngôn ngữ tự nhiên từ người dùng, từ đó tạo ra những câu trả lời chính xác dựa trên dữ liệu đã được thu thập và xử lý.
Chroma Database là một cơ sở dữ liệu tối ưu hóa cho lưu trữ và truy vấn vector embedding, mang lại hiệu quả cao trong việc quản lý dữ liệu lớn và phức tạp Cơ sở dữ liệu này hỗ trợ hệ thống trợ lý ảo trong việc lưu trữ thông tin đã được xử lý.
Để tối ưu hóa tốc độ truy vấn và độ chính xác của câu trả lời, có 6 bước quan trọng trong việc truy xuất và sinh câu trả lời 161 Chroma đóng vai trò quan trọng trong việc duy trì các embedding của dữ liệu, giúp truy xuất thông tin từ tài liệu trong cơ sở dữ liệu một cách nhanh chóng và hiệu quả.
1.2.5 FastAPI — Backend hiệu suất cao
FastAPI là một framework Python hiện đại, mạnh mẽ và nhanh chóng, lý tưởng cho việc xây dựng API RESTful Nó hỗ trợ khả năng xử lý bất đồng bộ, giúp tối ưu hóa hiệu suất và trải nghiệm người dùng.
FastAPI được lựa chọn để xây dựng backend cho hệ thống trợ lý ảo PTIT nhờ vào khả năng xử lý bất đồng bộ (asynchronous), giúp tối ưu hóa hiệu suất khi xử lý lượng lớn yêu cầu từ người dùng.
THIẾT KẾ HỆ THỐNG . 5£ 5+ctetEkkrerkrrrrkrrrrkerrkee 8 2.1 Giới thiệu tổng quan hệ thống, . G5 S51 k1 23 E11 TH ng ngàn ch 8 2.2 KiéN tric hé thong
Chroma Database để phát triển khả năng hiểu và tạo câu trả lời của hệ thống
Lõi AI có vai trò quan trọng trong việc truy xuất và sinh ngữ nghĩa từ dữ liệu đã thu thập, mang đến câu trả lời thông minh và chính xác cho người dùng.
Lớp API được xây dựng bằng FastAPI, đảm nhiệm việc nhận và xử lý các yêu cầu từ frontend FastAPI không chỉ tối ưu hóa hiệu suất mà còn nâng cao tốc độ phản hồi của hệ thống, đồng thời hỗ trợ giao tiếp hiệu quả giữa các lớp khác nhau trong kiến trúc hệ thống.
Lớp giao diện người dùng (Frontend Layer) được phát triển bằng Vue.js, mang đến trải nghiệm thân thiện và dễ sử dụng cho sinh viên và thí sinh Giao diện này bao gồm các tính năng như tìm kiếm thông tin, đặt câu hỏi, xem lịch trình và nhận đề xuất về ngành học.
2.3 Thiết kế chi tiết các thành ph hệ thống
2.3.1 Thu nhập dữ liệu (Thực hiện: Minh và Bộ) Để xây dựng một chatbot có khả năng trả lời chính xác v`êcác thông tin liên quan đến PTITT, việc thu thập dữ liệu từ các trang web chính thức của trưởng là bước đầi tiên và rất quan trọng và tốn nhi u thời gian Dữ liệu được thu thập từ các ngu Ân đáng tin cậy sẽ đảm bảo tính chính xác và đ% đủ của thụng tin mà trợ lý ảo cung cấp Quy trỡnh thu thập dữ liệu bao ứ ằn cỏc bước sau:
1 Xác định các ngu ôn dữ liệu chính: Các trang web chính thống của
PTTT là nguồn thông tin quan trọng cung cấp các trang tin tức, thông báo, chương trình học, hướng dẫn tuyển sinh và quy định dành cho sinh viên Những trang này chứa đựng thông tin cần thiết để giải đáp các câu hỏi thường gặp từ sinh viên và thí sinh.
Gui yéu c 41 HTTP và lấy dữ liệu HTML: Thư viện requests được sử dụng để gửi yêu cầi HTTP đến các URL của PTIT va tai v éndi dung
Việc truy xuất HTML từ các trang web giúp thu thập thông tin trực tiếp từ nguồn gốc, đồng thời đảm bảo rằng dữ liệu luôn được cập nhật theo những thay đổi của trang web.
Phân tích và trích xuất dữ liệu với BeautifulSoup: Với nội dung
Thư viện BeautifulSoup được sử dụng để phân tích cú pháp HTML, giúp trích xuất thông tin quan trọng từ cấu trúc phức tạp của trang web Nó loại bỏ các thẻ không cần thiết và chỉ giữ lại nội dung thiết yếu như tiêu đề, đoạn văn, danh sách và các liên kết liên quan.
4 Lưu trữ dữ liệu đã trích xuất: Các thông tin đã trích xuất được lưu dưới dạng ủle txt và để trong thư mục với nội dung tương ứng
2.3.2 Xây dựng lõi AI cho trợ lý ảo (thực hiện: Trọng)
2.3.2.1 Chuẩn bị dữ liệu và tạo các mô hình truy vấn tương ứng với tửng loại tài liệu
Trước khi bắt tay vào xây dựng hệ thống trợ lý ảo PTTT, việc chuẩn bị dữ liệu là bước quan trọng hàng đầu Dữ liệu này sẽ được sử dụng để huấn luyện và hỗ trợ hệ thống trong việc trả lời các câu hỏi của người dùng Quá trình chuẩn bị bao gồm nhiều bước, từ việc tải tài liệu đến việc tạo ra các mô hình truy vấn để tìm kiếm và trích xuất thông tin từ cơ sở dữ liệu Các bước này cần được thực hiện theo một quy trình rõ ràng nhằm đảm bảo thông tin được lưu trữ và truy vấn một cách chính xác và hiệu quả.
Bước đầu tiên trong việc chuẩn bị dữ liệu là tải các tài liệu cần thiết từ một thư mục nguồn Mỗi tài liệu sẽ thuộc về một loại cụ thể, chẳng hạn như tài liệu tuyển sinh, chương trình học, lịch học và quy định của trưởng, và được lưu trữ trong các thư mục riêng biệt Tiếp theo, quá trình cat nhỏ tài liệu (chunking) sẽ được thực hiện để tổ chức thông tin một cách hiệu quả hơn.
Sau khi tài liệu đã được tải lên, bước tiếp theo là cắt nhỏ tài liệu thành các đoạn
Việc cắt nhỏ tài liệu thành các phần nhỏ hơn giúp xử lý và phân tích thông tin hiệu quả hơn Quá trình này cho phép hệ thống chia tài liệu thành các đoạn dễ quản lý, từ đó nâng cao khả năng embedding và tối ưu hóa việc truy xuất dữ liệu.
(nhúng) thành các vector, đ “ng thời giữ nguyên ngữ nghĩa và cấu trúc của thông tin trong mỗi ph ân
Quá trình cắt nhỏ tài liệu sẽ tuân theo một số quy tắc nhất định, sử dụng các yếu tố như dấu câu, ký tự đặc biệt và kích thước tối đa của mỗi chunk làm tiêu chí Mỗi chunk có thể là một đoạn văn hoặc một câu hoàn chỉnh, giúp giữ nguyên ý nghĩa của thông tin và tạo điều kiện thuận lợi cho quá trình embedding sau này.
Cắt nhỏ tài liệu không chỉ tổ chức lại thông tin mà còn nâng cao hiệu quả truy vấn Khi hệ thống nhận câu hỏi từ người dùng, các chunk nhỏ dễ dàng so sánh với câu hỏi đầu vào để cung cấp thông tin phù hợp Việc nhúng dữ liệu vào không gian vector (Embeddings) cũng góp phần quan trọng trong quá trình này.
Sau khi tài liệu được chia thành các chunk, mỗi chunk sẽ được chuyển đổi thành một vector trong không gian vector thông qua quá trình nhúng (embedding).
Quá trình này cho phép các chunk được chuyển đổi thành các vector số học, giúp việc so sánh và tìm kiếm trong không gian vector trở nên dễ dàng hơn Hệ thống áp dụng mô hình để thực hiện điều này.
Mô hình "text-embedding-004" của Gemini AI là một công cụ mạnh mẽ và hiệu quả trong việc xử lý văn bản tiếng Việt, với khả năng hiểu ngữ nghĩa và các đặc điểm của ngôn ngữ tự nhiên, đặc biệt trong các ngữ cảnh tiếng Việt.