1. Trang chủ
  2. » Giáo Dục - Đào Tạo

xây dựng hệ thống chatbot hỗ trợ nghiên cứu tài liệu

66 4 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây dựng Hệ thống Chatbot Hỗ trợ Nghiên cứu Tài liệu
Tác giả Nguyễn Thị Như Ý
Người hướng dẫn TS. Hoàng Thị Mỹ Lệ
Trường học Đại học Đà Nẵng
Chuyên ngành Công nghệ Thông tin
Thể loại Đồ án Tốt nghiệp Đại học
Năm xuất bản 2024
Thành phố Đà Nẵng
Định dạng
Số trang 66
Dung lượng 0,97 MB

Nội dung

Nội dung chính của đồ án: - Đăng ký - Đăng nhập - Tải tài liệu lên - Xem tài liệu - Xóa tài liệu - Tạo cuộc trò chuyện mới với bot - Đổi tên cuộc trò chuyện - Chia sẻ cuộc trò chuyện vớ

Trang 1

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT

NGHIÊN CỨU TÀI LIỆU

Sinh viên thực hiện : Nguyễn Thị Như Ý

Trang 2

NGHIÊN CƯU TÀI LIỆU

Giảng viên hướng dẫn duyệt

Trang 3

NHẬN XÉT CỦA NGƯỜI HƯỚNG DẪN

Trang 4

NHẬN XÉT CỦA NGƯỜI PHẢN BIỆN

Trang 5

Việc sử dụng các thư viện và framework như ReactJS, FastAPI, Langchain, và OpenAI là sự chọn lựa kỹ lưỡng để đảm bảo hiệu suất và trải nghiệm người dùng ReactJS được sử dụng cho phần giao diện người dùng, mang lại sự linh hoạt và hiệu suất cao FastAPI, một framework nhanh chóng và hiệu quả, được chọn để xử lý các yêu cầu server, giúp hệ thống hoạt động mượt mà và nhanh chóng Langchain và OpenAI, với khả năng xử lý ngôn ngữ tự nhiên và trí tuệ nhân tạo, đóng vai trò quan trọng trong việc cung cấp khả năng tương tác thông minh với người dùng

Trong phần xử lý dữ liệu, việc sử dụng các model Embedding và LLM (Language Model) giúp hệ thống hiểu biết và xử lý thông tin ngôn ngữ một cách hiệu quả Hệ quản trị cơ sở dữ liệu MySQL được chọn lựa cho tính ổn định và khả năng mở rộng, đảm bảo rằng dữ liệu của người dùng được lưu trữ và quản lý một cách an toàn

Trang web xây dựng không chỉ là một nền tảng hỗ trợ nghiên cứu tài liệu, mà còn cung cấp các chức năng chính như đăng ký, đăng nhập, tải/xem/xóa tài liệu, tạo cuộc trò chuyện với bot Quản lý cuộc trò chuyện và ghi chú mang lại tiện lợi và tổ chức cao, cũng như khả năng chia sẻ thông tin, thúc đẩy hợp tác và trao đổi

Tóm lại, đồ án không chỉ là hệ thống chatbot thông thường mà còn là nền tảng toàn diện hỗ trợ nghiên cứu và tối ưu hóa trải nghiệm người dùng thông qua sử dụng công nghệ mới nhất

Trang 6

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP

Giảng viên hướng dẫn: TS Hoàng Thị Mỹ Lệ Sinh viên thực hiện: Nguyễn Thị Như Ý Mã SV: 1911505310271

1 Tên đề tài:

Xây dựng hệ thống chatbot hỗ trợ nghiên cứu tài liệu

2 Nội dung chính của đồ án:

- Đăng ký - Đăng nhập - Tải tài liệu lên - Xem tài liệu - Xóa tài liệu - Tạo cuộc trò chuyện mới với bot - Đổi tên cuộc trò chuyện

- Chia sẻ cuộc trò chuyện với người dùng khác - Xóa cuộc trò chuyện

- Tạo ghi chú - Xem ghi chú - Chỉnh sửa ghi chú - Chia sẻ ghi chú với người dùng khác - Xóa ghi chú

3 Các sản phẩm dự kiến

- Hệ thống chatbot hỗ trợ nghiên cứu tài liệu

4 Ngày giao đồ án: 14/09/2023 5 Ngày nộp đồ án: 21/01/2024

Đà Nẵng, ngày 21 tháng 01 năm 2024

Trang 7

i Lời đầu tiên, em muốn bày tỏ lòng biết ơn sâu sắc đến quý thầy cô đã hỗ trợ và đồng hành cùng em trong quá trình thực hiện đề tài này Trong số đó, em muốn

đặc biệt gửi lời cảm ơn chân thành đến TS Hoàng Thị Mỹ Lệ vì sự tận tình và động

viên không ngừng từ phía Cô trong suốt hành trình nghiên cứu và thực hiện đề tài tốt nghiệp

