สร้างโปรเจ็กต์

โปรเจ็กต์ Actions รวมการดำเนินการทั้งหมดของคุณไว้ในคอนเทนเนอร์เดียว คุณเผยแพร่โปรเจ็กต์นี้ไปยัง Actions on Google เพื่อให้ Google Assistant ทราบวิธีค้นพบและเริ่มต้นการสนทนา

คอมโพเนนต์โปรเจ็กต์การดำเนินการ
รูปที่ 1 โครงสร้างโปรเจ็กต์การดำเนินการ

คุณใช้คอมโพเนนต์ระดับต่ำต่อไปนี้เพื่อสร้างโปรเจ็กต์ Actions ได้

  • การตั้งค่าและทรัพยากรจะกำหนดข้อมูลเมตาและทรัพยากรของโปรเจ็กต์ เช่น ไอคอนโปรเจ็กต์ Google ใช้ข้อมูลนี้เผยแพร่การดำเนินการของคุณในไดเรกทอรี Assistant เพื่อให้ผู้ใช้ค้นพบและเรียกใช้ได้

  • Intent แสดงถึงงานที่ต้องดำเนินการ เช่น ข้อมูลจากผู้ใช้หรือเหตุการณ์ของระบบที่ต้องมีการประมวลผล ประเภทความตั้งใจที่คุณจะใช้ โดยทั่วไปคือความตั้งใจของผู้ใช้ Intent เหล่านี้ช่วยให้คุณประกาศวลีการฝึกที่ขยายตามธรรมชาติโดยเครื่องมือ NLU (การทำความเข้าใจภาษาธรรมชาติ) เพื่อให้มีวลีที่คล้ายกันมากขึ้น NLU ใช้การรวมวลีเหล่านี้เพื่อฝึกโมเดลภาษาที่ Assistant ใช้เพื่อจับคู่อินพุตของผู้ใช้ ในระหว่างการสนทนา หากอินพุตบางส่วนของผู้ใช้ตรงกับโมเดลภาษาของ Intent รันไทม์ของ Assistant จะส่ง Intent ไปยังการดำเนินการของคุณเพื่อให้ดำเนินการและตอบสนองต่อผู้ใช้ได้

  • ประเภทช่วยให้คุณแยก Structured Data จากข้อมูลที่ผู้ใช้ป้อนได้ การใส่คำอธิบายประกอบให้กับวลีการฝึกด้วยประเภทจะทำให้ NLU สามารถดึงข้อมูลที่มีโครงสร้างที่เกี่ยวข้องให้คุณ คุณจึงไม่ต้องแยกวิเคราะห์อินพุตปลายเปิด

  • ฉาก ประมวลผล Intent และเป็นตัวสั่งการทางตรรกะหลักสำหรับการดำเนินการของคุณ ผู้ลงโฆษณาจะสามารถเติมเต็มช่องโฆษณา ประเมินตรรกะแบบมีเงื่อนไข ข้อความแจ้งผู้ใช้ หรือแม้กระทั่งเรียกใช้บริการเว็บภายนอกให้ใช้ตรรกะทางธุรกิจ เมื่อใช้ร่วมกับ Intent แล้ว โหมดต่างๆ จะมอบวิธีที่มีประสิทธิภาพในการตรวจหาอินพุตของผู้ใช้หรือเหตุการณ์ของระบบที่เฉพาะเจาะจง และในการจัดการตรรกะที่สอดคล้องกัน

  • ข้อความแจ้งจะกำหนดคำตอบแบบคงที่หรือแบบไดนามิกที่คุณจะใช้เพื่อตอบกลับผู้ใช้

  • เว็บฮุคช่วยให้คุณมอบหมายงานเพิ่มเติมให้กับบริการบนเว็บ (การดำเนินการตามคำสั่งซื้อ) เช่น การตรวจสอบข้อมูลหรือสร้างพรอมต์ การดำเนินการของคุณสื่อสารกับ Fulfillment ผ่านโปรโตคอลเว็บฮุคที่ใช้ JSON

  • Interactive Canvas ให้คุณสร้างประสบการณ์ที่สมบูรณ์และสมจริงด้วยเว็บแอปที่ใช้ HTML, CSS และ JavaScript

