Bối cảnh và vấn đề nghiên cứu

Trong bối cảnh của cuộc cách mạng công nghiệp lần thứ tư, trí tuệ nhân tạo hội thoại (Conversational AI) trở thành một hướng phát triển tất yếu, hỗ trợ máy tính giao tiếp tự nhiên với con người qua văn bản hoặc giọng nói. Trong thực tế, các công nghệ AI hội thoại phổ biến như Chatbot và Voicebot vận hành dựa trên các thuật toán lai (hybrid), kết hợp giữa việc xử lý luật theo kịch bản có sẵn và khả năng học máy (Machine Learning) dựa trên chính những kịch bản đó. Mô hình này đòi hỏi bắt buộc phải có các công cụ thiết kế và sinh kịch bản hội thoại chuyên dụng để cung cấp dữ liệu đầu vào cho hệ thống quản lý hội thoại. Tuy nhiên, phần lớn các công cụ thiết kế kịch bản hiện nay trên thị trường là phần mềm đóng gói độc quyền, khó tái sử dụng hoặc tùy biến cho các nền tảng khác nhau.

Tại nền tảng AI hội thoại SmartDialog, công cụ thiết kế luồng hội thoại và sinh kịch bản phiên bản đầu tiên (v1) đã được đưa vào vận hành nhưng bộc lộ nhiều hạn chế kỹ thuật:

  • Giao diện gặp lỗi hiển thị và thao tác vẽ đường kết nối thiếu thuận tiện, gây khó khăn cho người sử dụng.
  • Thuật toán xử lý kịch bản thiếu tính ổn định, đôi khi sinh ra kịch bản bị sai, thừa hoặc thiếu bước.
  • Hiệu năng của hệ thống suy giảm rõ rệt khi số lượng nút và đường kết nối trong luồng hội thoại tăng cao.
  • Hệ thống phụ thuộc vào một thư viện đồ họa cũ đã dừng bảo trì và phát triển.

Trước thực trạng đó, đồ án tốt nghiệp tập trung giải quyết bài toán xây dựng công cụ thiết kế và sinh kịch bản hội thoại phiên bản mới (v2) mang tính tổng quát, có khả năng tái sử dụng cao và được áp dụng trực tiếp vào nền tảng SmartDialog. Mục tiêu nghiên cứu được xác định cụ thể gồm 4 nhiệm vụ:

  1. Xây dựng công cụ thiết kế luồng hội thoại trực quan, dễ thao tác, tối ưu hóa trải nghiệm người dùng.
  2. Đảm bảo hiệu năng ổn định của ứng dụng giao diện khi số lượng nút hội thoại trên sơ đồ lớn và phức tạp.
  3. Đảm bảo tính chính xác tuyệt đối trong thuật toán sinh kịch bản hội thoại từ sơ đồ luồng.
  4. Đảm bảo hiệu năng xử lý của hệ thống máy chủ, tránh tắc nghẽn tài nguyên khi xử lý khối lượng kịch bản lớn.

Về phạm vi nghiên cứu, đồ án tập trung vào công cụ Workflow trong hệ sinh thái SmartDialog. Dữ liệu đầu vào là các luồng hội thoại dưới dạng sơ đồ luồng (flowchart) do người dùng thao tác trực quan, sau đó được cấu trúc hóa thành định dạng dữ liệu trung gian (JSON/XML). Dữ liệu đầu ra là các kịch bản hội thoại thông thường và kịch bản huấn luyện chuyên biệt phục vụ cho quá trình huấn luyện Chatbot/Voicebot. Về phạm vi ứng dụng, sản phẩm được triển khai thực tế trên nền tảng SmartDialog tại địa chỉ https://bot.vn từ tháng 08 năm 2021.


Cơ sở lý thuyết và phương pháp

Khóa luận xây dựng trên các khái niệm nền tảng của lĩnh vực AI hội thoại. Về lịch sử, AI hội thoại bắt đầu từ năm 1966 với chương trình Eliza do Joseph Weizenbaum phát triển, sau đó phát triển thành các hệ thống trợ lý ảo như Google Assistant, Siri, Amazon Alexa. Trong mô hình AI hội thoại, hai khái niệm căn bản nhất là:

  • Ý định (Intent): Mục đích hoặc yêu cầu mà người dùng cuối muốn thực hiện thông qua câu nói hoặc tin nhắn.
  • Hành động (Action): Phản hồi hoặc tác vụ mà máy thực hiện để đáp lại ý định của người dùng.
  • Tham số (Slot): Các giá trị điều kiện hoặc dữ liệu trích xuất đi kèm với ý định.