Đồng thời, em cũng xin bày tỏ lòng biết ơn sâu sắc đến quý thầy cô thuộc ngành Công nghệ thông tin khoa Công nghệ số, trường Đại học Sư phạm Kỹ thuật - Đại học Đà Nẵng Những kiến thức chuyên sâu và kinh nghiệm quý báu mà quý thầy cô đã chia sẻ trong suốt 4 năm học là nguồn động viên quan trọng, giúp em xây dựng nền tảng vững chắc để thực hiện đề tài này

Trong quá trình nghiên cứu và thực hiện, do sự hạn chế về kiến thức và thời gian, em nhận thức rằng có những khuyết điểm và sai sót không tránh khỏi Vì vậy, em mong nhận được sự thông cảm và góp ý từ quý thầy, cô để em có cơ hội hoàn thiện đề tài một cách toàn diện hơn Những ý kiến đó không chỉ là điểm nhấn cho đề tài hiện tại mà còn là những bài học quý giá để em tránh được những sai lầm trong tương lai

Em xin chân thành cảm ơn!

Trang 8

ii Em xin cam đoan:

- Mọi nội dung trong luận văn này được thực hiện dưới sự hướng dẫn và giám sát chặt chẽ của cô Hoàng Thị Mỹ Lệ Cô đã đóng góp không ngừng về kiến thức chuyên sâu và sự hỗ trợ tận tâm, giúp em hoàn thiện công trình nghiên cứu của mình

- Tất cả các nguồn tham khảo được sử dụng trong luận văn đều được trích dẫn một cách chính xác và rõ ràng, bao gồm tên tác giả, tên công trình, thời gian và địa điểm công bố Việc này nhằm đảm bảo tính minh bạch, trung thực và tôn trọng quyền sở hữu trí tuệ của các tác giả

- Em cam kết không có bất kỳ hành vi sao chép không hợp lệ, vi phạm quy chế đào tạo hay gian trá nào trong quá trình thực hiện luận văn Trách nhiệm về mọi hành động sai trái đều thuộc về em, và em sẽ chịu hoàn toàn hậu quả pháp lý và đạo đức nếu có bất kỳ vấn đề nào xảy ra

Sinh viên thực hiện

Trang 9

iii

NHẬN XÉT CỦA NGƯỜI HƯỚNG DẪN 2

NHẬN XÉT CỦA NGƯỜI PHẢN BIỆN 2

2 Đối tượng và phạm vi nghiên cứu 1

a Đối tượng nghiên cứu 1

b Pham vi nghiên cứu 1

3 Phương pháp nghiên cứu 1

Trang 10

iv

1.5 Hệ quản trị cơ sở dữ liệu 7

CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 8

2.1 Các yêu cầu chức năng 8

2.2 Kịch bản cho từng chức năng 8

2.2.1 Đăng nhập 8

2.2.2 Đăng ký 9

2.2.3 Đăng xuất 9

2.2.4 Tải tài liệu lên 10

2.2.5 Xem nội dung tài liệu 10

2.2.6 Xóa tài liệu 11

2.2.7 Tạo cuộc trò chuyện mới với bot 11

2.2.8 Chỉnh sửa tên cuộc trò chuyện 11

2.2.9 Chia sẻ cuộc trò chuyện với người dùng khác 12

2.2.10 Xem nội dung cuộc trò chuyện 12

2.2.11 Xóa cuộc trò chuyện 13

2.3.3 Tải tài liệu lên 19

2.3.4 Xem nội dung tài liệu 20

2.3.5 Xóa tài liệu 21

2.3.6 Tạo cuộc trò chuyện mới với bot 22

2.3.7 Chỉnh sửa tên cuộc trò chuyện 23

2.3.8 Chia sẻ cuộc trò chuyện với người dùng khác 24

2.3.9 Xem nội dung cuộc trò chuyện 25

Trang 11

2.3.16 Xem thông báo 30

2.4 Thiết kế cơ sở dữ liệu 31

2.4.1 Chi tiết các bảng 31

2.4.2 Sơ đồ ERD 35

CHƯƠNG 3 XÂY DỰNG CHƯƠNG TRÌNH 36

3.1 Giao diện chương trình 36

3.1.1 Giao diện trang đăng nhập 36

3.1.2 Giao diện trang đăng ký 36

3.1.3 Giao diện trang danh sách tài liệu 37

3.1.4 Giao diện trang tải tài liệu lên 37

3.1.5 Giao diện trang xem nội dung tài liệu 38

3.1.6 Giao diện xem các tài liệu tương tự 39

3.1.7 Giao diện trang xóa tài liệu 40

3.1.8 Giao diện tạo mới cuộc trò chuyện với bot 40

3.1.9 Giao diện chỉnh sửa tên cuộc trò chuyện 41

3.1.10 Giao diện xem nội dung cuộc trò chuyện 42

3.1.11 Giao diện chia sẻ cuộc trò chuyện với người dùng khác 44

3.1.12 Giao diện xóa cuộc trò chuyện 44

3.1.13 Giao diện danh sách ghi chú 45

3.1.14 Giao diện tạo mới ghi chú 45