สร้างโปรเจ็กต์

คุณต้องสร้างโปรเจ็กต์ในคอนโซล Actions ก่อนจึงจะพัฒนาสำหรับ Google Assistant ได้ หากต้องการสร้างโปรเจ็กต์ ให้ทำดังนี้

  1. ไปที่คอนโซลการดําเนินการ
  2. คลิกโครงการใหม่
  3. ป้อนชื่อโปรเจ็กต์แล้วคลิกสร้างโปรเจ็กต์
  4. ในหน้าจอคุณต้องการสร้างการดำเนินการประเภทใด ให้เลือกหมวดหมู่ที่ตรงกับโปรเจ็กต์ของคุณมากที่สุด แล้วคลิกถัดไป
  5. ในหน้าจอคุณต้องการสร้างอย่างไร ให้เลือกวิธีสร้าง แล้วคลิกเริ่มสร้าง เช่น เริ่มต้นด้วยโปรเจ็กต์เปล่าหรือโปรเจ็กต์ตัวอย่าง

สร้างโปรเจ็กต์ Local Actions SDK

เมื่อสร้างโปรเจ็กต์ Actions ในคอนโซล Actions แล้ว คุณจะเริ่มต้นโปรเจ็กต์ในสภาพแวดล้อมการพัฒนาในเครื่องได้

หากต้องการเริ่มโปรเจ็กต์ Actions SDK จากโปรเจ็กต์ Actions ที่มีอยู่ ให้ทําตามขั้นตอนต่อไปนี้

  1. สร้างไดเรกทอรีว่างสำหรับโครงการ Actions ในระบบไฟล์ในเครื่อง
  2. สร้างไดเรกทอรี sdk ในไดเรกทอรีที่ว่างเปล่านี้
  3. เปลี่ยนไดเรกทอรีการทำงานเป็นไดเรกทอรี sdk ในเทอร์มินัล

เริ่มต้นจากโปรเจ็กต์ที่ว่างเปล่า

หากต้องการเริ่มต้นจากโปรเจ็กต์เปล่าที่คุณเพิ่งสร้างในคอนโซล ให้เรียกใช้ gactions pull --project-id <my-project-id>

$ mkdir myAction
$ cd myAction
$ mkdir sdk
$ cd sdk
$ gactions pull --project-id my-project-id
Pulling your project files from Draft for a project id: "my-project-id"
✔ Done. You should see the files written in path/to/myAction/sdk

เริ่มด้วยโปรเจ็กต์ตัวอย่าง

หากต้องการเริ่มจากโปรเจ็กต์ตัวอย่าง ให้เรียกใช้ gactions init <sample name>

$ mkdir actions-test
$ cd actions-test
$ mkdir sdk
$ cd sdk
$ gactions init question
Writing sample files for question.
✔ Done. Please checkout the following documentation - https://developers.google.com/assistant/conversational/build on the next steps on how to get started.

กำหนดข้อมูลโปรเจ็กต์

การตั้งค่าและทรัพยากรของโปรเจ็กต์จะระบุข้อมูลเกี่ยวกับโปรเจ็กต์ เช่น ฟีเจอร์และการรองรับแพลตฟอร์ม ภาษาที่รองรับ ชื่อที่แสดง คำอธิบาย โลโก้ และอื่นๆ ตารางต่อไปนี้จะอธิบายถึงการตั้งค่าและทรัพยากรหลัก ที่คุณให้มา Actions on Google จะใช้ข้อมูลนี้เพื่อทำให้ใช้งานได้และเผยแพร่โปรเจ็กต์ในไดเรกทอรี Assistant

