ข้อความแจ้งจะกำหนดวิธีที่การดำเนินการของคุณแสดงผลการตอบสนองไปยังผู้ใช้และวิธีที่การดำเนินการของคุณแจ้งให้ผู้ใช้ดำเนินการต่อ ขณะสร้างการดำเนินการ คุณสามารถเพิ่มพรอมต์ในการเรียกใช้และไปยังตำแหน่งต่างๆ ภายในฉากได้ ข้อความแจ้งอาจเป็นข้อความหรือการตอบสนองด้วยเสียงที่เรียบง่าย หรืออาจมีความซับซ้อนกว่าและมีเนื้อหาที่สมบูรณ์ เช่น การ์ด รูปภาพ และตาราง
ประเภทการตอบกลับ
สำหรับแต่ละพรอมต์ คุณจะเลือกได้จากประเภทคำตอบที่น่าสนใจหลากหลายแบบเพื่อให้ Assistant นำเสนอต่อผู้ใช้ ดังนี้
- คำตอบง่ายๆ: คำตอบง่ายๆ จะอยู่ในรูปแบบของลูกโป่งแชทที่มองเห็นได้ และจะใช้การอ่านออกเสียงข้อความ (TTS) หรือ Speech Synthesis Markup Language (SSML) เพื่อเสียง คำตอบง่ายๆ เป็นคำตอบเดียวที่อุปกรณ์ทุกประเภทรองรับ
- การตอบสนองที่สมบูรณ์: การตอบสนองที่สมบูรณ์มีองค์ประกอบทางภาพหรือที่ใช้งานได้ที่ช่วยเพิ่มประสิทธิภาพให้การโต้ตอบของผู้ใช้กับการดำเนินการของคุณ การตอบกลับที่สมบูรณ์ยัง ให้คุณแสดงข้อมูลแบบตารางหรือเล่นเนื้อหาเสียงที่ยาวขึ้นได้ด้วย
- คำตอบในการเลือกภาพ: การตอบกลับจากการเลือกภาพจะมีอินเทอร์เฟซแบบภาพให้ผู้ใช้เลือกระหว่างตัวเลือกต่างๆ ที่แยกความแตกต่างจากชื่อหรือรูปภาพได้ง่ายที่สุด
- การตอบกลับจากสื่อ: การตอบกลับสื่อให้การดำเนินการของคุณเล่นเนื้อหาเสียงในรูปแบบที่ยาวกว่า SSML และเป็นคอมโพเนนต์ภาพที่มีการควบคุมสื่อ
- Interactive Canvas: Interactive Canvas จะแสดงผลคำตอบเป็นมุมมองเว็บแบบเต็มหน้าจอและฟังก์ชันเป็นเว็บแอปแบบอินเทอร์แอกทีฟที่ Assistant ส่งเป็นคำตอบให้กับผู้ใช้ในการสนทนา Canvas ใช้รูปแบบข้อความแจ้งที่ต่างกันเล็กน้อยเพื่อรองรับความยืดหยุ่นที่เพิ่มขึ้นจากมาตรฐานเว็บอย่าง HTML, CSS และ JavaScript
คำตอบแต่ละประเภทจะใช้รูปแบบพรอมต์พื้นฐานแบบเดียวกันและมีสิทธิ์เข้าถึงฟีเจอร์ทั่วไปที่เหมือนกันซึ่งอธิบายไว้ด้านล่าง
รูปแบบของพรอมต์
ในโปรเจ็กต์การดำเนินการ คุณจะกำหนดพรอมต์ในรูปแบบ YAML หรือ JSON ข้อความแจ้งแต่ละรายการมีคำตอบง่ายๆ ได้สูงสุด 2 แบบ และเลือกกำหนดการตอบกลับที่สมบูรณ์ได้ คําตอบมีคำจำกัดความดังนี้
first_simple
: ข้อความเริ่มต้นหรือคำตอบแบบเสียงพูด (ธรรมดา) เพื่อส่งให้ผู้ใช้content
: เนื้อหาการตอบกลับที่สมบูรณ์เสริมสำหรับส่งหลังจากคำตอบง่ายๆlast_simple
ข้อความสุดท้ายหรือคำพูดตอบ (ธรรมดา) เพื่อส่งให้ผู้ใช้canvas
: อ้างอิงเว็บแอปที่ผสานรวมกับ Canvas แบบอินเทอร์แอกทีฟ
โดยค่าเริ่มต้น ข้อความแจ้งจะต่อท้ายอยู่ด้วยกันตามลำดับในคิวของพรอมต์ ก่อนที่ผู้ใช้จะโต้ตอบได้ Assistant จะแสดงข้อความแจ้งทั้งหมดแก่ผู้ใช้ในคิวของข้อความแจ้ง
นอกจากนี้คุณยังมอบความยืดหยุ่นให้กับข้อความแจ้งโดยใช้ฟีเจอร์ต่อไปนี้ได้ด้วย
- ผู้ที่ได้รับเลือก: ผู้ที่ได้รับเลือกช่วยให้คุณกำหนดคำตอบตามความสามารถของอุปกรณ์ของผู้ใช้ เช่น คุณสามารถให้ Assistant แสดงการตอบกลับที่สมบูรณ์ก็ต่อเมื่อผู้ใช้โต้ตอบกับการดำเนินการของคุณในอุปกรณ์ที่รองรับการแสดงผลได้
- รูปแบบ: รูปแบบคือรูปแบบทางเลือกของข้อความเดียว ตัวอย่างเช่น คุณให้ Assistant เลือกรูปแบบต่างๆ ของข้อความต้อนรับได้ 5 แบบทุกครั้งที่ผู้ใช้เรียกใช้การดำเนินการของคุณ
- คำแนะนำ: เมื่อ Assistant แสดงข้อความแจ้ง ระบบจะแสดงชิปคำแนะนำแก่ผู้ใช้บนอุปกรณ์ที่รองรับจอแสดงผล
พรอมต์เริ่มต้นจะใช้ตัวเลือก 1 รายการ ตัวแปร 1 รายการ และคำตอบแบบ first_simple
ผู้สมัคร
ในพรอมต์ ออบเจ็กต์ candidates
ให้คุณกำหนดคำตอบตามความสามารถของอุปกรณ์ของผู้ใช้ เช่น คุณสามารถให้ Assistant แสดงการตอบกลับที่สมบูรณ์ก็ต่อเมื่อผู้ใช้โต้ตอบกับการดำเนินการของคุณในอุปกรณ์ที่รองรับการแสดงผลได้ หากต้องการกำหนดประเภทอุปกรณ์ที่ Assistant สามารถส่งคืนตัวเลือก ให้ใช้พร็อพเพอร์ตี้ selector
ของออบเจ็กต์ candidates
ในตัวอย่างด้านล่าง พร็อพเพอร์ตี้ selector
มีข้อมูลความสามารถของอุปกรณ์ ข้อความแจ้งที่ตั้งค่าไว้ในตัวเลือกแรกจะส่งไปยังผู้ใช้ในอุปกรณ์ที่แสดงการตอบกลับแบบริชมีเดียได้ โปรแกรมที่ 2 จะมีข้อความแจ้ง
สำหรับผู้ใช้ที่รับได้เฉพาะข้อความและเสียงพูด
YAML
candidates: - selector: surface_capabilities: capabilities: - RICH_RESPONSE first_simple: variants: - speech: Here's a simple message. content: card: title: Image card title text: Some details about the image image: url: 'https://www.example.com/image/' - first_simple: variants: - speech: Text explains what the image might have shown in more detail.
JSON
{ "candidates": [{ "selector": { "surface_capabilities": { "capabilities": ["RICH_RESPONSE"] } }, "first_simple": { "variants": [{ "speech": "Here's a simple message." }] }, "content": { "card": { "title": "Image card title", "text": "Some details about the image", "image": { "url": "https://www.example.com/image/" } } } }, { "first_simple": { "variants": [{ "speech": "Text explains what the image might have shown in more detail." }] } }] }
คุณสามารถระบุข้อกำหนดด้านความสามารถได้อย่างน้อย 1 รายการสำหรับผู้สมัครที่ระบุ รายการต่อไปนี้อธิบายข้อกำหนดด้านความสามารถต่างๆ ที่มี
SPEECH
: อุปกรณ์พูดคุยกับผู้ใช้ผ่านการอ่านออกเสียงข้อความหรือ SSML ได้RICH_RESPONSE
: อุปกรณ์แสดงคำตอบแบบสมบูรณ์ได้ เช่น การ์ด รายการ และตารางLONG_FORM_AUDIO
: อุปกรณ์เล่นสื่อเสียงแบบยาวได้ เช่น เพลงและพอดแคสต์INTERACTIVE_CANVAS
: อุปกรณ์แสดงการตอบกลับ Canvas แบบอินเทอร์แอกทีฟได้WEB_LINK
: อุปกรณ์ใช้เว็บลิงก์ในคำตอบที่สมบูรณ์เพื่อเปิดเว็บเบราว์เซอร์ได้HOME_STORAGE
: อุปกรณ์สามารถจัดเก็บและเข้าถึงข้อมูลจากพื้นที่เก็บข้อมูลในบ้านได้
ตัวแปร
ตัวแปรเป็นวิธีกำหนดคำตอบหลายเวอร์ชัน เมื่อ Assistant ส่งพรอมต์ให้ผู้ใช้ ระบบจะสุ่มเลือกตัวแปร 1 รายการ ตามแนวทางปฏิบัติแนะนำในการออกแบบการสนทนา ควรให้คำตอบอื่นแก่ผู้ใช้เมื่อสนทนากับการดำเนินการของคุณ
เช่น ระบุข้อความต้อนรับรูปแบบต่างๆ เพื่อให้ผู้ใช้ไม่ได้ยินคำตอบเดียวกันทุกครั้งที่เรียกใช้การดำเนินการของคุณ
YAML
candidates: - first_simple: variants: - speech: Hello. - speech: Hi there. - speech: Welcome.
JSON
{ "candidates": [{ "first_simple": { "variants": [{ "speech": "Hello." },{ "speech": "Hi there." },{ "speech": "Welcome." }] } }] }
คำแนะนำ
คำแนะนำจะแสดงชิปคำแนะนำแก่ผู้ใช้ในอุปกรณ์ที่พร้อมใช้งานจอแสดงผลเมื่อ Assistant แสดงข้อความแจ้ง ใช้ชิปคำแนะนำเพื่อชี้นำการตอบกลับของผู้ใช้เพื่อดำเนินการต่อหรือ Pivot การสนทนา เมื่อแตะ ชิปคำแนะนำจะแสดงข้อความที่แสดงตามการสนทนาแบบคำต่อคำ เหมือนกับว่าผู้ใช้ได้พิมพ์ข้อความนั้นลงไป
คุณมีคำแนะนำได้สูงสุด 8 รายการในข้อความแจ้งเดียว โดยแต่ละรายการมีอักขระข้อความธรรมดาได้สูงสุด 25 ตัว
หากต้องการเพิ่มคำแนะนำ ให้ระบุออบเจ็กต์ Suggestion
ที่มีคำแนะนำแต่ละรายการในช่อง title
แยกต่างหาก ชื่อแต่ละชื่อต้องไม่ซ้ำกัน
ในชุดชิปคำแนะนำ ใน Actions Builder ออบเจ็กต์นี้จะแสดงใน YAML และ JSON เป็น suggestions
เช่น คุณระบุคำแนะนำ "ใช่" และ "ไม่" ไว้ข้างคำถามได้
YAML
candidates: - first_simple: variants: - speech: 'Welcome, do you want to play a game?' suggestions: - title: 'Yes' - title: 'No'
JSON
{ "candidates": [{ "first_simple": { "variants": [{ "speech": "Welcome, do you want to play a game?" }] }, "suggestions": [{ "title": "Yes" }, { "title": "No" }] }] }