3.1.15 Giao diện xem nội dung ghi chú 46

3.1.16 Giao diện chỉnh sửa ghi chú 46

3.1.17 Giao diện xóa ghi chú 47

3.1.18 Giao diện chia sẻ ghi chú với người dùng khác 47

3.1.19 Giao diện xem thông báo 48

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 50

3.2 Kết luận 50

Trang 12

vi

Trang 14

v

Hình 2.1 Sơ đồ hoạt động của chức năng đăng nhập 17

Hình 2.2 Sơ đồ hoạt động của chức năng đăng ký 18

Hình 2.3 Sơ đồ hoạt động của chức năng tải tài liệu lên 19

Hình 2.4 Sơ đồ hoạt động của chức năng xem nội dung tài liệu 20

Hình 2.5 Sơ đồ hoạt động của chức năng xóa tài liệu 21

Hình 2.6 Sơ đồ hoạt động của chức năng tạo cuộc trò chuyện mới với bot 22

Hình 2.7 Sơ đồ hoạt động của chức năng chỉnh sửa tên cuộc trò chuyện 23

Hình 2.8 Sơ đồ hoạt động của chức năng chia sẻ cuộc trò chuyện với người dùng khác 24

Hình 2.9 Sơ đồ hoạt động của chức năng xem nội dung cuộc trò chuyện 25

Hình 2.10 Sơ đồ hoạt động của chức năng xóa cuộc trò chuyện 25

Hình 2.11 Sơ đồ hoạt động của chức năng tạo ghi chú 26

Hình 2.12 Sơ đồ hoạt động của chức năng xem ghi chú 27

Hình 2.13 Sơ đồ hoạt động của chức năng chỉnh sửa ghi chú 28

Hình 2.14 Sơ đồ hoạt động của chức năng chia sẻ ghi chú với người dùng khác 29

Hình 2.15 Sơ đồ hoạt động của chức năng xóa ghi chú 30

Hình 2.16 Sơ đồ hoạt động của chức năng xem thông báo 30

Hình 2.17 Sơ đồ ERD 35

Hình 3.1 Giao diện trang đăng nhập 36

Hình 3.2 Giao diện trang đăng ký 36

Hình 3.3 Giao diện trang danh sách tài liệu 37

Hình 3.4 Giao diện trang tải tài liệu lên 37

Hình 3.5 Giao diện trang tải tài liệu lên 38

Hình 3.6 Giao diện trang xem nội dung tài liệu 38

Hình 3.7 Giao diện trang xem nội dung tài liệu 39

Hình 3.8 Giao diện các tài liệu tương tự 39

Hình 3.9 Giao diện trang xóa tài liệu 40

Hình 3.10 Giao diện trang tạo mới cuộc trò chuyện với bot 40

Trang 15

vi

Hình 3.11 Giao diện trang tạo mới cuộc trò chuyện với bot 41

Hình 3.12 Giao diện trang chỉnh sửa tên cuộc trò chuyện 41

Hình 3.13 Giao diện trang xem nội dung cuộc trò chuyện 42

Hình 3.14 Giao diện xem nội dung cuộc trò chuyện 42

Hình 3.15 Giao diện xem nội dung cuộc trò chuyện với nội dung tài liệu 43

Hình 3.16 Giao diện xem chi tiết nội dung câu trả lời 43

Hình 3.17 Giao diện trang chia sẻ cuộc trò chuyện với người dùng khác 44

Hình 3.18 Giao diện trang xóa cuộc trò chuyện 44

Hình 3.19 Giao diện trang danh sách ghi chú 45

Hình 3.20 Giao diện trang tạo mới ghi chú 45

Hình 3.21 Giao diện trang xem nội dung ghi chú 46

Hình 3.22 Giao diện trang chỉnh sửa ghi chú 46

Hình 3.23 Giao diện trang xóa ghi chú 47

Hình 3.24 Giao diện trang chia sẻ ghi chú với người dùng khác 47

Hình 3.25 Giao diện trang chia sẻ ghi chú với người dùng khác 48

Hình 3.26 Giao diện trang xem thông báo 48

Hình 3.27 Giao diện trang xem thông báo 49

Trang 16

MỞ ĐẦU

1 Mục tiêu đề tài

Nghiên cứu và phát triển một chatbot thông minh nhằm hỗ trợ người dùng trong việc nghiên cứu tài liệu Chatbot có khả năng tìm kiếm thông tin hiệu quả từ các tài liệu mà người dùng tải lên, và đưa ra câu trả lời liên quan nhất đối với câu hỏi của người dùng về bất kì phần nào có trong nội dung của tài liệu

Với mục tiêu này, hệ thống chatbot hỗ trợ nghiên cứu tào liệu sẽ cung cấp một giao diện dễ sử dụng và tích hợp các tính năng như tải liệu, tìm kiếm tài liệu, xem tài liệu, xóa tài liệu Ngoài ra, nó cũng sẽ hỗ trợ tương tác giữa người sử dụng và hệ thống thông qua giao tiếp tự nhiên, giúp họ nhanh chóng thu thập thông tin cần thiết cho công việc nghiên cứu Thêm vào đó hệ thống còn tích hợp tính năng tạo ghi chú, để người dùng có thể ghi chú lại những gì họ muốn, để thuận tiện hơn cho việc nghiên cứu của mình

