Xác định thao tác (Dialogflow)

Hành động là điểm truy cập vào ứng dụng để xác định mô hình gọi và khám phá cho ứng dụng. Bạn khai báo Hành động trong tệp JSON được gọi là Gói hành động. Sau đó, bạn sẽ tải gói này lên dự án nhà phát triển khi muốn kiểm thử hoặc gửi dự án Actions của mình để phê duyệt. Gói Hành động là tệp JSON xác định Hành động trong dự án Hành động của bạn.

Để xác định Hành động trong gói Hành động, bạn cần tạo một ý định giúp xác định cách gọi Hành động đó và điểm cuối của phương thức thực hiện tương ứng khi ý định được kích hoạt. Bạn có thể tạo các loại Hành động sau:

  • Hành động mặc định: Mỗi dự án Hành động phải có một ý định chào mừng đóng vai trò là điểm truy cập để người dùng bắt đầu cuộc trò chuyện. Ý định chào mừng được kích hoạt khi người dùng gọi một Hành động bằng cách nói tên của hành động đó một cách rõ ràng (ví dụ: "OK Google, hãy trò chuyện với ExampleAction"). Ý định chào mừng này được xác định bằng tên ý định actions.intent.MAIN.
  • Hành động bổ sung cho liên kết sâu: Bạn có thể tạo các Hành động khác trong gói Hành động của mình với các ý định mà bạn tự xác định. Thao tác này cho phép người dùng gọi ra chức năng cụ thể bằng cách nói tên Hành động cùng với ý định (ví dụ: "Ok Google, nói chuyện với ExampleAction để tìm một vài giày").

Vui lòng xem bài viết Ý định và lệnh gọi để biết thêm thông tin về cách hoạt động của các mô hình gọi này.

Xác định Hành động mặc định

Mỗi Gói Hành động phải có một và chỉ một ý định xử lý ý định actions.intent.MAIN. Ý định này được kích hoạt khi người dùng gọi Hành động của bạn theo tên (ví dụ: "Ok Google, trò chuyện với ExampleAction").

Để tạo tệp gói Hành động nguyên mẫu có tên action.json, hãy làm theo các bước sau:

  1. Tải gactions CLI xuống.
  2. Tạo thư mục cục bộ cho các tệp nguồn của dự án Hành động.
  3. Chạy các lệnh sau trong cửa sổ dòng lệnh:

    $ cd PROJECT_DIRECTORY
    $ gactions init

Sau khi tệp Gói hành động được tạo, hãy thay thế nội dung giữ chỗ bằng các giá trị của bạn. Dưới đây là ví dụ về action.json có các thay đổi đối với ExampleAction:

{
  "actions": [
    {
      "description": "Default welcome intent",
      "name": "MAIN",
      "fulfillment": {
        "conversationName": "ExampleAction"
      },
      "intent": {
        "name": "actions.intent.MAIN",
        "trigger": {
          "queryPatterns": [
            "talk to ExampleAction"
          ]
        }
      }
    }
  ],
  "conversations": {
    "ExampleAction": {
      "name": "ExampleAction",
      "url": "https://www.example.com/ExampleAction"
    }
  },
  "locale": "en"
}

Xác định các Hành động bổ sung

Bạn có thể cung cấp các Hành động khác đóng vai trò là điểm truy cập. Điều này cho phép người dùng phân biệt ý định của mình bằng cách cho phép họ chỉ định thêm thông tin chi tiết về việc họ muốn làm (ví dụ: "Ok Google, nói chuyện với ExampleAction để tìm cho tôi một số giày").

Để xác định các Hành động khác:

  1. Trong mảng actions, hãy chỉ định một Hành động cho mỗi điểm truy cập.

    Ví dụ: mã sau đây cho thấy một Hành động "mua" bổ sung xác định:
    • Tên ý định của com.example.ExampleAction.BUY
    • parameters để phân tích cú pháp từ hoạt động đầu vào của người dùng khi ý định này được kích hoạt. Điều này rất hữu ích nếu bạn cần dữ liệu cụ thể từ cụm từ Hành động khi người dùng gọi Hành động.
    • queryPatterns xác định những điều người dùng cần nói để kích hoạt ý định. Mẫu truy vấn có thể bao gồm các loại Schema.org xác định các tham số cần phân tích cú pháp.
    {
      "description": "Direct access",
      "name": "BUY",
      "fulfillment": {
        "conversationName": "ExampleAction"
      },
      "intent": {
        "name": "com.example.ExampleAction.BUY",
        "parameters": [
          {
            "name": "color",
            "type": "org.schema.type.Color"
          }
        ],
        "trigger": {
          "queryPatterns": [
            "find some $org.schema.type.Color:color sneakers",
            "buy some blue suede shoes",
            "get running shoes"
          ]
        }
      }
    }
          
  2. Chỉ định phương thức thực hiện cho ý định này bằng cách chỉ định conversationName tương ứng với một mục trong đối tượng conversations.

    {
      "conversations": {
        "ExampleAction": {
          "name": "ExampleAction",
          "url": "https://www.example.com/ExampleAction"
        }
      }
    }
        

Dưới đây là ví dụ về gói Hành động đầy đủ:

{
  "actions": [
    {
      "description": "Default welcome intent",
      "name": "MAIN",
      "fulfillment": {
        "conversationName": "ExampleAction"
      },
      "intent": {
        "name": "actions.intent.MAIN",
        "trigger": {
          "queryPatterns": [
            "talk to ExampleAction"
          ]
        }
      }
    },
    {
      "description": "Direct access",
      "name": "BUY",
      "fulfillment": {
        "conversationName": "ExampleAction"
      },
      "intent": {
        "name": "com.example.ExampleAction.BUY",
        "parameters": [
          {
            "name": "color",
            "type": "org.schema.type.Color"
          }
        ],
        "trigger": {
          "queryPatterns": [
            "find some $org.schema.type.Color:color sneakers",
            "buy some blue suede shoes",
            "get running shoes"
          ]
        }
      }
    }
  ],
  "conversations": {
    "ExampleAction": {
      "name": "ExampleAction",
      "url": "https://www.example.com/ExampleAction"
    }
  },
  "locale": "en"
}