กำหนดการดำเนินการ (Dialogflow)

การดำเนินการคือจุดเริ่มต้นสู่แอปที่กำหนดรูปแบบการเรียกใช้และการค้นพบของแอป คุณประกาศการดำเนินการในไฟล์ JSON ที่รู้จักกันในชื่อแพ็กเกจการดำเนินการ ซึ่งคุณจะอัปโหลดไปยังโปรเจ็กต์นักพัฒนาซอฟต์แวร์ในภายหลังเมื่อต้องการทดสอบหรือส่งโปรเจ็กต์ Actions เพื่อขออนุมัติ แพ็กเกจ Action เป็นไฟล์ JSON ที่กำหนดการดำเนินการในโปรเจ็กต์ Actions

หากต้องการกำหนดการดำเนินการในแพ็กเกจการดำเนินการ คุณจะสร้าง Intent ที่กำหนดวิธีเรียกใช้การดำเนินการและปลายทาง Fulfillment ที่เกี่ยวข้องเมื่อมีการทริกเกอร์ Intent คุณสร้างประเภทการดำเนินการต่อไปนี้ได้

  • การดำเนินการเริ่มต้น: ทุกโปรเจ็กต์ของ Actions ต้องมี Intent ต้อนรับที่ทำหน้าที่เป็นจุดแรกเข้าเพื่อให้ผู้ใช้เริ่มการสนทนา ระบบจะทริกเกอร์ Intent ต้อนรับเมื่อผู้ใช้เรียกใช้การดำเนินการอย่างชัดแจ้งด้วยการพูดชื่อ (เช่น "Ok Google คุยกับ ExampleAction") Intent ต้อนรับนี้จะระบุด้วย ชื่อ Intent actions.intent.MAIN
  • การดำเนินการเพิ่มเติมสำหรับการทำ Deep Link: คุณสามารถสร้างการดำเนินการเพิ่มเติมในแพ็กเกจการดำเนินการโดยมี Intent เป็นจุดที่คุณกำหนดได้เอง ซึ่งช่วยให้ผู้ใช้เรียกใช้ฟังก์ชันการทำงานบางอย่างได้โดยพูดชื่อการดำเนินการพร้อมกับความตั้งใจ (เช่น "Ok Google พูดกับ ExampleAction เพื่อค้นหารองเท้า")

ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีการทำงานของโมเดลการเรียกใช้เหล่านี้ได้ที่ Intent และการเรียกใช้

กำหนดการดำเนินการเริ่มต้น

แพ็กเกจการดำเนินการทุกรายการต้องมี Intent 1 รายการเท่านั้นที่จัดการ Intent actions.intent.MAIN Intent นี้จะถูกทริกเกอร์เมื่อผู้ใช้เรียกใช้ Action ของคุณด้วยชื่อ (เช่น "Ok Google พูดกับ ExampleAction")

หากต้องการสร้างไฟล์แพ็กเกจการดำเนินการแบบ Boilerplate ที่ชื่อว่า action.json ให้ทำตามขั้นตอนต่อไปนี้

  1. ดาวน์โหลด gactions CLI
  2. สร้างไดเรกทอรีภายในสำหรับไฟล์ต้นฉบับของโปรเจ็กต์การดำเนินการ
  3. เรียกใช้คำสั่งต่อไปนี้ในเทอร์มินัล

    $ cd PROJECT_DIRECTORY
    $ gactions init

เมื่อสร้างไฟล์แพ็กเกจการดำเนินการแล้ว ให้แทนที่เนื้อหาตัวยึดตำแหน่งด้วยค่าของคุณ นี่คือตัวอย่างของ action.json ที่มีการเปลี่ยนแปลงสำหรับ 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"
}

กำหนดการดำเนินการเพิ่มเติม

คุณระบุการดำเนินการเพิ่มเติมที่ทำหน้าที่เป็นจุดแรกเข้าได้ วิธีนี้ช่วยให้ผู้ใช้แยกแยะจุดประสงค์ได้อย่างชัดเจนโดยการให้ระบุรายละเอียดเพิ่มเติมเกี่ยวกับสิ่งที่ต้องการทำ (เช่น "Ok Google พูดกับ ExampleAction เพื่อหารองเท้าให้ฉันหน่อย")

วิธีกำหนดการดำเนินการเพิ่มเติม

  1. ในอาร์เรย์ actions ให้ระบุการดำเนินการสำหรับทุกจุดแรกเข้า

    เช่น โค้ดต่อไปนี้แสดงการดำเนินการ "ซื้อ" เพิ่มเติมซึ่งกำหนดสิ่งต่อไปนี้
    • ชื่อ Intent ของ com.example.ExampleAction.BUY
    • parameters เพื่อแยกวิเคราะห์จากข้อมูลที่ผู้ใช้ป้อนเมื่อมีการทริกเกอร์ Intent ซึ่งจะเป็นประโยชน์หากคุณต้องการข้อมูลเฉพาะจากวลีการทำงานเมื่อผู้ใช้เรียกใช้การดำเนินการ
    • queryPatterns ซึ่งระบุสิ่งที่ผู้ใช้ต้องพูดเพื่อทริกเกอร์ความตั้งใจ รูปแบบคำค้นหาอาจรวมถึงประเภท Schema.org ที่กำหนดพารามิเตอร์ที่จะแยกวิเคราะห์ได้
    {
      "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. ระบุ Fulfillment สำหรับ Intent นี้โดยการระบุ conversationName ที่ตรงกับรายการในออบเจ็กต์ conversations

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

ต่อไปนี้คือตัวอย่างของแพ็กเกจ Action แบบเต็ม

{
  "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"
}