Mục tiêu của đề tài là cung cấp một công cụ hiệu quả và linh hoạt cho người dùng, giúp họ tiết kiệm thời gian, nâng cao chất lượng công việc đọc và nghiên cứu tài liệu

2 Đối tượng và phạm vi nghiên cứu

a Đối tượng nghiên cứu

Người dùng có nhu cầu đọc và nghiên cứu các tài liệu

b Pham vi nghiên cứu

Sử dụng cho tất các mọi người 3 Phương pháp nghiên cứu

- Tìm và đọc các tài liệu liên quan đến các kiến thức về trí tuệ nhân tạo (chatbot, langchain), kiến thức về tạo website

- Tham khảo, trải nghiệm các ứng dụng, website tương tự

4 Giải pháp công nghệ - Ngôn ngữ lập trình: Python, JavaScript - Framwork: Langchain, ReactJs, FastAPI, OpenAI GPT - Model: Embedding, LLM (Large Language Model)

Trang 17

- Công cụ lập trình: Visual Studio Code - Hệ quản trị cơ sở dữ liệu: MySQL - Công cụ hỗ trợ: MySQL Workbench

5 Cấu trúc đồ án Cấu trúc đồ án tốt nghiệp gồm các phần như sau:

- Mở đầu: Nghiên cứu, tìm hiểu và đưa ra lý do chọn đề tài, mục tiêu và mục

đích khi xây dựng và phát triển đề tài Xác định rõ phạm vi và đối tượng hướng đến, giải pháp công nghệ để triển khai, xây dựng đề tài, đồng thời phân tích đặc tả yêu cầu nghiệp vụ

- Chương I: Tìm hiểu, giới thiệu tổng quát các kiến thức về ngôn ngữ lập trình

Python, React JS và hệ quản trị cơ sở dữ liệu MySQL

- Chương II: Phân tích các tác nhân và chức năng của từng tác nhân, yêu cầu

phi chức năng của hệ thống Thiết kế sơ đồ use-case, sơ đồ hoạt động, sơ đồ ERD Thiết kế cơ sở dữ liệu Xây dựng kịch bản cho từng use-case trong hệ thống

- Chương III: Xây dựng giao diện và chức năng của hệ thống - Kết luận và hướng phát triển: Kết luận chung cho các chương trong đồ án

Trình bày những vấn đề đã giải quyết đồng thời trình bày hướng phát triển

- Tài liệu tham khảo

Trang 18

CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 1.1 Ngôn ngữ lập trình Python

1.1.1 Python

Python là một ngôn ngữ lập trình bậc cao được tạo ra bởi Guido van Rossum và ra mắt lần đầu vào năm 1991 Được thiết kế với ưu điểm dễ đọc, dễ học và dễ nhớ, Python được sử dụng rộng rãi trong nhiều mục đích lập trình, đặc biệt là trong phát triển trí tuệ nhân tạo Ngôn ngữ này có cấu trúc sáng sủa, rõ ràng, thuận tiện cho người mới học lập trình và có khả năng viết mã với số lần gõ phím tối thiểu

Python là ngôn ngữ lập trình hoàn toàn tạo kiểu động và sử dụng cơ chế cấp phát bộ nhớ tự động, tương tự như Perl, Ruby, Scheme, Smalltalk, và Tcl Được phát triển trong một dự án mã nguồn mở, Python được quản lý bởi tổ chức phi lợi nhuận Python Software Foundation

Ban đầu, Python được phát triển cho nền tảng Unix, nhưng sau đó đã mở rộng hỗ trợ cho nhiều hệ điều hành khác nhau từ MS-DOS đến Mac OS, OS/2, Windows, Linux và các hệ điều hành khác thuộc họ Unix Mặc dù có sự đóng góp của nhiều cá nhân, Guido van Rossum vẫn là tác giả chủ yếu và giữ vai trò quyết định chủ chốt trong hướng phát triển của Python

Python luôn đứng đầu trong danh sách các ngôn ngữ lập trình phổ biến nhất, và vào tháng 7 năm 2018, sau 30 năm công tác, Guido van Rossum đã từ chức lãnh đạo trong cộng đồng ngôn ngữ Python

1.1.2 JavaScript

JavaScript là ngôn ngữ lập trình được nhà phát triển sử dụng để tạo trang web tương tác Từ làm mới bảng tin trên trang mạng xã hội đến hiển thị hình ảnh động và bản đồ tương tác, các chức năng của JavaScript có thể cải thiện trải nghiệm người dùng của trang web Là ngôn ngữ kịch bản phía máy khách, JavaScript là một trong những công nghệ cốt lõi của World Wide Web Ví dụ: khi duyệt internet, bất cứ khi nào bạn thấy quảng cáo quay vòng dạng hình ảnh, menu thả xuống nhấp để hiển thị

