Tăng mức độ phù hợp của ý định và xử lý lỗi một cách linh hoạt bằng tính năng dự phòng tạo sinh

1. Tổng quan

Lần cập nhật gần đây nhất: ngày 7 tháng 8 năm 2023

Sản phẩm bạn sẽ tạo ra

Trong lớp học lập trình này, bạn sẽ tạo, triển khai và định cấu hình một tác nhân ảo đơn giản trong Dialogflow CX để hỗ trợ những người lặn biển du lịch đặt chỗ theo nhóm và thuê tàu riêng. Trợ lý ảo sẽ sử dụng AI tạo sinh và các mô hình ngôn ngữ lớn (LLM) tạo sinh mới nhất của Google để tạo câu trả lời.

Kiến thức bạn sẽ học được

  • Cách bật các API có liên quan
  • Cách Dialogflow tự động điền sẵn các giá trị tham số biểu mẫu trang từ các tham số ý định
  • Cách định cấu hình trình xử lý sự kiện trong Dialogflow
  • Cách bật tính năng dự phòng tạo sinh trên trình xử lý sự kiện không khớp được dùng trong các luồng và trong quá trình điền tham số
  • Cách định cấu hình câu lệnh văn bản của riêng bạn để xử lý các tình huống trò chuyện cơ bản cũng như các tình huống trò chuyện dành riêng cho tác nhân
  • Cách viết nội dung mô tả ý định và tham số phù hợp để tạo trình xử lý nhắc lại cho các tham số bắt buộc (ngoài các lời nhắc lại do người dùng xác định)
  • Cách kiểm thử tác nhân và mô phỏng các câu hỏi của khách hàng kích hoạt tính năng dự phòng tạo sinh

Bạn cần có

  • Một dự án trên Google Cloud
  • Một trình duyệt như Chrome

2. Thiết lập

Trước khi có thể bắt đầu sử dụng tính năng dự phòng tạo sinh trong Dialogflow CX, bạn cần bật Dialogflow API.

Bật API Dialogflow bằng Cloud Console

  1. Mở Google Cloud Console trong trình duyệt.
  2. Trong bảng điều khiển Google Cloud, hãy chuyển đến Thư viện API để duyệt xem các API và dịch vụ có thể bật.
  3. Sử dụng thanh tìm kiếm ở đầu trang Thư viện API, tìm kiếm Dialogflow API, sau đó nhấp vào dịch vụ tương ứng.
  4. Nhấp vào nút Bật để bật API Dialogflow trong dự án trên đám mây của Google.

Sử dụng gcloud CLI (phương án thay thế)

Ngoài ra, bạn có thể bật API bằng lệnh gcloud sau:

gcloud services enable dialogflow.googleapis.com

Nếu bật thành công API này, bạn sẽ thấy một thông báo tương tự như sau:

Operation "operations/..." finished successfully.

Lấy mã nguồn

Bạn sẽ không tạo tác nhân ảo từ đầu, chúng tôi sẽ cung cấp cho bạn một tác nhân mà bạn cần khôi phục từ Bảng điều khiển Dialogflow CX rồi cải thiện.

Cách tải mã nguồn xuống:

  1. Mở một thẻ trình duyệt mới, chuyển đến kho lưu trữ tác nhân rồi sao chép kho lưu trữ đó từ một dòng lệnh.
  2. Nhân viên hỗ trợ ban đầu đã được xuất dưới dạng một gói JSON. Giải nén tệp, kiểm tra chế độ cài đặt của tác nhân, xem định nghĩa về luồng Liveaboards.json và cuối cùng là duyệt qua các trang, ý định và thực thể của luồng.

3. Tạo một tác nhân mới

Mở bảng điều khiển Dialogflow

Bạn sẽ sử dụng bảng điều khiển Dialogflow CX cùng với dự án Google Cloud để thực hiện các bước còn lại trong lớp học lập trình này.

  1. Trong trình duyệt, hãy chuyển đến bảng điều khiển Dialogflow CX.
  2. Chọn dự án trên Google Cloud mà bạn muốn sử dụng hoặc tạo một dự án mới để sử dụng.
  3. Bạn sẽ thấy danh sách các tác nhân trong bảng điều khiển Dialogflow CX.

Nếu đây là lần đầu tiên bạn sử dụng Dialogflow CX, hãy tham khảo Tài liệu về Dialogflow CX để biết thêm thông tin về cách định cấu hình dự án và chế độ cài đặt tuỳ theo nhu cầu của bạn.

Tạo một nhân viên hỗ trợ Dialogflow CX mới

  1. Để khôi phục nhân viên hỗ trợ đã tải xuống từ kho lưu trữ GitHub, bạn cần tạo một nhân viên hỗ trợ mới. Trong bảng điều khiển Dialogflow CX, hãy nhấp vào Tạo tác nhân mới ở góc trên cùng bên phải của trang.

Tạo một nhân viên hỗ trợ hoàn toàn mới

  1. Chọn mục Tự tạo tác nhân.

Chọn chế độ

  1. Điền vào biểu mẫu bằng các chế độ cài đặt tác nhân bên dưới rồi nhấp vào Tạo để tạo tác nhân.
  • Chọn tên hiển thị là: Divebooker
  • Chọn vị trí là: us-central1
  • Chọn múi giờ bạn muốn
  • Chọn en - English làm ngôn ngữ mặc định
  1. Dialogflow sẽ tự động mở tác nhân cho bạn. Chúng tôi vẫn chưa hoàn thành!

