Ý định tích hợp (Dialogflow)

Ý định tích hợp là một giá trị nhận dạng duy nhất mà bạn có thể chỉ định để cho Trợ lý Google biết rằng Hành động của bạn có thể đáp ứng một danh mục yêu cầu cụ thể của người dùng. Ví dụ: dưới đây là một số ví dụ về truy vấn của người dùng mà Trợ lý so khớp với ý định tích hợp:

  • Ý định tích hợp"Chơi trò chơi": "Ok Google. Chơi một trò chơi trí nhớ"
  • Ý định tích hợp"Xem tử vi": "Ok Google. Xem tử vi của tôi"

Trong quá trình Khám phá Hành động, Trợ lý có thể dùng siêu dữ liệu về Hành động của bạn (bao gồm cả các ý định tích hợp mà bạn đã chỉ định) để đề xuất Hành động của bạn cho người dùng. Để giảm thiểu các cuộc trò chuyện khứ hồi, Trợ lý cũng cố gắng quét các thông số từ truy vấn của người dùng và truyền các thông số đó đến Hành động của bạn.

Để xem danh sách đầy đủ các ý định tích hợp mà Trợ lý hỗ trợ, bao gồm cả tham số và truy vấn mẫu của người dùng, hãy xem Tài liệu tham khảo về ý định tích hợp.

Tích hợp các ý định tích hợp

Tuỳ thuộc vào cách bạn xây dựng Hành động, có nhiều cách để tích hợp các ý định tích hợp.

Dialogflow

Nếu đang sử dụng Dialogflow để tạo Hành động, bạn có thể đính kèm ý định tích hợp bằng đồ họa từ bảng điều khiển Dialogflow.

Để đính kèm ý định tích hợp bằng Dialogflow, hãy làm theo các bước sau:

  1. Mở bảng điều khiển Dialogflow, chọn tác nhân của bạn rồi chuyển đến màn hình Intent (Ý định).
  2. Tạo hoặc chọn ý định mà tác nhân của bạn kích hoạt khi nhận được một ý định tích hợp cụ thể. Mở mục Sự kiện và nhấp vào Thêm sự kiện.

    Hình 1. Thêm một sự kiện Dialogflow vào bảng điều khiển Dialogflow.
  3. Trong trường Sự kiện, hãy nhập tên của sự kiện có ý định tích hợp cho tác nhân của bạn (ví dụ: actions_intent_PLAY_GAME).

    Hình 2. Đính kèm một ý định tích hợp cho nhân viên hỗ trợ của bạn trong bảng điều khiển Dialogflow.
  4. Nhấp vào Lưu.

SDK Hành động

Nếu đang dùng SDK Hành động để tạo Hành động, thì bạn phải chỉ định liên kết giữa ý định tích hợp và Hành động trong gói Hành động của mình.

Để đính kèm một ý định tích hợp bằng SDK Hành động, hãy làm theo các bước sau:

  1. Chỉ định ý định tích hợp trong trường tên trong phần định nghĩa Hành động.
  2. Tải gói hành động lên dự án Hành động bằng công cụ gactions như mô tả trong bài viết Tổng quan về SDK Hành động.

Ví dụ: đoạn mã sau đây cho biết cách bạn có thể thêm ý định tích hợp CHECK_AIR_QUALITY:

{
   "actions":[
      {
         "description":"Default Welcome Intent",
         "name":"MAIN",
         "fulfillment":{
            "conversationName":"conversation_1"
         },
         "intent":{
            "name":"actions.intent.MAIN"
         }
      },
      {
         "description":"Check Air Quality",
         "name":"CHECK_AIR_QUALITY",
         "fulfillment":{
            "conversationName":"conversation_1"
         },
         "intent":{
            "name":"actions.intent.CHECK_AIR_QUALITY"
         }
      }
   ],
   "conversations":{
      "conversation_1":{
         "name":"conversation_1",
         "url":"https://example.com/fulfillment",
         "fulfillmentApiVersion":2
      }
   }
}

Xử lý các tham số ý định tích hợp

Khi Hành động của bạn được gọi thông qua một ý định tích hợp, quá trình thực hiện của bạn có thể nhận được các tham số bổ sung. Giản đồ ý định xác định tên của tham số và loại của tham số dưới dạng loại nguyên gốc hoặc thực thể schema.org. Để xem giản đồ cho ý định tích hợp cho Hành động trò chuyện, vui lòng xem Tài liệu tham khảo về ý định tích hợp.