Trang 19

hoặc màu sắc phần tử thay đổi động trên trang web cũng chính là lúc bạn thấy các hiệu ứng của JavaScript

1.2 Framework 1.2.1 Langchain

LangChain là một framework được thiết kế để đơn giản hóa việc tạo các ứng dụng bằng mô hình ngôn ngữ lớn (LLM) Là một khung tích hợp mô hình ngôn ngữ, các trường hợp sử dụng của LangChain phần lớn trùng lặp với các trường hợp sử dụng của mô hình ngôn ngữ nói chung, bao gồm phân tích và tóm tắt tài liệu , chatbot và phân tích mã

LangChain được ra mắt vào tháng 10 năm 2022 dưới dạng một dự án nguồn mở của Harrison Chase khi đang làm việc tại công ty khởi nghiệp về máy học Robust Intelligence Dự án nhanh chóng thu hút được sự nổi tiếng, với những cải tiến từ hàng trăm người đóng góp trên GitHub, các cuộc thảo luận thịnh hành trên Twitter, hoạt động sôi nổi trên máy chủ Discord của dự án , nhiều hướng dẫn trên YouTube và các cuộc gặp gỡ ở San Francisco và London [1]

1.2.2 ReactJS

Một trong những đặc điểm nổi bật của ReactJS là cách tiếp cận khác biệt trong quản lý giao diện Thay vì thao tác trực tiếp với DOM, ReactJS sử dụng Virtual DOM, một bản sao của DOM được lưu trữ trong bộ nhớ, và chỉ cập nhật lại các phần cần thay đổi thay vì cập nhật toàn bộ DOM Điều này giúp tối ưu hiệu suất và cải thiện trải nghiệm người dùng

ReactJS cũng hỗ trợ việc tạo ra các thành phần giao diện động và tái sử dụng Thành phần React có thể được xây dựng độc lập và tái sử dụng trong nhiều phần của ứng dụng Điều này giúp tăng tính linh hoạt và dễ bảo trì của mã nguồn

ReactJS cũng có khả năng tích hợp với các thư viện hoặc framework khác như Redux, React Router để quản lý trạng thái ứng dụng và điều hướng định tuyến Ngoài ra, ReactJS cũng hỗ trợ JSX, một cú pháp mở rộng của JavaScript, để viết mã HTML trong mã JavaScript, giúp dễ dàng xây dựng giao diện và duy trì khả năng đọc mã nguồn

Trang 20

1.2.3 FastAPI

FastAPI là một web framework hiện đại, hiệu năng cao để xây dựng web APIs với Python 3.8+ dựa trên tiêu chuẩn Python type hints

Những tính năng như: • Nhanh: Hiệu năng rất cao khi so sánh với NodeJS và Go Một trong những Python

framework nhanh nhất • Code nhanh: Tăng tốc độ phát triển tính năng từ 200% tới 300% • Ít lỗi hơn: Giảm khoảng 40% những lỗi phát sinh bởi con người (nhà phát triển) • Trực giác tốt hơn: Được các trình soạn thảo hỗ tuyệt vời Completion mọi nơi Ít

thời gian gỡ lỗi • Dễ dàng: Được thiết kế để dễ dàng học và sử dụng Ít thời gian đọc tài liệu • Ngắn: Tối thiểu code bị trùng lặp Nhiều tính năng được tích hợp khi định nghĩa

tham số Ít lỗi hơn • Tăng tốc: Có được sản phẩm cùng với tài liệu (được tự động tạo) có thể tương

tác • Được dựa trên các tiêu chuẩn: Dựa trên (và hoàn toàn tương thích với) các tiêu

chuẩn mở cho APIs : OpenAPI (trước đó được biết đến là Swagger) và JSON Schema

Một đặc điểm quan trọng của GPT là khả năng pre-training, tức là mô hình được huấn luyện trước đó trên một lượng lớn dữ liệu mà không cần thông tin cụ thể về nhiệm vụ cụ thể Điều này giúp GPT tự động học được cấu trúc và thông tin từ dữ liệu, làm cho nó trở nên linh hoạt và có khả năng thích ứng cao với nhiều loại nhiệm vụ khác nhau

Trang 21

OpenAI cung cấp API (Application Programming Interface) cho GPT, cho phép nhà phát triển tích hợp và sử dụng khả năng xử lý ngôn ngữ tự nhiên mạnh mẽ này trong các ứng dụng của mình Điều này mở ra nhiều cơ hội sáng tạo trong việc xây dựng ứng dụng chatbot, tạo văn bản sáng tạo, dịch ngôn ngữ tự nhiên, và nhiều ứng dụng khác trong lĩnh vực trí tuệ nhân tạo

1.3 Model 1.3.1 Embedding

Embedding tạo ra một biểu diễn vector của một đoạn văn bản Điều này hữu ích vì nó có nghĩa là chúng ta có thể nghĩ về văn bản trong không gian vector, và thực hiện các công việc như tìm kiếm ngữ nghĩa nơi chúng ta tìm kiếm các đoạn văn bản tương tự nhất trong không gian vector