Về mặt kiến trúc, một hệ thống AI hội thoại điển hình bao gồm 5 khối chức năng chính:

  1. Bộ giải mã đầu vào: Tiếp nhận và chuyển đổi dữ liệu giọng nói, hình ảnh thành dạng văn bản.
  2. Khối hiểu ngôn ngữ tự nhiên (NLU): Phân tích cú pháp, ngữ nghĩa và trích xuất ý định của người dùng từ văn bản.
  3. Thành phần quản lý hội thoại (Dialogue Management): Tính toán và đưa ra biểu diễn ngữ nghĩa cho phản hồi của hệ thống dựa trên ngữ cảnh, truy cập vào kịch bản hội thoại theo luật hoặc mô hình học máy.
  4. Khối sinh thông tin phản hồi (NLG): Xây dựng câu phản hồi hoàn chỉnh dưới dạng văn bản dựa trên ngữ nghĩa đã xác định.
  5. Trình kết xuất đầu ra: Chuyển đổi phản hồi văn bản thành định dạng phù hợp cho người dùng (văn bản hiển thị hoặc âm thanh tổng hợp).

Về phương pháp nghiên cứu, tác giả kết hợp các phương pháp kỹ thuật phần mềm:

  • Phân tích so sánh công cụ: Khảo sát các công cụ tạo bot hiện có như Chatfuel, ManyChat (chủ yếu tập trung cho Facebook Messenger), FPT.AI Chatbot và SmartDialog v1 (hướng tiếp cận đa kênh tổng quát) để rút ra các yêu cầu cải tiến.
  • Phương pháp thiết kế kiến trúc phần mềm: Sử dụng kiến trúc Microservices để phân tách các khối chức năng độc lập; áp dụng giao thức RESTful qua HTTP và hàng đợi tin nhắn bất đồng bộ qua AMQP.
  • Phương pháp thuật toán:
    • Thiết kế giải thuật định tuyến đường kết nối vuông góc (orthogonal routing) qua các điểm tham chiếu (waypoints) dựa trên 4 biến logic định hướng không gian.
    • Xây dựng thuật toán đệ quy duyệt đồ thị có hướng để trích xuất toàn bộ các đường đi từ nút Bắt đầu đến nút Kết thúc.
    • Xây dựng thuật toán tổ hợp n mảng phần tử theo thứ tự tuần tự để giải quyết bài toán lồng ghép các luồng hội thoại con (sub-workflow).
  • Phương pháp mô hình hóa dữ liệu: So sánh phương pháp chuẩn hóa (Normalization) và tập hợp (Aggregation) để tối ưu hóa lưu trữ trong cơ sở dữ liệu tài liệu NoSQL.

Nội dung chính theo từng chương

Chương 1: Đặt vấn đề

Chương này tổng quan về AI hội thoại, phân tích kiến trúc 5 khối của một hệ sinh thái AI hội thoại tiêu chuẩn và nhấn mạnh vai trò trung tâm của kịch bản hội thoại đối với thành phần quản lý hội thoại. Tác giả chỉ ra sự thiếu hụt của các công cụ thiết kế luồng hội thoại mở, có khả năng tái sử dụng cao, từ đó xác lập mục tiêu, phạm vi và định hướng giải pháp kỹ thuật cho đồ án.

Chương 2: Giải pháp cho công cụ thiết kế và sinh kịch bản hội thoại

