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

Hành động là các điểm truy cập vào ứng dụng, giúp xác định lời mời và khám phá cho ứng dụng của mình. Bạn khai báo Hành động trong tệp JSON được gọi là Gói hành động, mà sau này bạn tải lên dự án dành cho nhà phát triển khi bạn muốn thử nghiệm hoặc gửi dự án Actions để phê duyệt. Gói Hành động là một tệp JSON xác định các Actions trong dự án Actions 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 xác định cách Hành động được gọi và điểm cuối thực hiện tương ứng khi ý định được kích hoạt. Bạn có thể tạo các loại Thao tác sau:

  • Hành động mặc định: Mọi dự án Hành động phải có ý định chào mừng hành động làm điểm truy cập để người dùng bắt đầu cuộc trò chuyện. Mục đích chào mừng là được kích hoạt khi người dùng gọi ra một Hành động một cách rõ ràng bằng cách nói tên hành động đó (cho ví dụ: "Ok Google, hãy nói 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 đường liên kết sâu: Bạn có thể tạo thêm Hành động trong gói Hành động của bạn với ý định mà bạn tự xác định. Điều này cho phép người dùng để gọi 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, hãy nói chuyện với ExampleAction để tìm một số đô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 các mô hình gọi này hoạt động.

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 theo tên (ví dụ: "Ok Google, hãy nói 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ấy phương thức các bước sau:

  1. Tải gactions CLI xuống.
  2. Tạo một 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 thiết bị đầu cuối:

    $ cd PROJECT_DIRECTORY
    $ gactions init

Sau khi tạo tệp Gói hành động, hãy thay thế nội dung phần giữ chỗ bằng giá trị. Dưới đây là ví dụ về action.json với các thay đổi cho 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 khác

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

Cách xác định các Thao tác 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 hiển thị thêm một nút "mua" Hành động 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 sẽ 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 gì 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 ý đị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ề một 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"
}