Skip to main content

Triển khai thực tế

Các Node cơ bản khi xây dựng một Bot

Thông thường, khi xây dựng một Bot, ta sẽ cần sử dụng kết hợp các thành phần và các Node, trong đó:

  • Startchat: Sử dụng khi muốn truyền lịch sử các turn chat trước vào Agent để xử lý

  • Rewrite: Sử dụng khi muốn viết lại truy vấn message gốc của người dùng

  • Agent: Agent là thành phần dùng khả năng lập luận để điều hướng và đưa ra hành động của 1 Bot

  • LLMs: Là Mô hình Ngôn ngữ Lớn (Large Language Model)

  • Tools: Là công cụ được định nghĩa để Agent sử dụng, dựa trên Name và Description được mô tả trong Tool mà Agent sẽ quyết định sử dụng tool nào.

Chi tiết của các thành phần xem tại: Cẩm nang sử dụng các Node


Nghiệp vụ mẫu

Xây dựng một Bot để đáp ứng nghiệp vụ của một ngân hàng (giả lập) với kịch bản như sau:

alt text

Với trường hợp giao dịch bị lỗi, Bot cần phải thu thập các thông tin giao dịch sau để có thể trích xuất thông tin:

  1. Ngày giao dịch (bắt buộc): Không hỗ trợ các ngày trong tương lai

  2. Số tiền giao dịch (bắt buộc): Chỉ hỗ trợ số dương

  3. 4 số cuối của thẻ (bắt buộc): Chỉ hỗ trợ các số từ 0-9, trường hợp cung cấp nhiều hơn 4 số, mặc định lấy 4 số cuối

  4. Kênh giao dịch (không bắt buộc)

  5. Địa điểm giao dịch (không bắt buộc)

Với các trường yêu cầu trên, nếu user không nhập hoặc các trường không đúng định dạng với yêu cầu. Bot sẽ phải yêu cầu người dùng cung cấp lại thông tin đúng.

Khi đã nhận đủ các thông tin đúng và đủ theo yêu cầu, sẽ phản hồi nguyên nhân thẻ bị lỗi (gồm các thẻ bị khóa, thẻ bị lỗi, thẻ bị sai thông tin,...)


Chi tiết xây dựng Bot trên Flow Builder

Trong đó

Bước 1: Sử dụng Node LLMs: Điền các thông số API key của các LLMs tương ứng

Bước 2: Sử dụng Node Conversation React Agent với mục đích điều hướng Tools

Bước 3: Sử dụng Node VB Rewrite Chain với mục đích truy vấn message gốc của người dùng Ví dụ:

  • Turn 1 - user nhập: Giao dịch bị lỗi
  • Turn 2 - user nhập: ngày hôm qua

=> Rewrite sẽ có kết quả: Giao dịch bị lỗi ngày hôm qua

Bước 4: Sử dụng Node Start chat với mục đích truyền và lưu giữ lịch sử các turn chat để Agent xử lý thông tin điều hướng

Bước 5: Sử dụng Node VB Chainable Tool để xây dựng các luồng cần nối đến Condition - Response Node

Bước 6: Sử dụng Node Requirement để lấy 5 thông tin giao dịch của nghiệp vụ

Note: Cần sử dụng thêm Node Get input để lấy input truyền vào Requirement

Bước 7: Sử dụng Node Field Group để lập các nhóm thông tin (nhóm thông tin bắt buộc và nhóm thông tin không bắt buộc)

Bước 8: Sử dụng Node Edit Memory để chỉnh sửa thông tin mà user muốn lưu về. Với nghiệp vụ trên, sử dụng để cắt 4 số cuối của thẻ

Bước 9: Sử dụng Node Condition để chia thông tin thẻ bị lỗi và thẻ không bị lỗi theo yêu cầu nghiệp vụ

Bước 10: Sử dụng Node Response để đưa ra câu trả lời mà người dùng muốn trả ra

Bước 11: Sử dụng các Node liên quan đến LLMChain để đưa ra câu trả lời người dùng muốn trả ra

Note: Sự khác nhau giữa 2 câu trả lời của Bước 10 và Bước 11 đó chính là sự đa dạng.

  • Với Bước 10, câu trả lời sẽ là nhất quán, lúc nào cũng là câu trả lời đó.
  • Với Bước 11, câu trả lời sẽ đa dạng hơn, chỉ giữ đúng ý nghĩa, nhưng câu từ có thể thay đổi

Theo dõi chi tiết các phần đã được nêu ở trên bằng cách sử dụng file cấu hình tham khảo để dựng nhanh một Bot mẫu: Example.json