Lớp Embedding cơ bản trong LangChain tiếp xúc với hai phương thức: một cho việc nhúng tài liệu và một cho việc nhúng một truy vấn Phương thức đầu tiên nhận đầu vào là nhiều đoạn văn bản, trong khi phương thức thứ hai nhận một đoạn văn bản duy nhất Lý do để có hai phương thức riêng biệt là vì một số nhà cung cấp nhúng có các phương thức nhúng khác nhau cho tài liệu (để được tìm kiếm) so với truy vấn (chính truy vấn tìm kiếm) [2]

1.3.2 LLM (Large Language Model)

Mô hình ngôn ngữ lớn (LLM) là thành phần cốt lõi của LangChain LangChain không phục vụ LLM của riêng mình mà cung cấp giao diện tiêu chuẩn để tương tác với nhiều LLM khác nhau Cụ thể, giao diện này là giao diện lấy đầu vào là một chuỗi và trả về một chuỗi

Có rất nhiều nhà cung cấp LLM (OpenAI, Cohere, Hugging Face, v.v.) - LLM được thiết kế để cung cấp giao diện chuẩn cho tất cả các nhà cung cấp đó [3]

1.4 Công cụ lập trình - Visual Studio Code

Phần mềm Visual Studio Code là một giải pháp IDE JavaScript chuyên nghiệp hỗ trợ các tính năng tiên tiến cho ngôn ngữ lập trình JavaScript, HTML và CSS, cung cấp những trải nghiệm hoàn thiện để lập trình và phát triển web

Trang 22

Phần mềm WebStorm cung cấp một trình biên tập mã thông minh am hiểu sâu sắc cấu trúc của mã được viết bằng JavaScript, HTML hay CSS Visual Studio Code cũng là một công cụ tuyệt vời cho việc phát triển các ứng dụng Node.js Cùng với các công cụ tích hợp để kiểm tra, gỡ lỗi và phân tích mã và hội nhập với VCS khác nhau, Visual Studio Code là một công cụ cần thiết cho phát triển web mạnh mẽ và hiệu quả

Visual Studio Code có tính năng công nghệ web tiên tiến, giúp tạo ra mã số chất lượng cao hơn, có thể duy trì được với các công cụ như hoàn thành mã, tái cấu trúc, định dạng mã, chống lỗi on-the-fly, và nhiều hơn nữa Phần mềm Visual Studio Code cũng rất tuyệt vời cho việc phát triển các ứng dụng Node.js nhờ một trình gỡ lỗi tích hợp và đặc trưng Node.js hỗ trợ mã hóa

Hoàn thành với các công cụ tích hợp để kiểm tra, gỡ rối và phân tích mã và tích hợp với nhiều VCS khác nhau, Visual Studio Code là một công cụ thiết yếu cho sự phát triển web hiệu quả và mạnh mẽ

1.5 Hệ quản trị cơ sở dữ liệu

MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng Vì MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên internet MySQL miễn phí hoàn toàn cho nên bạn có thể tải về MySQL từ trang chủ Nó có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho các hệ điều hành dòng Windows, Linux, Mac OS X, Unix, FreeBSD, NetBSD, SGI Irix, Solaris, SunOS,…

MySQL là một trong những ví dụ rất cơ bản về Hệ Quản trị Cơ sở dữ liệu quan hệ sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL)

Trang 23

CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 2.1 Các yêu cầu chức năng

Hệ thống chatbot hỗ trợ nghiên cứu tài liệu gồm các chức năng sau: - Đăng nhập

- Đăng ký - Đăng xuất - Tải tài liệu lên - Xem nội dung tài liệu - Xóa tài liệu

- Tạo cuộc trò chuyện mới với bot - Cập nhật tên cuộc trò chuyện - Chia sẻ cuộc trò chuyện với người dùng khác - Xem nội dung cuộc trò chuyện

- Xóa cuộc trò chuyện - Tạo ghi chú

- Xem ghi chú - Cập nhật ghi chú - Chia sẻ ghi chú cho người dùng khác - Xóa ghi chú

- Xem thông báo

2.2 Kịch bản cho từng chức năng 2.2.1 Đăng nhập

Tên usecase Đăng nhập

Mô tả Người dùng đã có tài khoản muốn đăng nhập vào hệ thống

Đầu vào Email, mật khẩu

Đầu ra Hệ thống thông báo đăng nhập thành công

Các bước thực hiện 1 Người dùng vào hệ thống

Trang 24

Các bước phát sinh Trường hợp ngoại 2.1 Email hoặc mật khẩu sai → Hệ thống báo “Email hoặc

mật khẩu không đúng” 2.2 Email chưa được đăng ký → Hệ thống báo “Email chưa được đăng ký”

2.2.2 Đăng ký Tên usecase Đăng ký

Mô tả Người dùng muốn đăng ký tài khoản để truy cập vào hệ

thống

Đầu vào Email, mật khẩu

Đầu ra Hệ thống thông báo đăng ký thành công