Chương 2 trình bày khung giải pháp tổng quát không phụ thuộc công nghệ:

  • Phân tích ưu nhược điểm của các giải pháp thương mại (Chatfuel, ManyChat, FPT.AI) và SmartDialog v1.
  • Đề xuất kiến trúc tổng quan theo mô hình Microservices phân tách giữa giao diện và các dịch vụ xử lý nền.
  • Thiết kế giải pháp Frontend bao gồm cấu trúc các thành phần giao diện, mô hình quản lý trạng thái tập trung và thuật toán định tuyến đường kết nối vuông góc giữa hai nút.
  • Thiết kế giải pháp Backend, phân tách dịch vụ xử lý nghiệp vụ chung và dịch vụ sinh kịch bản độc lập; trình bày chi tiết thuật toán duyệt đệ quy sinh kịch bản và thuật toán tổ hợp luồng con; đề xuất giải pháp thiết kế cơ sở dữ liệu theo hướng chuẩn hóa (Normalization).

Chương 3: Phân tích thiết kế và xây dựng công cụ Workflow trong SmartDialog

Chương này hiện thực hóa khung giải pháp vào nền tảng SmartDialog:

  • Phân tích hiện trạng vận hành và khảo sát phản hồi từ người dùng thực tế của SmartDialog v1.
  • Phân tích yêu cầu hệ thống thông qua biểu đồ use case tổng quan, biểu đồ phân rã use case thiết kế luồng và đặc tả chi tiết 4 use case chính: Tạo nút, Tạo cạnh, Sinh kịch bản, Xuất luồng hội thoại dưới dạng ảnh.
  • Lựa chọn công nghệ, thiết kế chi tiết APIs RESTful, cấu trúc collection cơ sở dữ liệu và xây dựng ứng dụng Frontend/Backend.
  • Kiểm thử chức năng và minh họa kết quả triển khai công cụ trên thực tế.

Chương 4: Các đóng góp nổi bật khác trong quá trình phát triển cho SmartDialog

Chương 4 mô tả 3 giải pháp kỹ thuật mở rộng mang tính ứng dụng thực tế cao:

  • Xây dựng chiến lược và thuật toán chuyển đổi phiên bản (data migration) an toàn từ mô hình dữ liệu của Workflow v1 sang Workflow v2.
  • Đề xuất mô hình sinh và phân tán lưu trữ kịch bản tối ưu, tách riêng cơ sở dữ liệu lưu kịch bản huấn luyện theo từng bộ sưu tập tương ứng với mỗi bot.
  • Xây dựng tính năng tự động trích xuất và sinh các trường hợp kiểm thử (test cases) ra định dạng tệp bảng tính Excel phục vụ công tác đối soát chất lượng.

Chương 5: Kết luận và hướng phát triển

Chương cuối tổng kết toàn bộ kết quả kỹ thuật đạt được trong quá trình xây dựng công cụ Workflow cho SmartDialog, rút ra các bài học kinh nghiệm trong thiết kế phần mềm tương tác đồ họa và vạch ra các định hướng hoàn thiện tính năng trong tương lai.


Thiết kế và triển khai

Hệ thống công cụ thiết kế và sinh kịch bản hội thoại được hiện thực hóa theo kiến trúc Microservices phân tán, đảm bảo tính mô-đun và độ sẵn sàng cao.

1. Kiến trúc tổng quan hệ thống

Kiến trúc bao gồm ứng dụng Frontend và ba dịch vụ độc lập ở tầng Backend:

  • Ứng dụng Frontend (Workflow Client): Giao diện tương tác người dùng, gửi yêu cầu tới Backend thông qua giao thức HTTP REST APIs.
  • Dịch vụ xây dựng bot (Bot Builder Service): Tiếp nhận toàn bộ yêu cầu từ Frontend, quản lý logic nghiệp vụ tạo, sửa, xóa luồng hội thoại; đóng vai trò điều phối các tác vụ nặng qua hàng đợi tin nhắn.
  • Dịch vụ sinh kịch bản (Script Generation Service): Độc lập tiếp nhận thông điệp từ hàng đợi tin nhắn khi người dùng yêu cầu sinh kịch bản, thực hiện thuật toán duyệt đồ thị và ghi nhận kịch bản vào cơ sở dữ liệu.
  • Dịch vụ sinh kịch bản huấn luyện (Training Script Generation Service): Chịu trách nhiệm tổng hợp các kịch bản hoàn chỉnh (bao gồm việc giải mã và kết hợp các luồng hội thoại con) để tạo tệp dữ liệu huấn luyện máy học.