Khôi phục tác nhân Divebooker

  1. Quay lại trang danh sách nhân viên hỗ trợ, xác định nhân viên hỗ trợ mà bạn vừa tạo. Nhấp vào biểu tượng 78d2781c655810e7.png rồi nhấp vào nút Khôi phục.
  2. Chọn mục Tải lên rồi thả hoặc chọn tệp ZIP mà bạn đã tải xuống trước đó từ kho lưu trữ GitHub.
  3. Nhấp vào nút Khôi phục để nhập tác nhân mà chúng tôi đã cung cấp

Nhấp vào nút Khôi phục để nhập tác nhân mà chúng tôi đã cung cấp

Chính xác! Bạn đã hoàn tất việc tạo trợ lý ảo đặt chỗ lặn và trợ lý này sẵn sàng hỗ trợ khách hàng. Trong phần tiếp theo, bạn sẽ kiểm thử và xem mức độ hiệu quả của mô hình này trong việc trả lời câu hỏi của người dùng và hỗ trợ các yêu cầu đặt phòng.

4. Kiểm thử nhân viên hỗ trợ

Dialogflow cung cấp một trình mô phỏng tích hợp sẵn để trò chuyện với các tác nhân và phát hiện lỗi. Đối với mỗi lượt tương tác, bạn có thể xác minh các giá trị chính xác cho ý định được kích hoạt, phản hồi của tác nhân, trang đang hoạt động và các thông số phiên.

Chúng ta sẽ thử nghiệm một vài tình huống và đối với mỗi tình huống, chúng ta sẽ xem xét lý do tại sao trợ lý đưa ra một phản hồi nhất định. Hãy bắt đầu với câu hỏi đầu tiên.

Ý định chưa được giải quyết

  1. Trong bảng điều khiển Dialogflow và từ bên trong tác nhân của bạn, hãy nhấp vào Kiểm thử tác nhân để mở Trình mô phỏng.

Nhấp vào Test Agent (Tác nhân kiểm thử) để mở Trình mô phỏng

  1. Nhập lời chào cho tác nhân, chẳng hạn như Hello và hỏi what is a liveaboard?. Câu hỏi không khớp với ý định nào, một câu lệnh chung chung như "Rất tiếc, tôi không biết làm cách nào để giúp bạn" sẽ xuất hiện. Bạn có thể kiểm tra xem sự kiện tích hợp sys.no-match-default có được gọi hay không bằng cách kiểm tra phản hồi ban đầu trên Trình mô phỏng.

Chào nhân viên hỗ trợ và hỏi về khái niệm tàu lưu trú

Di chuyển xuống gần cuối phản hồi JSON. Lưu ý rằng khi tìm kiếm một ý định phù hợp, Dialogflow nhận thấy đây là một NO_MATCH và đưa ra một sự kiện không khớp.

Kiểm tra để đảm bảo rằng sự kiện sys.no-match-default được Dialogflow tạo ra

  1. Chuyển sang thẻ Build (Tạo) rồi mở Start Page (Trang bắt đầu) của quy trình Liveaboards (Tàu lưu trú).

Chuyển sang thẻ Build (Xây dựng) rồi mở Start Page (Trang bắt đầu) của quy trình Liveaboards (Tàu lưu trú).

Theo mặc định, mọi luồng đều có trình xử lý sự kiện cho các sự kiện tích hợp không khớp và không có dữ liệu đầu vào. Các trình xử lý sự kiện này được tạo tự động khi bạn tạo một luồng và bạn không thể xoá chúng.

  1. Nhấp vào trình xử lý sự kiện sys.no-match-default rồi di chuyển xuống phần Phản hồi của trợ lý ảo. Dialogflow cung cấp một danh sách các câu trả lời thay thế, nhưng bạn cũng có thể xác định các loại thông báo phản hồi khác nhau để cung cấp cho người dùng cuối nhiều thông tin hơn ngoài các câu trả lời bằng văn bản.

Xem các câu trả lời được xác định trước của trợ lý

Bây giờ, hãy chuyển sang trường hợp lý tưởng!

Hành trình suôn sẻ

Trong trường hợp thứ hai này, hãy giả vờ là một thợ lặn muốn đặt một chuyến du lịch lặn có mang bình dưỡng khí cho một nhóm 12 người đến Quần đảo Galapagos vào tháng 7 năm sau.

  1. Trong bảng điều khiển Trình mô phỏng, hãy nhấp vào biểu tượng Đặt lại để bắt đầu một cuộc trò chuyện mới với nhân viên hỗ trợ.

Đặt lại để bắt đầu một cuộc trò chuyện mới

Cân nhắc chuyển sang chế độ xem dọc để mang lại trải nghiệm người dùng tốt hơn

  1. Cho nhân viên biết rằng bạn muốn đặt chuyến bay thuê bao đến quần đảo Galapagos và cung cấp thông tin chi tiết về chuyến đi của bạn. Bạn không cần phải sử dụng chính xác các câu lệnh bên dưới, hãy thử nghiệm!

Kiểm thử hành trình suôn sẻ

  1. Mở Trang bắt đầu rồi nhấp vào tuyến đường head.send.group.request. Di chuyển xuống phần Transition (Chuyển đổi) để cho Dialogflow biết trang cần chuyển đổi khi ý định này trùng khớp.

Chuyển sang trang Thu thập thêm thông tin

  1. Đóng định nghĩa Route (Tuyến đường) và mở rộng trang Collect Further Info (Thu thập thêm thông tin). Lưu ý đến việc thực hiện mục nhập và danh sách tham số.

