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

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

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

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

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

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

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

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

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

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

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

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

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

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

สร้างโปรเจ็กต์ 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