Việc tách riêng Dịch vụ sinh kịch bản qua hàng đợi tin nhắn AMQP ngăn chặn tình trạng thuật toán đệ quy chiếm dụng toàn bộ tài nguyên CPU/RAM của máy chủ Web, giúp Dịch vụ xây dựng bot không bị nghẽn (treo HTTP requests) khi người dùng thao tác trên các sơ đồ luồng có quy mô lớn.

2. Thiết kế tầng Frontend

Giao diện người dùng được phân tách thành 3 khu vực chính: Thanh bên lề (Sidebar) chứa danh mục nút kéo thả; Thanh công cụ (Toolbar) chứa các chức năng phụ trợ (Undo, Redo, Zoom, Fullscreen); và Canvas trung tâm hiển thị sơ đồ.

Hệ thống định nghĩa 7 loại nút đại diện cho các thành phần ngữ nghĩa của cuộc hội thoại:

STT Loại nút Mô tả chức năng
1 Bắt đầu Điểm khởi đầu của luồng hội thoại
2 Ý định Thể hiện ý định hoặc đầu vào của người dùng
3 Điều kiện Điều kiện logic của tham số (Slot) trong một ý định
4 Hành động Phản hồi hoặc tác vụ xử lý của Chatbot/Voicebot
5 Luồng hội thoại con Nhúng một luồng hội thoại khác nhằm mục đích tái sử dụng
6 Kết thúc cục bộ Điểm kết thúc của luồng hội thoại hiện tại
7 Kết thúc toàn cục Điểm kết thúc của toàn bộ phiên tương tác hội thoại

Để đảm bảo kết nối giữa các nút trực quan và không bị rối khi số lượng nút tăng cao, tác giả phát triển thuật toán tạo đường kết nối gấp khúc vuông góc dựa trên 4 điểm tham chiếu (Waypoints). Định hướng kết nối được tự động tính toán thông qua 4 biến logic:

Biến Kiểu dữ liệu Ý nghĩa xác định vị trí tương đối
top Boolean Điểm thấp nhất của nút nguồn có nhỏ hơn hoặc bằng điểm cao nhất của nút đích không
bottom Boolean Điểm cao nhất của nút nguồn có lớn hơn hoặc bằng điểm thấp nhất của nút đích không
left Boolean Điểm phải nhất của nút nguồn có nhỏ hơn hoặc bằng điểm trái nhất của nút đích không
right Boolean Điểm trái nhất của nút nguồn có lớn hơn hoặc bằng điểm phải nhất của nút đích không

Dựa trên kết hợp giá trị của 4 biến logic trên, hệ thống xác định định hướng đường đi (Trái, Phải, Trên, Dưới) và chọn các điểm neo (Anchor points) tại trung điểm các cạnh tương ứng để vẽ đường gấp khúc vuông góc.

Quy tắc tạo cạnh nối giữa các loại nút được kiểm soát chặt chẽ theo bảng ràng buộc ngữ nghĩa:

  • Nút Bắt đầu chỉ được phép nối tới một hoặc nhiều nút Ý định, không được nối trực tiếp tới Hành động hoặc Điều kiện.
  • Nút Ý định có thể nối tới nút Điều kiện hoặc nút Hành động.
  • Nút Điều kiện có thể nối tới nút Hành động hoặc nối tiếp sang một nút Điều kiện khác.
  • Nút Hành động có thể nối sang nút Ý định tiếp theo, nút Kết thúc cục bộ hoặc Kết thúc toàn cục.
  • Các nút Kết thúc không được phép tạo cạnh ra.

3. Thiết kế Backend, Thuật toán và Cơ sở dữ liệu

Thuật toán sinh kịch bản được chia làm hai cấp độ:

  • Sinh kịch bản cơ bản: Áp dụng giải thuật đệ quy duyệt theo chiều sâu, duyệt tuần tự toàn bộ các đường kết nối từ nút Bắt đầu đến các nút Kết thúc, lưu lại danh sách định danh các nút đã đi qua để tạo thành một chuỗi kịch bản đơn luồng.
  • Sinh kịch bản kết hợp luồng con: Khi luồng cha chứa $n$ luồng hội thoại con nối tiếp nhau, bài toán quy về việc tìm tất cả các tổ hợp phần tử từ $n$ mảng kịch bản theo thứ tự tuần tự. Thuật toán tiến hành duyệt từ bên phải các mảng đầu vào, lùi về mảng còn phần tử chưa xét, chuyển sang phần tử kế tiếp và đặt lại các mảng phía sau về phần tử đầu tiên để sinh tập hợp kịch bản hoàn chỉnh.