Trang Thu thập thêm thông tin

Đối với mỗi trang trong Dialogflow CX, bạn có thể xác định một biểu mẫu. Biểu mẫu này là danh sách các thông số cần thu thập từ người dùng cuối cho trang. Xin lưu ý rằng tác nhân không yêu cầu điểm đến du lịch vì chúng ta đã truyền điểm đến đó trong phần đầu vào ban đầu và destination cũng là một tham số ý định. Khi một trang ban đầu trở nên hoạt động và trong thời gian hoạt động, mọi thông số biểu mẫu có cùng tên với thông số ý định sẽ tự động được đặt thành giá trị thông số phiên và lời nhắc tương ứng sẽ bị bỏ qua.

  1. Chuyển sang thẻ Quản lý rồi nhấp vào ý định head.send group request trong phần Ý định. Xem các cụm từ huấn luyện được cung cấp cho ý định này và các phần được chú thích của cụm từ huấn luyện.

Xem các cụm từ huấn luyện được cung cấp cho ý định này và các phần được chú thích của cụm từ huấn luyện.

  1. Hãy cân nhắc cụm từ huấn luyện "Tôi cần tổ chức một chuyến đi đến Costa Rica cho 15 thợ lặn". "Costa Rica" được chú thích bằng destination và "15" bằng number-of-guests. Khi bạn chú thích các phần của một cụm từ huấn luyện, Dialogflow sẽ nhận ra rằng những phần này chỉ là ví dụ về các giá trị thực tế mà người dùng cuối sẽ cung cấp trong thời gian chạy. Đó là lý do cho câu hỏi đầu tiên "Bạn có cung cấp dịch vụ thuê tàu đến quần đảo Galapagos không?" Dialogflow đã trích xuất tham số đích đến từ "Quần đảo Galapagos".

Tiếp theo, chúng ta sẽ xem điều gì xảy ra nếu chúng ta không cung cấp cho tác nhân một thông tin đầu vào hợp lệ khi được yêu cầu điền một tham số biểu mẫu.

Thông tin nhập không hợp lệ

  1. Trong bảng điều khiển Trình mô phỏng, hãy nhấp vào biểu tượng Đặt lại để bắt đầu một cuộc trò chuyện mới với nhân viên hỗ trợ.
  2. Thể hiện ý định đặt vé cho một nhóm, lần này đừng nói với nhân viên nơi bạn muốn đến và khi được hỏi về điểm đến, hãy trả lời bằng một giá trị ngẫu nhiên không phải là Costa Rica, Galapagos hoặc Mexico.

Nhập một điểm đến không hợp lệ

  1. Trên thẻ Quản lý, hãy nhấp vào Loại thực thể trong phần Tài nguyên. Bạn sẽ thấy 2 thẻ: trong thẻ Hệ thống, bạn có thể tìm thấy các thực thể hệ thống mà tác nhân của bạn hiện đang sử dụng. Thẻ Tuỳ chỉnh cung cấp danh sách các thực thể tuỳ chỉnh được tạo để so khớp dữ liệu dành riêng cho tác nhân này.

Thực thể tuỳ chỉnh của đích đến

  1. Nhấp vào thực thể đích đến để tìm hiểu những giá trị mà thực thể này khớp. "Châu Âu" không phải là một trong các mục nhập và cũng không phải là từ đồng nghĩa.
  2. Trên sơ đồ quy trình, hãy mở rộng trang Thu thập thêm thông tin có chứa các tham số biểu mẫu. Nhấp vào tham số destination.
  3. Trên bảng tham số, hãy di chuyển xuống mục Trình xử lý sự kiện nhắc lại, rồi nhấp vào trình xử lý sự kiện Mặc định không khớp.

Trình xử lý sự kiện ở cấp tham số này được thiết kế đặc biệt để xử lý thông tin đầu vào không hợp lệ của người dùng cuối trong quá trình điền biểu mẫu. Vì "Châu Âu" là một dữ liệu đầu vào không mong muốn, nên sự kiện sys.no-match-default đã được gọi và trình xử lý nhắc lại tương ứng được xác định cho sự kiện này cũng được gọi. Mục Nhân viên hỗ trợ nói liệt kê 2 thông báo nhắc lại thay thế.

Thông báo nhắc lại thay thế tĩnh khi người dùng cuối nhập một đích đến không hợp lệ.

Tuyệt vời! Những trường hợp kiểm thử này thể hiện các tình huống phổ biến mà tác nhân dự kiến sẽ xử lý một cách thích hợp. Rất thường xuyên, người dùng đặt ra những câu hỏi mà bot không thể trả lời hoặc đưa ra những yêu cầu mà bot không thể thực hiện. Việc thiết kế cho thị trường ngách (tức là ngoài những con đường quen thuộc mà hầu hết người dùng sẽ đi theo) là rất phức tạp. Hãy nghĩ về tất cả những điều có thể xảy ra trong một cuộc trò chuyện và tất cả những hướng đi không mong muốn hoặc không được hỗ trợ mà người dùng có thể thực hiện.

Những tiến bộ trong công nghệ nhận dạng giọng nói tự động (ASR) có nghĩa là chúng tôi hầu như luôn biết chính xác những gì người dùng nói. Tuy nhiên, việc xác định ý định của người dùng vẫn là một thách thức. Thường thì bạn không thể hiểu được các câu nói riêng lẻ mà chỉ có thể hiểu được trong ngữ cảnh. Trong phần tiếp theo của lớp học lập trình này, chúng ta sẽ khám phá cách các mô hình ngôn ngữ lớn (LLM) tạo sinh mới nhất của Google có thể giúp đưa cuộc trò chuyện trở lại đúng hướng và tiếp tục cuộc trò chuyện.