ชื่อ คำอธิบาย
ข้อมูลไดเรกทอรี ให้ข้อมูลเพื่อให้ Actions on Google เผยแพร่โปรเจ็กต์ในไดเรกทอรี Assistant ได้ รวมข้อมูลเมตาและการดูหมิ่น เกี่ยวกับทรัพยากรโปรเจ็กต์และรูปภาพสำหรับโลโก้และรูปภาพแบนเนอร์
การกำหนดเป้าหมายตามสถานที่ กำหนดค่าภาษาที่การดำเนินการของคุณใช้ได้
แสดงความสามารถ กำหนดค่าแพลตฟอร์มที่การดำเนินการของคุณพร้อมใช้งาน
รายละเอียดบริษัท ระบุข้อมูลติดต่อของบริษัท
การยืนยันแบรนด์ เชื่อมต่อเว็บไซต์หรือแอป Android ที่คุณเป็นเจ้าของเพื่อรับสิทธิประโยชน์เพิ่มเติม เช่น ชื่อการเรียกใช้ที่จองไว้และการลิงก์เว็บไซต์ภายในการดําเนินการ
เผยแพร่ กำหนดค่าการทดสอบและเวอร์ชันที่ใช้งานจริงแบบต่างๆ สำหรับการดำเนินการสำหรับการทดสอบและเวอร์ชันที่ใช้งานจริง
ลิงก์ Assistant อนุญาตให้ผู้ใช้เรียกใช้การดำเนินการของคุณจากผลิตภัณฑ์และบริการบนอินเทอร์เน็ต

วิธีกำหนดข้อมูลโปรเจ็กต์

  1. กำหนดการตั้งค่าส่วนกลางสำหรับโปรเจ็กต์ Actions ใน sdk/settings/settings.yaml ดูเอกสารอ้างอิงการตั้งค่าสำหรับค่าที่รองรับ

    ตัวอย่างต่อไปนี้แสดงตัวอย่างไฟล์ sdk/settings/settings.yaml

    accountLinking:
      enableAccountCreation: true
      linkingType: GOOGLE_SIGN_IN
    category: GAMES_AND_TRIVIA
    projectId: my-project-id
    ...
    

  2. กำหนดการตั้งค่าที่อาจแตกต่างกันไปตามสถานที่ของผู้ใช้ (เช่น วลีสำหรับเรียกใช้ในภาษาอื่น) ในไฟล์ sdk/settings/<locale>/settings.yaml โดยแทนที่ locale ด้วยภาษาเป้าหมายของคุณ

    ดูเอกสารอ้างอิง LocalizedSettings สำหรับค่าที่รองรับ

    ข้อมูลโค้ดต่อไปนี้เป็นตัวอย่างการตั้งค่าภาษาอังกฤษที่กำหนดไว้ในไฟล์ sdk/settings/en/settings.yaml

    localizedSettings:
      developerEmail: developer@developers.com
      developerName: Developer Name
      displayName: My Display Name
      fullDescription: full description of the action
      largeBannerImage: https://path/to/large/banner
      privacyPolicyUrl: http://path/to/privacy/policy
      sampleInvocations:
      - Talk to My Display Name
      shortDescription: short description of the action
      smallLogoImage: https://path/to/small/logo
      voice: female_1
    ...
    

เพิ่มทรัพยากร

คุณสามารถจัดเก็บทรัพยากร เช่น ไฟล์ภาพ ไฟล์เสียง และสตริงในโปรเจ็กต์การดำเนินการ และอ้างอิงทรัพยากรเหล่านั้นจากไฟล์การกำหนดค่า (เช่น การกำหนดพรอมต์หรือเงื่อนไข) ได้โดยใช้ตัวแปร $resources ที่ระบบกำหนด

ระบบจะจัดเก็บทรัพยากรของโปรเจ็กต์ไว้ใน resources/ และจะมีการกำหนดโฟลเดอร์ทรัพยากรแต่ละประเภทไว้ในไดเรกทอรี

คุณแปลทรัพยากรได้โดยสร้างโฟลเดอร์เฉพาะภาษาในโฟลเดอร์ประเภททรัพยากร เช่น จัดเก็บสตริงเวอร์ชันภาษาสเปนใน resources/strings/es/<filename>.yaml

รูปภาพ

ไฟล์ภาพจะเก็บอยู่ใน resources/images/ และคุณสามารถอ้างอิงโดยใช้ $resources.images.<name of the image file without file extension> ได้ นามสกุลไฟล์ที่อนุญาตมีดังนี้

  • gif
  • png
  • jpg
  • jpeg