Về cơ sở dữ liệu:

  • Cơ sở dữ liệu xây dựng bot: Áp dụng mô hình chuẩn hóa (Normalization). Bảng/Bộ sưu tập workflows và scripts được tách biệt, liên kết với nhau qua trường khóa ngoại workflowId. Thiết kế này khắc phục nhược điểm của mô hình nhúng (Aggregation) vốn dễ làm tài liệu vượt quá giới hạn dung lượng lưu trữ của hệ quản trị NoSQL khi số lượng kịch bản sinh ra lên đến hàng chục nghìn bản ghi.
  • Cơ sở dữ liệu lưu kịch bản huấn luyện: Được phân tách độc lập, mỗi bot được cấp phát một bộ sưu tập (Collection) riêng biệt nhằm cô lập dữ liệu và duy trì tốc độ truy vấn ổn định khi dữ liệu kịch bản mở rộng quy mô lớn.

4. Kiểm thử và triển khai

Hệ thống được xây dựng hoàn chỉnh bộ kiểm thử bao gồm:

  • Bộ trường hợp kiểm thử giao diện thiết kế luồng (tạo/xóa nút, kéo thả cạnh hợp lệ và không hợp lệ, xử lý hoàn tác Undo/Redo, zoom/pan màn hình).
  • Bộ trường hợp kiểm thử chức năng sinh kịch bản (kiểm thử luồng rẽ nhánh điều kiện, luồng có vòng lặp, luồng chứa nhiều luồng con nối tiếp).
  • Kiểm thử các chức năng tiện ích: xuất sơ đồ luồng ra định dạng hình ảnh và xuất danh sách ca kiểm thử tự động ra tệp Microsoft Excel.