5. Bật tính năng dự phòng dựa trên AI tạo sinh

Tính năng dự phòng tạo sinh là gì?

Tính năng dự phòng tạo sinh là một tính năng của Dialogflow CX, sử dụng các mô hình ngôn ngữ lớn (LLM) của Google để tạo câu trả lời cho trợ lý ảo.

Tính năng này giúp ích như thế nào?

Ngoài các trường hợp sử dụng chính, còn có một số yêu cầu khá phổ biến của người dùng, chẳng hạn như yêu cầu lặp lại những gì mà trợ lý ảo đã nói trong trường hợp người dùng không hiểu, giữ máy khi người dùng yêu cầu và tóm tắt cuộc trò chuyện. Trong lần thử nghiệm đầu tiên, trợ lý ảo không trả lời được câu hỏi "Liveaboard là gì?" vì chúng tôi chưa tạo ý định cho câu hỏi này và thiết kế quy trình để xử lý những loại câu hỏi chung chung liên quan đến hoạt động lặn có mang bình dưỡng khí và tàu lưu trú.

Ngay cả khi có ý định rõ ràng, vẫn có thể xảy ra lỗi. Người dùng có thể không nói gì (lỗi Không có dữ liệu đầu vào) hoặc nói điều gì đó không mong muốn (lỗi Không khớp). Mặc dù ngăn chặn lỗi xảy ra sẽ tốt hơn là xử lý lỗi sau khi chúng xảy ra, nhưng bạn không thể hoàn toàn tránh được lỗi. Những câu lệnh chung chung như "Xin lỗi, tôi chưa rõ cách trợ giúp bạn" hoặc những giải pháp tương tự ở mức tối thiểu thường không đủ. Lời nhắc lỗi nên dựa trên Nguyên tắc hợp tác. Theo nguyên tắc này, giao tiếp hiệu quả dựa trên giả định rằng có sự hợp tác ngầm giữa những người tham gia trò chuyện.

Trong phần tiếp theo, chúng ta sẽ xem xét cách định cấu hình tính năng dự phòng dựa trên AI tạo sinh để tăng mức độ phù hợp với ý định và đơn giản hoá việc xử lý lỗi nhằm mang lại trải nghiệm khách hàng tốt hơn.

Bật tính năng dự phòng dựa trên mô hình tạo sinh cho sự kiện không khớp của toàn bộ quy trình

Bạn có thể bật tính năng dự phòng dựa trên mô hình tạo cho trình xử lý sự kiện không khớp được dùng trong các luồng, trang hoặc trong quá trình điền tham số. Khi bạn bật tính năng dự phòng tạo sinh cho một sự kiện không khớp, bất cứ khi nào sự kiện đó kích hoạt, Dialogflow sẽ cố gắng tạo ra một phản hồi được tạo và nói lại cho người dùng. Nếu không tạo được câu trả lời, hệ thống sẽ đưa ra câu trả lời thông thường theo quy định của nhân viên hỗ trợ.

Bạn có thể bật tính năng dự phòng dựa trên mô hình tạo sinh trong tác nhân của mình trên trình xử lý sự kiện không khớp. Tính năng này có thể được dùng trong quá trình thực hiện yêu cầu trong luồng, trang hoặc tham số.

Chúng tôi sẽ bắt đầu bật tính năng dự phòng dựa trên mô hình tạo sinh cho toàn bộ sự kiện không khớp mặc định của quy trình Liveaboards.

  1. Mở rộng Trang bắt đầu của quy trình.
  2. Nhấp vào sys.no-match-default trong mục Trình xử lý sự kiện.
  3. Đánh dấu vào mục Bật tính năng dự phòng dựa trên mô hình tạo sinh trong phần Câu trả lời của nhân viên hỗ trợ, sau đó nhấp vào Lưu

Chọn Bật tính năng dự phòng tạo sinh trong phần Câu trả lời của nhân viên hỗ trợ

Lưu để bật tính năng dự phòng tạo sinh trên Trang bắt đầu của Liveaboards

Bật tính năng dự phòng dựa trên mô hình tạo cho các sự kiện không khớp cụ thể

Giờ đây, chúng ta muốn bật tính năng dự phòng tạo sinh để xử lý dữ liệu đầu vào không hợp lệ khi trợ lý hỏi về số lượng hành khách:

  1. Mở trang Thu thập thêm thông tin có chứa các tham số biểu mẫu. Nhấp vào tham số number-of-guests.
  2. Chuyển đến trình xử lý sự kiện Không khớp mục tiêu (di chuyển xuống phần Trình xử lý sự kiện nhắc lại, sau đó nhấp vào trình xử lý sự kiện Không khớp mặc định)

Chuyển đến trình xử lý sự kiện Không khớp mục tiêu (di chuyển xuống phần Trình xử lý sự kiện nhắc lại, sau đó nhấp vào trình xử lý sự kiện mặc định Không khớp)

  1. Đánh dấu vào mục Bật tính năng dự phòng tạo sinh trong phần Câu trả lời của đặc vụ