Các bước thực hiện 1 Người dùng vào trang đăng ký

Các bước phát sinh Trường hợp ngoại 3.1 Email đã được đăng ký → Hệ thống sẽ báo “Email đã

tồn tại” → Quay lại bước 2

2.2.3 Đăng xuất Tên usecase Đăng xuất

Mô tả Người dùng muốn đăng xuất khỏi hệ thống

Đầu vào Đăng nhập thành công

Đầu ra Hệ thống thông báo đăng xuất thành công, về trang đăng

nhập

Các bước thực hiện 1 Người dùng nhấn vào nút menu ở góc dưới

Các bước phát sinh Trường hợp ngoại

Trang 25

2.2.4 Tải tài liệu lên Tên usecase Tải tài liệu lên

Mô tả Người dùng muốn tải tài liệu từ máy của mình lên hệ thống

Đầu vào Đăng nhập thành công, các tài liệu muốn tải lên

Đầu ra Các tài liệu được tải lên thành công

Các bước thực hiện 1 Người dùng vào trang quản lý tài liệu

2 Nhấn vào nút tải lên 3 Chọn các tài liệu muốn tải lên 4 Nhấn vào nút tải lên

Các bước phát sinh 2a Người dùng nhấn vào nút  để hủy

3a Người dùng nhấn vào close để đóng cửa sổ chọn tài liệu

4a Người dùng nhấn vào nút Làm mới để bỏ các tài liệu đã chọn tải lên

Đầu vào Đăng nhập thành công, tài liệu muốn xem nội dung

Đầu ra Nội dung tài liệu

Các bước thực hiện 1 Người dùng vào trang quản lý tài liệu

2 Nhấn vào nút menu ở từng tài liệu 3 Nhấn vào nút Xem nội dung

Các bước phát sinh 2a Người dùng đóng menu → Hủy xem nội dung tài liệu Trường hợp ngoại

Trang 26

2.2.6 Xóa tài liệu Tên usecase Xóa tài liệu

Mô tả Người dùng muốn xóa tài liệu đã có trên hệ thống

Đầu vào Đăng nhập thành công, tài liệu muốn xóa

Đầu ra Tài liệu đã bị xóa

Các bước thực hiện 1 Người dùng vào trang quản lý tài liệu

2 Nhấn vào nút menu ở từng tài liệu 3 Nhấn vào nút Xóa

Các bước phát sinh 2a Người dùng đóng menu → Hủy xóa tài liệu Trường hợp ngoại

2.2.7 Tạo cuộc trò chuyện mới với bot Tên usecase Tạo cuộc trò mới với bot

Mô tả Người dùng muốn tạo một cuộc trò chuyện mới

Đầu vào Đăng nhập thành công, chọn tài liệu muốn tạo đoạn chat

Đầu ra Cuộc trò chuyện mới được tạo

Các bước thực hiện 1 Người dùng nhấn vào nút tạo mới cuộc trò chuyện

2 Chọn 1 tài liệu hoặc chọn tất cả tài liệu để tạo cuộc trò chuyện

Mô tả Người dùng muốn chỉnh sửa tên của cuộc trò chuyện

Đầu vào Đăng nhập thành công, chọn cuộc trò chuyện muốn chỉnh

sửa tên

Trang 27

Đầu ra Tên cuộc trò chuyện được chỉnh sửa

Các bước thực hiện 1 Người dùng nhấn vào cuộc trò chuyện

2 Nhấn vào  để chỉnh sửa tên cuộc trò chuyện 3 Thay đổi tên cuộc trò chuyện

Các bước phát sinh 3a Người dùng nhấn  để hủy thay đổi Trường hợp ngoại

2.2.9 Chia sẻ cuộc trò chuyện với người dùng khác Tên usecase Chia sẻ cuộc trò chuyện với người dùng khác

Mô tả Người dùng muốn chia sẻ cuộc trò chuyện của mình với

người dùng khác

Đầu vào Đăng nhập thành công, chọn cuộc trò chuyện muốn chia

sẻ

Đầu ra Cuộc trò chuyện được chia sẻ thành công

Các bước thực hiện 1 Người dùng chọn cuộc trò chuyện muốn chia sẻ

2 Nhấn vào nút chia sẻ 3 Nhập email của người dùng muốn chia sẻ 4 Nhấn chia sẻ

Các bước phát sinh 2a Người dùng đóng popup chia sẻ → Hủy chia sẻ cuộc

trò chuyện 3a Người dùng nhập email sai → nhập lại

Trường hợp ngoại

2.2.10 Xem nội dung cuộc trò chuyện Tên usecase Xem nội dung cuộc trò chuyện

Mô tả Người dùng muốn xem nội dung của cuộc trò chuyện

Đầu vào Đăng nhập thành công, chọn cuộc trò chuyện muốn xem

nội dung

Đầu ra Nội dung cuộc trò chuyện

Trang 28

Các bước thực hiện 1 Người dùng nhấn vào cuộc trò chuyện muốn xem

