CHƯƠNG 1. Ngôn ngữ lập trình Python 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. 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ị Sinh viên thực hiện: Nguyễn Thị Như Ý Người hướng dẫn: TS. Hoàng Thị Mỹ Lệ 3 Xây dựng hệ thống chatbot hỗ trợ nghiên cứu tài liệu 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. 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. 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. Sinh viên thực hiện: Nguyễn Thị Như Ý Người hướng dẫn: TS.
Hoàng Thị Mỹ Lệ 4 Xây dựng hệ thống chatbot hỗ trợ nghiên cứu tài liệu 1. 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. Í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ă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 1. OpenAI GPT GPT (Generative Pre-trained Transformer) là một trong những framework đáng chú ý, được phát triển dựa trên kiến trúc Transformer. Kiến trúc Transformer được giới thiệu bởi Vaswani et al.
năm 2017, nhanh chóng trở thành tiêu chuẩn trong xử lý ngôn ngữ tự nhiên và nhiều ứng dụng khác của trí tuệ nhân tạo. 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. Sinh viên thực hiện: Nguyễn Thị Như Ý Người hướng dẫn: TS.
Hoàng Thị Mỹ Lệ 5 Xây dựng hệ thống chatbot hỗ trợ nghiên cứu tài liệu 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. 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). 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.) - LLM được thiết kế để cung cấp giao diện chuẩn cho tất cả các nhà cung cấp đó. 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.
Sinh viên thực hiện: Nguyễn Thị Như Ý Người hướng dẫn: TS. Hoàng Thị Mỹ Lệ 6 Xây dựng hệ thống chatbot hỗ trợ nghiên cứu tài liệu 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. 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ẽ. 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) Sinh viên thực hiện: Nguyễn Thị Như Ý Người hướng dẫn: TS.
Hoàng Thị Mỹ Lệ 7 Xây dựng hệ thống chatbot hỗ trợ nghiên cứu tài liệu CHƯƠNG 2. PHÂN TÍCH THIẾT KẾ HỆ THỐNG 2.