เช่น หากบันทึกโลโก้ขนาดเล็กเวอร์ชันภาษาอังกฤษไว้ใน resources/images/en/square.png และแบนเนอร์ขนาดใหญ่เวอร์ชันภาษาอังกฤษบันทึกไว้ใน resources/images/en/landscape.jpg ตามลำดับ sdk/settings/en/settings.yaml จากตัวอย่างก่อนหน้านี้จะกลายเป็นดังนี้

localizedSettings:
  developerEmail: developer@developers.com
  developerName: Developer Name
  displayName: My Display Name
  fullDescription: full description of the action

  largeBannerImage: $resources.images.landscape
  privacyPolicyUrl: http://path/to/privacy/policy
  sampleInvocations:
  - Talk to My Display Name
  shortDescription: short description of the action

  smallLogoImage: $resources.images.square
  voice: female_1
...

ไฟล์เสียง

ไฟล์เสียงจะเก็บอยู่ใน resources/audio/ และคุณสามารถอ้างอิงโดยใช้ $resources.audio.<name of the audio file without file extension> ได้

นามสกุลไฟล์ที่อนุญาตมีดังนี้

  • mp3
  • mpeg

เช่น คุณอ้างอิงเสียงที่บันทึกไว้จากพรอมต์ได้

candidates:
  - first_simple:
      variants:
        - speech: your speech response
    content:
      media:
        mediaType: audio
        mediaObjects:
          - name: media name
            description: media description
            url: $resources.audio.intro

สตริง

เก็บสตริงไว้ใน resources/strings/ เป็นไฟล์ .yaml แต่ละไฟล์จะมีแมปคีย์สตริงและค่าที่เกี่ยวข้อง ซึ่งอาจเป็นสตริงเดี่ยวหรือรายการสตริงก็ได้ คุณสามารถอ้างอิงค่าโดยใช้ $resources.strings.<name of the image file without file extension>.<key> สำหรับค่าสตริงเดียวหรือรับค่าแบบสุ่มจากรายการ และ $resources.strings.<name of the image file without file extension>.<key>.<numerical index> สำหรับค่าสตริงที่เฉพาะเจาะจงภายในรายการ

ตัวอย่างเช่น การใช้สตริงทรัพยากรสำหรับการแปลสตริง sdk/settings/en/settings.yaml จากตัวอย่างก่อนหน้านี้อาจเป็นดังนี้

localizedSettings:
  developerEmail: developer@developers.com
  developerName: $resources.strings.appinfo.developerName
  displayName: $resources.strings.appinfo.displayName
  fullDescription: $resources.strings.appinfo.fullDescription
  largeBannerImage: $resources.images.landscape
  privacyPolicyUrl: $resources.strings.appinfo.privacyPolicyUrl
  sampleInvocations:
  - $resources.strings.invocations.sample
  shortDescription: $resources.strings.appinfo.shortDescription
  smallLogoImage: $resources.images.square
  voice: female_1
...

ทดสอบโปรเจ็กต์ในเครื่องมือจำลอง

คอนโซล Actions มีเครื่องมือจำลองเพื่อแสดงตัวอย่างการดำเนินการของคุณ เครื่องจำลองช่วยให้คุณดูข้อมูลการแก้ไขข้อบกพร่อง ตั้งค่าความสามารถของอุปกรณ์ จำลองภาษา และอื่นๆ

รูปที่ 3 ส่วนหลักของเครื่องจำลอง ได้แก่ (1) ข้อมูลจากผู้ใช้ (2) มุมมองอุปกรณ์ (3) ตัวเลือกและการตั้งค่า และ (4) บันทึกการสนทนา

วิธีทดสอบโปรเจ็กต์

  1. เรียกใช้ gactions deploy preview เพื่อทำให้การดำเนินการของคุณ "แสดงตัวอย่าง" ใช้งานได้และเปิดใช้การทดสอบในเครื่องจำลอง
  2. เปิด URL ในเอาต์พุตคำสั่งเพื่อเข้าถึงเครื่องจำลอง
$ gactions deploy preview
Deploying your project files to your Actions console preview for a project id: "my-project". This may take a few minutes.
Sending configuration files
Waiting for server to respond.
✔ Done. You can now navigate to the Actions Console simulator to test your changes: http://console.actions.google.com/project/my-project/simulator?disableAutoPreview