nội dung 2 Người dùng đưa chuột vào 1 tin nhắn để xem chi

tiết

Các bước phát sinh Trường hợp ngoại

2.2.11 Xóa cuộc trò chuyện Tên usecase Xóa cuộc trò chuyện

Mô tả Người dùng muốn xóa trò chuyện

Đầu vào Đăng nhập thành công, chọn cuộc trò chuyện muốn xóa

Đầu ra Cuộc trò chuyện được xóa

Các bước thực hiện 1 Người dùng nhấn vào cuộc trò chuyện

2 Nhấn vào nút Xóa để xóa cuộc trò chuyện 3 Chọn đồng ý ở popup xác nhận

Các bước phát sinh 3a Người dùng nhấn hủy ở popup xác nhận → hủy việc

xóa cuộc trò chuyện

Trường hợp ngoại

2.2.12 Tạo ghi chú Tên usecase Tạo ghi chú

Mô tả Người dùng muốn tạo ghi chú

Đầu vào Đăng nhập thành công, tiêu đề và nội dung ghi chú

Đầu ra Ghi chú được tạo thành công

Các bước thực hiện 1 Người dùng vào trang quản lý ghi chú

2 Nhấn vào nút tạo ghi chú 3 Nhập tiêu đề, nội dung ghi chú 4 Nhấn lưu để tạo ghi chú mới

Các bước phát sinh 4a Người dùng nhấn hủy

Trang 29

4a1 Người dùng nhấn đồng ý, hủy tạo mới ghi chú, quay lại trang quản lý ghi chú

4a2 Người dùng nhấn hủy, ở lại trang tạo mới ghi chú

Trường hợp ngoại

2.2.13 Xem ghi chú Tên usecase Xem ghi chú

Mô tả Người dùng muốn xem ghi chú đã tạo hoặc được chia sẻ

trước đó

Đầu vào Đăng nhập thành công, chọn ghi chú muốn xem

Đầu ra Nội dung ghi chú

Các bước thực hiện 1 Người dùng vào trang quản lý ghi chú

2 Nhấn vào ghi chú muốn xem nội dung

Các bước phát sinh Trường hợp ngoại

2.2.14 Chỉnh sửa ghi chú Tên usecase Chỉnh sửa ghi chú

Mô tả Người dùng muốn chỉnh sửa nội dung/tiêu đề ghi chú

Đầu vào Đăng nhập thành công, chọn ghi chú muốn chỉnh sửa

Đầu ra Ghi chú được chỉnh sửa

Các bước thực hiện 1 Người dùng vào trang quản lý ghi chú

2 Chọn ghi chú muốn chỉnh sửa 3 Thay đổi tiêu đề/nội dung ghi chú 4 Nhấn lưu để lưu thay đổi

Các bước phát sinh 4a Người dùng nhấn hủy

4a1 Người dùng nhấn đồng ý, hủy chỉnh sửa ghi chú, quay lại trang xem ghi chú

4a2 Người dùng nhấn hủy, ở lại trang chỉnh sửa ghi chú

Trường hợp ngoại

Trang 30

2.2.15 Chia sẻ ghi chú cho người dùng khác Tên usecase Chia sẻ ghi chú với người dùng khác

Mô tả Người dùng muốn chia sẻ ghi chú của mình với người

dùng khác

Đầu vào Đăng nhập thành công, chọn ghi chú muốn chia sẻ

Đầu ra Ghi chú được chia sẻ thành công

Các bước thực hiện 1 Người dùng chọn ghi chú muốn chia sẻ

2 Nhấn vào nút chia sẻ 3 Nhập email của người dùng muốn chia sẻ 4 Nhấn chia sẻ

Các bước phát sinh 2a Người dùng đóng popup chia sẻ → Hủy chia sẻ ghi chú

3a Người dùng nhập email sai → nhập lại

Trường hợp ngoại

2.2.16 Xóa ghi chú Tên usecase Xóa ghi chú

Mô tả Người dùng muốn xóa ghi chú

Đầu vào Đăng nhập thành công, chọn ghi chú muốn xóa

Đầu ra Ghi chú được xóa

Các bước thực hiện 1 Người dùng vào trang ghi chú

2 Nhấn vào nút xóa ở ghi chú muốn xóa 3 Chọn đồng ý ở popup xác nhận xóa

Các bước phát sinh 3a Người dùng nhấn hủy ở popup xác nhận → hủy việc

xóa cuộc trò chuyện

Trang 31

Đầu vào Đăng nhập thành công,

Đầu ra Danh sách thông báo

Các bước thực hiện 1 Người dùng nhấn vào biểu tượng thông báo

2 Chọn thông báo muốn xem

Các bước phát sinh Trường hợp ngoại

Trang 32

2.3 Sơ đồ hoạt động 2.3.1 Đăng nhập

Hình 2.1 Sơ đồ hoạt động của chức năng đăng nhập

Trang 33

2.3.2 Đăng ký

Hình 2.2 Sơ đồ hoạt động của chức năng đăng ký

Ngày đăng: 20/09/2024, 19:37

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w