Bật tính năng dự phòng dựa trên mô hình tạo cho thông số số lượng khách

  1. Cuối cùng, hãy nhấp vào Lưu
  2. Bây giờ, hãy lặp lại chính xác các bước để bật tính năng dự phòng dựa trên mô hình tạo sinh cho destinationemail-address

Tuyệt vời! Bạn đã bật tính năng dự phòng dựa trên mô hình tạo để xử lý những ý định không mong muốn và giá trị tham số không hợp lệ. Tiếp theo, chúng ta sẽ xem xét cách định cấu hình tính năng dự phòng tạo sinh bằng một câu lệnh văn bản hướng dẫn LLM cách phản hồi.

6. Định cấu hình mẫu quảng cáo dự phòng dựa trên AI

Tính năng dự phòng tạo sinh sẽ chuyển một yêu cầu đến mô hình ngôn ngữ lớn để tạo ra câu trả lời được tạo. Yêu cầu này có dạng một câu lệnh bằng văn bản kết hợp giữa ngôn ngữ tự nhiên và thông tin về trạng thái hiện tại của tác nhân cũng như cuộc trò chuyện. Bạn có thể định cấu hình tính năng này theo nhiều cách:

  1. Chọn một câu lệnh cụ thể (đã xác định) để dùng cho việc tạo câu trả lời.
  2. Xác định câu lệnh tuỳ chỉnh.

Chọn một câu lệnh đã xác định

  1. Trên bảng điều khiển Dialogflow CX, hãy nhấp vào Agent Settings (Cài đặt tác nhân)

Chuyển đến phần Cài đặt của tác nhân

  1. Chuyển đến thẻ Học máy, rồi chuyển đến thẻ phụ AI tạo sinh.

Thẻ phụ AI tạo sinh

Tính năng này có sẵn hai câu lệnh mẫu, mẫu Mặc định (không hiển thị) và mẫu Ví dụ hướng dẫn bạn viết câu lệnh của riêng mình.

  1. Chọn mẫu Ví dụ rồi nhấp vào nút Chỉnh sửa ở bên phải trình đơn thả xuống để kiểm tra mẫu đó.

Nhấp vào nút Chỉnh sửa ở bên phải trình đơn thả xuống mẫu để kiểm tra mẫu đó.

Với câu lệnh được xác định trước, trợ lý ảo có thể xử lý các tình huống đàm thoại cơ bản. Ví dụ:

  • Chào và tạm biệt người dùng.
  • Lặp lại những gì nhân viên hỗ trợ đã nói trong trường hợp người dùng không hiểu.
  • Giữ máy khi người dùng yêu cầu.
  • Tóm tắt cuộc trò chuyện.

Hãy thử xác định một câu lệnh văn bản cụ thể cho tác nhân Divebooker!

7. Xác định câu lệnh của riêng bạn

  1. Sao chép câu lệnh bên dưới rồi dán vào phần Câu lệnh dạng văn bản
You are a friendly agent that likes helping traveling divers.
You are under development and you can only help
$flow-description

At the moment you can't help customers with land-based diving and courses. You cannot recommend local dive shops and diving resorts.

Currently you can $route-descriptions

The conversation between the human and you so far was:
${conversation USER:"Human:" AGENT:"AI"}

Then the human asked:
$last-user-utterance

You say:
  1. Chọn Lưu dưới dạng mẫu mới để lưu câu lệnh mới dưới dạng mẫu mới (chọn tên mẫu mới) rồi chọn Lưu ở góc dưới cùng bên phải của bảng điều khiển.

Tạo một câu lệnh văn bản tuỳ chỉnh dành riêng cho tác nhân và lưu dưới dạng mẫu mới

  1. Để thực sự đặt câu lệnh mới tạo làm câu lệnh đang hoạt động, bạn cũng cần phải Lưu các chế độ cài đặt.

Lưu chế độ cài đặt mới

Khi viết câu lệnh văn bản của riêng bạn, hãy viết rõ ràng, súc tích và mang tính chỉ dẫn. Cách bạn tạo câu lệnh cho LLM có thể ảnh hưởng rất lớn đến chất lượng phản hồi của LLM. LLM được huấn luyện để làm theo hướng dẫn. Do đó, câu lệnh của bạn càng giống một hướng dẫn chính xác thì bạn càng có nhiều khả năng nhận được kết quả tốt hơn. Hãy tạo một câu lệnh, sau đó dựa trên kết quả nhận được, hãy lặp lại quy trình để cải thiện câu lệnh đó.

Để tạo câu lệnh hiệu quả, hãy làm theo các phương pháp hay nhất sau:

  1. Mô tả rõ ràng và súc tích về nhiệm vụ mà bạn muốn LLM thực hiện. Không nhiều hơn, không ít hơn. Hãy viết đầy đủ và ngắn gọn.
  2. Ngoài ra, câu lệnh phải cụ thể và rõ ràng, tránh dùng ngôn từ mơ hồ hoặc không rõ ràng.
  3. Chia nhỏ các nhiệm vụ phức tạp thành những phần nhỏ hơn và dễ quản lý hơn. Bằng cách chia nhỏ nhiệm vụ thành các bước nhỏ hơn, bạn có thể giúp mô hình tập trung vào một việc tại một thời điểm và giảm khả năng xảy ra lỗi hoặc nhầm lẫn.
  4. Để cải thiện chất lượng phản hồi, hãy thêm ví dụ vào câu lệnh. LLM học hỏi trong bối cảnh từ các ví dụ về cách phản hồi.