Sản phẩm đã được triển khai chính thức trên môi trường production của nền tảng SmartDialog (https://bot.vn).


Kết quả và đóng góp

Khóa luận đạt được các kết quả kỹ thuật cụ thể đã được kiểm chứng trên môi trường thực tế:

  • Triển khai thành công công cụ Workflow v2 trên nền tảng SmartDialog tại tên miền https://bot.vn từ tháng 08 năm 2021.
  • Hệ thống duy trì vận hành ổn định phục vụ hơn 100 người dùng quản trị bot.
  • Ứng dụng thành công trong việc xây dựng và quản lý kịch bản AI hội thoại cho các khách hàng doanh nghiệp quy mô lớn, bao gồm: Ngân hàng TMCP Ngoại thương Việt Nam (Vietcombank), Công ty Cổ phần Giải pháp Thanh toán Việt Nam (VNPAY), Ví điện tử Momo và Công ty Tài chính Mirae Asset.

Các đóng góp khoa học và kỹ thuật do tác giả tự xác lập:

  • Đưa ra giải pháp tổng thể cho công cụ thiết kế và sinh kịch bản hội thoại có thể tái sử dụng, không phụ thuộc vào nền tảng nhắn tin chuyên biệt hay công nghệ Frontend cụ thể.
  • Xây dựng thành công thư viện vẽ sơ đồ luồng chuyên biệt cho AI hội thoại, loại bỏ sự phụ thuộc vào các thư viện bên thứ ba đã ngừng hỗ trợ, giải quyết triệt để lỗi hiển thị và nâng cao trải nghiệm thao tác của người dùng.
  • Tối ưu hóa kiến trúc xử lý bằng việc phân rã Microservices, đưa tác vụ sinh kịch bản đệ quy nặng vào xử lý bất đồng bộ qua hàng đợi tin nhắn, giải quyết bài toán suy giảm hiệu năng máy chủ.
  • Xây dựng chiến lược và giải thuật di chuyển dữ liệu (Data Migration) giúp chuyển đổi toàn bộ cơ sở dữ liệu luồng hội thoại từ phiên bản cũ v1 sang phiên bản mới v2 một cách an toàn, không làm gián đoạn các dịch vụ bot đang chạy của khách hàng.
  • Bổ sung công cụ tự động sinh các trường hợp kiểm thử ra tệp Excel, chuẩn hóa quy trình đối soát chất lượng kịch bản hội thoại trước khi đưa vào huấn luyện mô hình.

Hạn chế và hướng nghiên cứu tiếp

Khóa luận hoàn thành đầy đủ các mục tiêu đề ra cho công cụ thiết kế và sinh kịch bản trong khuôn khổ hệ thống SmartDialog. Tuy nhiên, căn cứ theo phạm vi nghiên cứu, đề tài có các hạn chế và hướng mở:

  • Hạn chế:
    • Đồ án tập trung chính vào việc giải quyết bài toán thiết kế trực quan và sinh kịch bản dựa trên đồ thị luồng; khi số lượng nhánh rẽ và vòng lặp trong kịch bản tăng theo hàm mũ, việc xử lý kịch bản huấn luyện vẫn phụ thuộc vào năng lực hạ tầng phần cứng xử lý bất đồng bộ.
    • Các ràng buộc ngữ nghĩa và loại nút hiện được cấu hình theo chuẩn nghiệp vụ của nền tảng SmartDialog, cần tiếp tục mở rộng nếu tích hợp cho các hệ thống AI hội thoại có kiến trúc phi kịch bản hoàn toàn.
  • Hướng nghiên cứu tiếp:
    • Tiếp tục hoàn thiện và tối ưu hóa giải thuật sinh kịch bản trong các trường hợp luồng hội thoại xuất hiện các cấu trúc vòng lặp điều kiện phức tạp.
    • Mở rộng thêm các tùy chọn tương tác nâng cao trên giao diện người dùng nhằm hỗ trợ trực quan hóa dữ liệu thống kê hội thoại trực tiếp trên từng nút luồng.
    • Tích hợp sâu hơn công cụ Workflow với các mô hình ngôn ngữ lớn (LLM) và các dịch vụ học sâu tiên tiến đang được bổ sung vào hệ sinh thái SmartDialog.

Giá trị tham khảo

Báo cáo khóa luận cung cấp tài liệu kỹ thuật có giá trị tham khảo thiết thực cho các nhóm đối tượng:

  • Sinh viên và học viên ngành Kỹ thuật Phần mềm, Công nghệ Thông tin: Tham khảo một mô hình triển khai thực tế hoàn chỉnh từ khâu phân tích yêu cầu, thiết kế kiến trúc Microservices, xây dựng thuật toán duyệt đồ thị đệ quy cho đến việc quản lý trạng thái giao diện phức tạp bằng các Components độc lập.
  • Kỹ sư phát triển công cụ No-code/Low-code và Workflow Editor: Tài liệu trình bày chi tiết thuật toán định tuyến đường kết nối vuông góc tự động giữa hai khối (Waypoints routing) và giải pháp quản lý bộ nhớ đệm đồ họa, có thể áp dụng trực tiếp cho các hệ thống vẽ sơ đồ trực tuyến.
  • Nhóm phát triển các nền tảng AI hội thoại (Chatbot/Voicebot): Phần thiết kế cơ sở dữ liệu phân tách (Normalization) và cơ chế sinh kịch bản kết hợp luồng con là giải pháp kỹ thuật hữu ích để giải quyết bài toán nghẽn hiệu năng khi dữ liệu kịch bản mở rộng quy mô phục vụ khách hàng doanh nghiệp.

Câu hỏi thường gặp

1. Vì sao tác giả tự phát triển thư viện vẽ sơ đồ mới thay vì sử dụng các thư viện có sẵn trên thị trường?
Qua quá trình khảo sát thực tế, tác giả nhận thấy các thư viện đồ họa có sẵn không đáp ứng được đồng thời hai tiêu chí: tối ưu hóa trải nghiệm người dùng chuyên biệt cho luồng hội thoại và duy trì hiệu năng mượt mà khi sơ đồ có số lượng nút lớn, phức tạp. Ngoài ra, phiên bản v1 trước đó từng gặp rủi ro kỹ thuật lớn khi phụ thuộc vào một thư viện mã nguồn mở bên thứ ba đã bị dừng duy trì và phát triển.

2. Tại sao việc sinh kịch bản lại được tách thành một dịch vụ riêng biệt giao tiếp qua hàng đợi tin nhắn thay vì tích hợp trực tiếp vào dịch vụ xây dựng bot?
Thuật toán sinh kịch bản hoạt động theo cơ chế duyệt đệ quy có độ phức tạp tính toán và thời gian chạy tỷ lệ thuận với số lượng kịch bản sinh ra. Khi luồng hội thoại lớn, tác vụ này chiếm dụng lượng lớn CPU và RAM, đồng thời mất nhiều thời gian ghi cơ sở dữ liệu. Nếu đặt chung trong dịch vụ xây dựng bot (nơi tiếp nhận mọi HTTP requests từ Frontend), việc quá tải tài nguyên sẽ làm tắc nghẽn toàn bộ hệ thống và khiến các yêu cầu từ phía người dùng bị treo. Tách dịch vụ qua hàng đợi tin nhắn giúp cô lập hoàn toàn tác vụ nặng này.

3. Thuật toán sinh kịch bản xử lý trường hợp có nhiều luồng hội thoại con nối tiếp nhau như thế nào?
Hệ thống quy đổi bài toán về việc tìm tất cả các tổ hợp có thể có từ việc ghép các phần tử của $n$ mảng kịch bản theo thứ tự tuần tự (mỗi mảng đại diện cho tập hợp kịch bản sinh ra từ một luồng con). Thuật toán duyệt từ bên phải các mảng đầu vào, lùi dần về mảng còn phần tử chưa xét, tăng chỉ số phần tử lên một đơn vị và đặt lại toàn bộ các mảng phía sau về phần tử đầu tiên để vét cạn toàn bộ tổ hợp kịch bản hợp lệ.

4. Cơ sở dữ liệu lưu kịch bản huấn luyện được thiết kế tối ưu như thế nào để phục vụ việc truy vấn nhanh?
Thay vì lưu chung toàn bộ kịch bản của tất cả các bot vào một bảng duy nhất (gây phình to kích thước dữ liệu và làm chậm tốc độ truy vấn), tác giả sử dụng cơ sở dữ liệu NoSQL và phân chia kịch bản của mỗi bot vào một bộ sưu tập (Collection) riêng biệt. Giải pháp này giúp giới hạn kích thước dữ liệu trên mỗi đơn vị lưu trữ và đẩy nhanh tốc độ truy xuất khi huấn luyện mô hình.

5. Công cụ Workflow v2 đã được triển khai thực tế trên môi trường nào và phục vụ những khách hàng doanh nghiệp nào?
Công cụ đã được triển khai chính thức trên nền tảng SmartDialog tại địa chỉ https://bot.vn kể từ tháng 08 năm 2021. Hệ thống đã phục vụ hơn 100 người dùng quản trị và hỗ trợ triển khai giải pháp hội thoại thông minh cho các tổ chức, doanh nghiệp lớn bao gồm Ngân hàng Vietcombank, Cổng thanh toán VNPAY, Ví điện tử Momo và Công ty Tài chính Mirae Asset.


Kết luận

Khóa luận đã giải quyết thành công bài toán xây dựng công cụ thiết kế và sinh kịch bản hội thoại trực quan, ổn định cho nền tảng SmartDialog dựa trên nền tảng kiến trúc Microservices và các thuật toán đồ thị tối ưu. Bằng việc phân tách độc lập các dịch vụ xử lý nền, chuẩn hóa cấu trúc cơ sở dữ liệu và tự phát triển thư viện giao diện sơ đồ chuyên biệt, sản phẩm đã khắc phục triệt để các nhược điểm về hiển thị, sai lệch kịch bản và suy giảm hiệu năng của phiên bản tiền nhiệm. Kết quả ứng dụng thực tế tại https://bot.vn từ tháng 08/2021 với hơn 100 người dùng và phục vụ nhiều khách hàng doanh nghiệp lớn như Vietcombank, VNPAY, Momo khẳng định tính đúng đắn và giá trị ứng dụng cao của đề tài trong lĩnh vực phát triển phần mềm AI hội thoại.