Bạn không bắt buộc phải có tham số cho các ý định tích hợp. Trợ lý sẽ xử lý việc điền các giá trị vào tham số nếu có thể trích xuất từ lệnh gọi ý định tích hợp của người dùng.

Ví dụ: giản đồ của ý định tích hợp actions.intent.CHECK_AIR_QUALITY xác định 4 tham số không bắt buộc:

Tên thông số Loại
attributes Giá trị chuỗi.
location Đối tượng schema.org/Place.
temporalCoverage Đối tượng schema.org/Duration.
timeIndicator Một EnumeratedDuration (tiện ích dành riêng cho Google).

Đoạn mã sau đây cho thấy một ví dụ về yêu cầu webhook (JSON) cuộc trò chuyện khi người dùng gọi Hành động của bạn bằng cách nói "Chất lượng không khí ở San Francisco vào ngày mai là bao nhiêu?":

"inputs":[
      {
         "intent":"actions.intent.CHECK_AIR_QUALITY",
         "rawInputs":[
            {
               "inputType":"VOICE",
               "query":"what is the air quality in san francisco tomorrow"
            }
         ],
         "arguments":[
            {
               "name":"location",
               "structuredValue":{
                  "geo":{
                     "longitude":-122.41941550000001,
                     "latitude":37.7749295
                  },
                  "@context":"https://schema.org",
                  "@type":"Place",
                  "name":"san francisco"
               }
            },
            {
               "name":"temporalCoverage",
               "rawText":"2018-04-25",
               "textValue":"2018-04-25"
            }
         ]
      }
   ]

Trong ví dụ này, các thông số nhận các giá trị sau:

  • Tham số location chứa giá trị schema.org/Place cho "San Francisco".
  • Tham số temporalCoverage chứa giá trị schema.org/Duration cho ngày mai so với thời điểm gọi.
  • Không có giá trị nào cho các tham số attributestimeIndicator vì cụm từ gọi của người dùng không bao gồm các thông tin như vậy.

Nếu sử dụng Thư viện ứng dụng Actions on Google cho Node.js, bạn có thể truy xuất giá trị của các thông số như minh hoạ trong đoạn mã sau:

app.intent('actions.intent.CHECK_AIR_QUALITY', (conv) => {
  const attributes = conv.arguments.get('attributes');
  const location = conv.arguments.get('location');
  const temporal_coverage = conv.arguments.get('temporalCoverage');
  Const time_indicator = conv.arguments.get('timeIndicator')

  // Your Action logic. If you need to use any of the parameter values,
  // you should check first that it is defined. Arguments.get returns
  // undefined if it can't find a value for a parameter.

});

Kiểm thử quá trình tích hợp bằng ý định tích hợp

Hãy làm theo các bước sau để kiểm thử quá trình tích hợp:

  1. Mở trình mô phỏng Hành động khi Hành động kiểm thử đang bật, hoặc mở Trợ lý trên thiết bị.
  2. Nói hoặc nhập một truy vấn liên quan đến ý định tích hợp đó. Ví dụ: "Tôi muốn chơi trò chơi".
  3. Trong hộp thoại chọn ứng dụng đang hiển thị, hãy tìm Hành động của bạn.
  4. Chọn ứng dụng của bạn để gửi ý định đến ứng dụng.
Hình 3. Hộp thoại lựa chọn hành động xuất hiện
từ một cụm từ ý định tích hợp.
Hình 4. Gọi một Hành động đi kèm với ý định tích hợp.

Các phương pháp hay nhất để sử dụng ý định tích hợp

Bạn nên làm theo các phương pháp hay nhất sau đây khi sử dụng ý định tích hợp:

  • Liên kết ý định tích hợp với các hành động cụ thể: Khi một ý định tích hợp cụ thể kích hoạt Hành động của bạn, hãy đưa người dùng đến ý định và chức năng cụ thể trong Hành động đó theo cách ít phiền hà nhất có thể. Ví dụ: nếu Hành động của bạn hỗ trợ ý định tích hợp PLAY_GAME và nhận được ý định đó, bạn nên chuyển ngay người dùng đến tính năng trò chơi của Hành động đó. Tránh hỏi lại người dùng xem họ có muốn chơi trò chơi hay không.
  • Xử lý các tham số ý định tích hợp: Hãy nhớ sử dụng các giá trị tham số ý định tích hợp mà Trợ lý gửi đến phương thức thực hiện của bạn. Tránh nhắc lại người dùng đối với các giá trị đó.