Khi tạo câu lệnh, ngoài nội dung mô tả bằng ngôn ngữ tự nhiên về loại bối cảnh cần tạo, bạn cũng có thể sử dụng các phần giữ chỗ sau:

  • $conversation Cuộc trò chuyện giữa trợ lý và người dùng, không bao gồm câu nói cuối cùng của người dùng. Bạn có thể điều chỉnh tiền tố rẽ (ví dụ: "Con người", "AI" hoặc "Bạn", "Tác nhân") trong câu lệnh văn bản
  • $last-user-utterance Câu nói gần đây nhất của người dùng.
  • $flow-description Nội dung mô tả luồng của luồng đang hoạt động.
  • $route-descriptions Nội dung mô tả ý định của các ý định đang hoạt động.

Giờ đây, khi đã có một câu lệnh văn bản ban đầu, nhiệm vụ tiếp theo là đảm bảo luồng và ý định có nội dung mô tả rõ ràng.

8. Thêm nội dung mô tả về luồng và ý định

Thêm nội dung mô tả quy trình

  1. Để thêm nội dung mô tả vào luồng Tàu lưu trú, hãy truy cập vào chế độ cài đặt luồng bằng cách di chuột lên luồng đó trong mục Luồng.

Truy cập vào chế độ cài đặt luồng bằng cách di chuột lên luồng trong phần Luồng.

  1. Nhấp vào nút 78d2781c655810e7.pnglựa chọn.
  2. Chọn Cài đặt luồng rồi thêm nội dung mô tả sau (hoặc nội dung mô tả tương tự): search, find and book liveaboards.

Thêm nội dung mô tả vào quy trình Liveaboards

  1. Nhấp vào Lưu

Thêm nội dung mô tả ý định

  1. Bây giờ, hãy thêm nội dung mô tả phù hợp cho ý định head.send.group.request. Chuyển sang thẻ Quản lý, chọn Ý định trong phần Tài nguyên rồi chọn ý định head.send.group.request.
  2. Thêm nội dung mô tả sau: assist users with group or full charter reservations. Initially collect travel details including departure period, destination, number of guests (min 4 max 15 people), contact details. The destination must be one of the following in the Pacific: Costa Rica, Mexico, Galapagos Islands

Xin lưu ý rằng nội dung mô tả có chứa thông tin quan trọng, chẳng hạn như số lượng hành khách tối thiểu và tối đa được phép đi trên thuyền. Hãy lưu ý điều này!

  1. Nhấp vào Lưu

Và bạn đã hoàn tất! Bạn đã bật tính năng dự phòng dựa trên mô hình tạo cho trình xử lý sự kiện không khớp cho cả quy trình và phương thức thực hiện tham số. Bạn cũng đã xác định câu lệnh văn bản của riêng mình mà tính năng dự phòng tạo sinh sẽ chuyển đến một mô hình ngôn ngữ lớn để tạo ra các câu trả lời tạo sinh.

Trong phần tiếp theo, bạn sẽ kiểm tra lại tác nhân để xem tác nhân có thể trả lời những câu hỏi khó tương tự như trước đây hay không.

9. Kiểm thử lại nhân viên hỗ trợ

Giờ đây, bạn đã định cấu hình và bật tính năng dự phòng dựa trên mô hình tạo trên tác nhân ảo, bạn có thể đặt các câu hỏi tương tự nhưng khó hơn và xem cách tác nhân ảo xử lý các câu trả lời.

Nhấp vào Test Agent (Tác nhân kiểm thử) để mở lại Trình mô phỏng.

Kiểm tra lại tác nhân

Hỏi lại nhân viên về tàu lưu trú và hoạt động lặn bằng tàu lưu trú. Từ giờ trở đi, hãy lưu ý cách mọi cuộc trò chuyện đều có tin nhắn do người dùng xác định cũng như câu trả lời được tạo, tất cả đều được đánh dấu trong các hộp màu đỏ.

Kiểm thử lại tác nhân và hỏi lại xem liveaboard là gì

Bạn có nhận được câu trả lời hay và giàu thông tin thay vì một câu hỏi chung chung không? Tuyệt vời! Sau khi bạn cung cấp nội dung mô tả rõ ràng và ngắn gọn về những việc bạn muốn trợ lý thực hiện (trong câu lệnh văn bản và trong nội dung mô tả quy trình), giờ đây, bot của bạn sẽ thông minh hơn nhiều khi trả lời các câu hỏi chi tiết mà không cần tạo ý định cụ thể. Khách hàng sẽ hài lòng khi nhân viên hỗ trợ có thể đưa ra câu trả lời đầy đủ thông tin hơn thay vì câu trả lời không có tác dụng.

Đừng ngại và hãy thử thách tác nhân, hỏi xem tác nhân có thể giúp bạn tìm một khoá học lặn có mang bình dưỡng khí vì bạn chưa phải là một thợ lặn được chứng nhận hay không.

 Hỏi trợ lý ảo xem trợ lý ảo có thể giúp bạn tìm một khoá học lặn biển không

Đúng vậy, hiện tại chúng tôi chưa thiết kế trợ lý ảo để hỗ trợ các khoá học lặn. Làm sao nhân viên hỗ trợ biết được điều đó? Trong lời nhắc bằng văn bản, chúng tôi đã nêu rõ những vấn đề mà nhân viên hỗ trợ có thể và không thể trợ giúp. Hiện tại, bạn không thể giúp khách hàng tìm hiểu về các hoạt động lặn có mang bình dưỡng khí trên đất liền và các khoá học. Bạn không thể đề xuất các cửa hàng lặn và khu nghỉ dưỡng lặn tại địa phương"

Bây giờ, hãy kiểm tra lại trường hợp lý tưởng và làm phong phú thêm cuộc trò chuyện. Hãy xem trải nghiệm đã thay đổi như thế nào.

Kiểm tra lại trường hợp thành công và sáng tạo trong hộp thoại

Kiểm tra lại trường hợp thành công và sáng tạo trong hộp thoại

Khi Dialogflow so khớp một ý định hoặc cố gắng thu thập một thông số theo thiết kế của luồng, hệ thống sẽ hiển thị các yêu cầu thực hiện được xác định tại thời điểm thiết kế. Khi người dùng yêu cầu tóm tắt thông tin chi tiết về chuyến đi hoặc đề nghị cung cấp số điện thoại của họ, tính năng dự phòng dựa trên mô hình tạo sinh sẽ được kích hoạt.

Tuyệt vời! Bạn đã kiểm tra lại trường hợp thành công và tôi hy vọng bạn đã có một cuộc trò chuyện dễ chịu và tự nhiên với trợ lý ảo, gần giống nhất có thể với trải nghiệm bạn sẽ có với một nhân viên hỗ trợ.

Rất tiếc, có thể xảy ra lỗi trong cuộc trò chuyện. Hãy thử một bài kiểm tra khác. Lần này, khi bạn được hỏi về số lượng khách, hãy nói một con số lớn hơn 15.

Nhập số lượng khách lớn hơn 15

Nhập số lượng khách lớn hơn 15

Sau đây là một số điều cần lưu ý:

  1. Tại sao 20 không phải là số hợp lệ? Vì chúng tôi đã đặt giới hạn về số lượng khách được phép trong phần mô tả ý định: "Trợ lý thu thập thông tin như khoảng thời gian khởi hành, điểm đến, số lượng khách ***(tối thiểu 4 người, tối đa 15 người)****, thông tin liên hệ*" . Câu trả lời tạo sinh mà LLM đã trả về "Xin lỗi, chúng tôi chỉ có thể hỗ trợ đặt phòng cho nhóm tối đa 15 khách" hoàn toàn phù hợp với các hạn chế mà chúng tôi đã đưa ra về số lượng khách. Để tăng cường việc thực thi này, số lượng khách là một thực thể RegExp tuỳ chỉnh chỉ khớp với các số nằm trong phạm vi từ 4 đến 15.
  2. Cuộc trò chuyện vẫn tiếp tục vì cuối cùng người dùng vẫn muốn nhận được ưu đãi cho 15 thợ lặn. Điều này thường xuyên xảy ra trong các cuộc trò chuyện tự nhiên, chúng ta thay đổi ý định khá thường xuyên! Hãy chú ý cách trợ lý hợp tác và nhẹ nhàng hướng người dùng quay lại con đường dẫn đến thành công.

Thiết kế cuộc trò chuyện bao gồm việc viết kịch bản cho một nửa cuộc trò chuyện, hy vọng rằng kịch bản đó đủ mạnh mẽ để bất kỳ ai cũng có thể tham gia và diễn xuất nửa còn lại. Khi thiết kế cho phần đuôi dài, nhà phát triển cần tập trung vào những gì người dùng có thể nói ở mỗi bước trong hộp thoại để xác định các tuyến đường, trình xử lý và thông số của bạn. Đó là lý do chúng tôi đã thêm tính năng dự phòng dựa trên mô hình tạo sinh vào Dialogflow CX: để nhà phát triển tập trung vào các nguyên tắc thiết kế cuộc trò chuyện và ít tập trung vào chi tiết triển khai để mang đến trải nghiệm trò chuyện mạnh mẽ cho người dùng.

Hãy thực hiện một bài kiểm thử khác, lần này hãy thách thức bot bằng một địa điểm không có trong danh sách các điểm đến có sẵn, chẳng hạn như Maldives. Sau đó, chúng ta sẽ xem xét nhanh những gì diễn ra ở phía sau.

Thách thức bot một lần nữa bằng một địa điểm không có trong danh sách các đích đến hiện có, chẳng hạn như Maldives

Xin lưu ý rằng vì chúng tôi cũng đã bật tính năng dự phòng dựa trên mô hình tạo cho sự kiện no-match đối với tham số đích đến, nên một yêu cầu sẽ được gửi đến mô hình ngôn ngữ lớn để tạo ra phản hồi được tạo. Các câu trả lời được viết sẵn thông thường (trong phần Nhân viên hỗ trợ nói) sẽ bị bỏ qua.

Các hộp văn bản bên dưới sẽ giúp bạn hiểu rõ hơn về cách các phần giữ chỗ giúp định hình yêu cầu được gửi đến mô hình ngôn ngữ lớn.

Đây là câu lệnh văn bản tuỳ chỉnh mà chúng tôi đã định cấu hình trong Dialogflow, trong đó các phần giữ chỗ được làm nổi bật bằng chữ in đậm:

You are a friendly agent that likes helping traveling divers.
You are under development and you can only help
$flow-description

At the moment you can't help customers with land-based diving and courses. You cannot recommend local dive shops and diving resorts.

Currently you can $route-descriptions

The conversation between the human and you so far was:
${conversation USER:"Human:" AGENT:"AI"}

Then the human asked:
$last-user-utterance

You say:

Trong hộp văn bản bên dưới, tôi đã đưa ra dữ liệu đầu vào mà mô hình ngôn ngữ lớn nhận được và dữ liệu đầu ra chứa câu trả lời được tạo sẽ được nói lại với người dùng:

llm_input:
You are a friendly agent that likes helping traveling divers.
You are under development and you can only help search, find and book liveaboards.

At the moment you can't help customers with land-based diving and courses. You cannot recommend local dive shops and diving resorts.

Currently you can assist users who are looking for a group reservation or a full charter. Initially collect travel details including departure period, destination, number of guests (min 4 max 15 people), contact details. The destination must be one of the following in the Pacific: Costa Rica, Mexico, Galapagos Islands.

The conversation between the human and you so far was:
Human: Hi, my name's Alessia
AI Hi Alessia, what can I help you with today?
Human: Can you help me find a nice boat for myself and my family?
AI To assist you with that I need to collect the details of your travel and then we'll get back to you with an offer shortly.
Where would you like to go? We can organize a charter in Costa Rica, Galapagos Islands and several locations around Mexico

Then the human asked:
The kids want to go to the Maldives

llm_output:
You say:
I'm sorry Alessia, we can only help you with liveaboards in Costa Rica, Galapagos Islands and several locations around Mexico.

Tương tự như thử nghiệm đã thực hiện trước đó, phản hồi gửi lại cho người dùng là do mô hình tạo ra và dựa vào thông tin mà chúng tôi đã cung cấp trong phần mô tả ý định: "Điểm đến phải là một trong những nơi sau đây ở Thái Bình Dương: Costa Rica, Mexico, Quần đảo Galapagos"

Sửa đổi danh sách cụm từ bị cấm

Bạn có thể định cấu hình tính năng dự phòng dựa trên mô hình tạo sinh theo nhiều cách:

  1. Chọn một câu lệnh cụ thể (đã xác định) để dùng cho việc tạo câu trả lời.
  2. Xác định câu lệnh tuỳ chỉnh.
  3. Thay đổi danh sách cụm từ bị cấm.

Đến đây, chúng ta đã xem xét 2 cách đầu tiên. Hãy cùng tìm hiểu về lựa chọn thứ ba.

  1. Trong phần Cài đặt tác nhân, hãy chuyển đến thẻ Học máy, rồi chuyển đến thẻ phụ AI tạo sinh.
  2. Trong phần Cụm từ bị cấm, hãy thêm các câu sau vào danh sách:
  3. Dangerous country
  4. Hateful place
  5. Medical assistance
  6. Nhấp vào Lưu.
  7. Nhấp vào biểu tượng Đặt lại và kiểm tra lại kịch bản gần đây nhất. Thay vì cung cấp một điểm đến lặn biển tuyệt đẹp trên khắp thế giới, hãy nhập một trong các cụm từ bị cấm.

Kiểm thử một trong các cụm từ bị cấm

Câu lệnh và câu trả lời được tạo sẽ được kiểm tra dựa trên danh sách cụm từ bị cấm. Cụm từ bị cấm là những cụm từ bị cấm đối với AI tạo sinh. Nếu câu lệnh chứa các cụm từ bị cấm hoặc cụm từ bị coi là không an toàn, thì quá trình tạo sẽ không thành công và thay vào đó, câu trả lời thông thường theo quy định (trong phần Agent says (Trợ lý nói) trong cùng một yêu cầu thực hiện) sẽ được đưa ra.

Tuyệt vời! Chúng tôi đã đề cập đến nhiều tình huống trò chuyện mà câu trả lời tạo sinh có thể tạo ra sự khác biệt thực sự. Bạn có thể tiếp tục thử nghiệm!

10. Xin chúc mừng

Chúc mừng bạn đã hoàn tất lớp học lập trình này! Đến lúc thư giãn rồi!

Cbo Chill

Bạn đã tạo thành công một trợ lý ảo và bật tính năng dự phòng dựa trên mô hình tạo trên trình xử lý sự kiện no-match được dùng trong các luồng và trong quá trình điền thông số.

Tính năng dự phòng tạo sinh kết hợp với nội dung mô tả rõ ràng về luồng và ý định có thể cung cấp các câu trả lời cụ thể và phối hợp của tác nhân thay vì các câu lệnh chung chung như "Xin lỗi, tôi không chắc chắn về cách trợ giúp" hoặc "Xin lỗi, bạn đã nhập một lựa chọn không hợp lệ". Lời nhắc lỗi do các mô hình ngôn ngữ lớn tạo ra có thể nhẹ nhàng hướng người dùng quay lại những đường dẫn thành công hoặc đặt lại kỳ vọng của họ về những điều có thể và không thể.

Bạn có thể thoải mái thử nghiệm các tình huống trò chuyện khác và khám phá các chức năng khác có liên quan đến Dialogflow CXAI tạo sinh.

Dọn dẹp

Bạn có thể thực hiện các bước dọn dẹp sau đây để tránh bị tính phí cho Tài khoản Google Cloud của mình đối với các tài nguyên được dùng trong lớp học lập trình này:

  • Chuyển đến bảng điều khiển Dialogflow CX rồi xoá tất cả các tác nhân mà bạn đã tạo.
  • Trong bảng điều khiển Google Cloud, hãy chuyển đến trang API và dịch vụ rồi tắt Dialogflow API.

Tài liệu đọc thêm

Tiếp tục tìm hiểu về AI đàm thoại và AI tạo sinh thông qua các hướng dẫn và tài nguyên sau:

Giấy phép

Tác phẩm này được cấp phép theo giấy phép Ghi công theo Creative Commons 2.0 Chung.