EventHandler

กำหนดเครื่องจัดการที่จะดำเนินการหลังจากเหตุการณ์ ตัวอย่างเหตุการณ์คือเหตุการณ์ที่อิงตามเงื่อนไขและความตั้งใจในฉาก

การแทน YAML
webhookHandler: string

# Union field prompt can be only one of the following:
staticPrompt: 
  object (StaticPrompt)
staticPromptName: string
# End of list of possible types for union field prompt.
ช่อง
webhookHandler

string

ชื่อเครื่องจัดการเว็บฮุคที่จะเรียกใช้

ฟิลด์การรวม prompt คุณสามารถแทรกหรืออ้างอิงพรอมต์ด้วยชื่อก็ได้ prompt ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
staticPrompt

object (StaticPrompt)

ข้อความแจ้งแบบคงที่ในบรรทัด อาจมีการอ้างอิงไปยังทรัพยากรสตริงในกลุ่ม

staticPromptName

string

ชื่อของข้อความแจ้งแบบคงที่ที่จะเรียกใช้

StaticPrompt

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

การแทน YAML
candidates: 
  - object (StaticPromptCandidate)
ช่อง
candidates[]

object (StaticPromptCandidate)

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

StaticPromptCandidate

แสดงตัวเลือกข้อความแจ้งแบบคงที่

การแทน YAML
selector: 
  object (Selector)
promptResponse: 
  object (StaticPromptResponse)
ช่อง
selector

object (Selector)

ไม่บังคับ เกณฑ์ที่ระบุว่าข้อความแจ้งนี้ตรงกับคำขอหรือไม่ หากตัวเลือกว่างเปล่า ระบบจะทริกเกอร์ข้อความแจ้งนี้เสมอ

promptResponse

object (StaticPromptResponse)

การตอบกลับพรอมต์ที่เชื่อมโยงกับตัวเลือก

ตัวเลือก

กำหนดเกณฑ์ว่าข้อความแจ้งจะตรงกับคำขอหรือไม่

การแทน YAML
surfaceCapabilities: 
  object (SurfaceCapabilities)
ช่อง
surfaceCapabilities

object (SurfaceCapabilities)

ชุดความสามารถของพื้นผิวที่ต้องการ

SurfaceCapabilities

แสดงแพลตฟอร์มที่ผู้ใช้ใช้ในการส่งคำขอไปยังการดำเนินการ

การแทน YAML
capabilities: 
  - enum (Capability)
ช่อง
capabilities[]

enum (Capability)

ต้องระบุ ความสามารถของแพลตฟอร์มที่ส่งคำขอไปยังการดำเนินการ

StaticPromptResponse

หมายถึงการตอบกลับที่มีโครงสร้างเพื่อส่งให้ผู้ใช้ เช่น ข้อความ, คำพูด, การ์ด, ข้อมูลใน Canvas, ชิปคำแนะนำ เป็นต้น

การแทน YAML
firstSimple: 
  object (StaticSimplePrompt)
content: 
  object (StaticContentPrompt)
lastSimple: 
  object (StaticSimplePrompt)
suggestions: 
  - object (Suggestion)
link: 
  object (StaticLinkPrompt)
override: boolean
canvas: 
  object (StaticCanvasPrompt)
ช่อง
firstSimple

object (StaticSimplePrompt)

ไม่บังคับ คำตอบแรกที่เป็นเสียงและข้อความเท่านั้น

content

object (StaticContentPrompt)

ไม่บังคับ เนื้อหา เช่น การ์ด รายการ หรือสื่อที่จะแสดงให้ผู้ใช้เห็น

lastSimple

object (StaticSimplePrompt)

ไม่บังคับ คำตอบสุดท้ายด้วยเสียงและข้อความเท่านั้น

suggestions[]

object (Suggestion)

ไม่บังคับ คำแนะนำที่จะแสดงแก่ผู้ใช้ ซึ่งจะปรากฏที่ตอนท้ายของคำตอบเสมอ หากช่อง append ในพรอมต์ที่มีคือ true ระบบจะเพิ่มชื่อที่กำหนดในช่องนี้ไปยังชื่อที่กำหนดไว้ในพรอมต์คำแนะนำที่กำหนดไว้ก่อนหน้าและระบบจะนำค่าที่ซ้ำออก

override

boolean

ไม่บังคับ โหมดสำหรับวิธีการรวมข้อความนี้กับข้อความที่กำหนดไว้ก่อนหน้า true จะล้างข้อความที่กำหนดไว้ก่อนหน้าทั้งหมด (ข้อความแรกและที่เรียบง่ายสุดท้าย เนื้อหา ลิงก์คำแนะนำ และ Canvas) แล้วเพิ่มข้อความที่กำหนดไว้ในพรอมต์นี้ false จะเพิ่มข้อความที่กำหนดไว้ในข้อความแจ้งนี้ลงในข้อความที่กำหนดไว้ในคำตอบก่อนหน้า การตั้งค่าช่องนี้เป็น false จะเปิดใช้การต่อท้ายบางช่องใน "พรอมต์อย่างง่าย", ข้อความแจ้งคำแนะนำ และข้อความแจ้งของ Canvas (ส่วนหนึ่งของพรอมต์เนื้อหา) ด้วย ข้อความเนื้อหาและลิงก์จะถูกเขียนทับเสมอหากกำหนดไว้ในพรอมต์ ค่าเริ่มต้นคือ false

canvas

object (StaticCanvasPrompt)

คำตอบที่จะใช้สำหรับประสบการณ์การใช้งาน Canvas แบบอินเทอร์แอกทีฟ

StaticSimplePrompt

หมายถึงข้อความแจ้งง่ายๆ ที่จะส่งไปยังผู้ใช้

การแทน YAML
variants: 
  - object (Variant)
ช่อง
variants[]

object (Variant)

รายการตัวแปรที่เป็นไปได้

รูปแบบ

แสดงตัวแปรที่เป็นส่วนหนึ่งของพรอมต์แบบง่าย

การแทน YAML
speech: string
text: string
ช่อง
speech

string

ไม่บังคับ แสดงคำพูดที่จะพูดกับผู้ใช้ โดยอาจเป็น SSML หรือการอ่านออกเสียงข้อความ โดยค่าเริ่มต้น คำพูดจะต่อท้ายคำพูดของข้อความแจ้งแบบง่ายก่อนหน้า หากช่อง override ในพรอมต์ที่มีคือ true คำพูดที่กำหนดในช่องนี้จะลบล้างเสียงพูดของข้อความแจ้งแบบง่ายก่อนหน้า

text

string

ไม่บังคับ ข้อความที่จะแสดงในลูกโป่งแชท ไม่เช่นนั้นจะใช้การแสดงผลของช่องคำพูดด้านบน จำกัดอักขระไม่เกิน 640 ตัว โดยค่าเริ่มต้น ระบบจะใส่ข้อความต่อท้ายข้อความในข้อความแจ้งแบบง่ายก่อนหน้า หากช่อง override ในพรอมต์ที่มีคือ true ข้อความที่กำหนดในช่องนี้จะลบล้างข้อความในข้อความแจ้งแบบง่ายก่อนหน้า

StaticContentPrompt

ตัวยึดตำแหน่งสำหรับส่วนเนื้อหาของ StaticPrompt

การแทน YAML
# Union field content can be only one of the following:
card: 
  object (StaticCardPrompt)
image: 
  object (StaticImagePrompt)
table: 
  object (StaticTablePrompt)
media: 
  object (StaticMediaPrompt)
list: 
  object (StaticListPrompt)
collection: 
  object (StaticCollectionPrompt)
collectionBrowse: 
  object (StaticCollectionBrowsePrompt)
# End of list of possible types for union field content.
ช่อง
ฟิลด์การรวม content แสดงเนื้อหาได้ในพรอมต์ได้เพียงประเภทเดียวเท่านั้น content ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
card

object (StaticCardPrompt)

บัตรพื้นฐาน

image

object (StaticImagePrompt)

รูปภาพ

table

object (StaticTablePrompt)

การ์ดตาราง

media

object (StaticMediaPrompt)

คำตอบที่ระบุชุดสื่อที่จะเล่น

list

object (StaticListPrompt)

การ์ดสำหรับนำเสนอรายการตัวเลือกที่มี

collection

object (StaticCollectionPrompt)

การ์ดที่แสดงรายการตัวเลือก

collectionBrowse

object (StaticCollectionBrowsePrompt)

การ์ดที่แสดงคอลเล็กชันหน้าเว็บเพื่อเปิด

StaticCardPrompt

การ์ดพื้นฐานสำหรับการแสดงข้อมูลบางอย่าง เช่น รูปภาพและ/หรือข้อความ

การแทน YAML
title: string
subtitle: string
text: string
image: 
  object (StaticImagePrompt)
imageFill: enum (ImageFill)
button: 
  object (StaticLinkPrompt)
ช่อง
title

string

ไม่บังคับ ชื่อโดยรวมของการ์ด

subtitle

string

ไม่บังคับ คำบรรยายของการ์ด

text

string

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

image

object (StaticImagePrompt)

ไม่บังคับ รูปภาพหลักของการ์ด ความสูงกำหนดตายตัวที่ 192dp

imageFill

enum (ImageFill)

ไม่บังคับ วิธีการเติมสีพื้นหลังรูปภาพ

button

object (StaticLinkPrompt)

ไม่บังคับ ปุ่มที่คลิกได้ที่จะแสดงในการ์ด

StaticImagePrompt

รูปภาพที่แสดงในการ์ด

การแทน YAML
url: string
alt: string
height: integer
width: integer
ช่อง
url

string

ต้องระบุ URL แหล่งที่มาของรูปภาพ รูปภาพต้องเป็น JPG, PNG และ GIF (เคลื่อนไหวและไม่เคลื่อนไหว) เช่น https://www.agentx.com/logo.png

alt

string

ต้องระบุ ข้อความอธิบายรูปภาพที่จะใช้สำหรับการช่วยเหลือพิเศษ เช่น โปรแกรมอ่านหน้าจอ

height

integer

ไม่บังคับ ความสูงของรูปภาพเป็นพิกเซล

width

integer

ไม่บังคับ ความกว้างของรูปภาพเป็นพิกเซล

StaticLinkPrompt

กำหนดลิงก์ที่จะแสดงเป็นชิปคำแนะนำและผู้ใช้สามารถเปิดได้

การแทน YAML
name: string
open: 
  object (OpenUrl)
ช่อง
name

string

ชื่อของลิงก์

open

object (OpenUrl)

กำหนดพฤติกรรมเมื่อผู้ใช้เปิดลิงก์

OpenUrl

กำหนดพฤติกรรมเมื่อผู้ใช้เปิดลิงก์

การแทน YAML
url: string
hint: enum (UrlHint)
ช่อง
url

string

ฟิลด์ URL ซึ่งอาจเป็นรายการใดรายการหนึ่งต่อไปนี้: - http/https urls สำหรับการเปิดแอปหรือหน้าเว็บที่ลิงก์ไปยังแอป

hint

enum (UrlHint)

ระบุคำแนะนำสำหรับประเภท URL

StaticTablePrompt

การ์ดตารางสำหรับแสดงตารางข้อความ

การแทน YAML
title: string
subtitle: string
image: 
  object (StaticImagePrompt)
columns: 
  - object (TableColumn)
rows: 
  - object (TableRow)
button: 
  object (StaticLinkPrompt)
ช่อง
title

string

ไม่บังคับ ชื่อโดยรวมของตาราง ต้องตั้งค่าหากมีการตั้งค่าคำบรรยาย

subtitle

string

ไม่บังคับ ชื่อรองของตาราง

image

object (StaticImagePrompt)

ไม่บังคับ รูปภาพที่เชื่อมโยงกับตาราง

columns[]

object (TableColumn)

ไม่บังคับ ส่วนหัวและการจัดคอลัมน์

rows[]

object (TableRow)

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

button

object (StaticLinkPrompt)

ไม่บังคับ ปุ่ม

TableColumn

อธิบายคอลัมน์ในตาราง

การแทน YAML
header: string
align: enum (HorizontalAlignment)
ช่อง
header

string

ข้อความส่วนหัวของคอลัมน์

align

enum (HorizontalAlignment)

การจัดข้อความแนวนอนของคอลัมน์เนื้อหา หากไม่ระบุ เนื้อหาจะอยู่ในแนวเดียวกับขอบที่ด้านหน้า

TableRow

อธิบายแถวในตาราง

การแทน YAML
cells: 
  - object (TableCell)
divider: boolean
ช่อง
cells[]

object (TableCell)

เซลล์ในแถวนี้ ระบบรับประกันว่าเซลล์ 3 เซลล์แรกจะแสดง แต่เซลล์อื่นอาจถูกตัดในบางพื้นผิว โปรดทดสอบด้วยเครื่องมือจำลองเพื่อดูว่าเซลล์ใดจะแสดงสำหรับพื้นผิวที่ระบุ

divider

boolean

ระบุว่าควรมีตัวแบ่งหลังแต่ละแถวหรือไม่

TableCell

อธิบายเซลล์ในแถว

การแทน YAML
text: string
ช่อง
text

string

เนื้อหาข้อความของเซลล์

StaticMediaPrompt

มีข้อมูลเกี่ยวกับสื่อ เช่น ชื่อ, คำอธิบาย, URL ฯลฯ รหัสถัดไป: 11

การแทน YAML
mediaType: enum (MediaType)
startOffset: string
optionalMediaControls: 
  - enum (OptionalMediaControls)
mediaObjects: 
  - object (MediaObject)
repeatMode: enum (RepeatMode)
ช่อง
mediaType

enum (MediaType)

ประเภทสื่อของคําตอบนี้

startOffset

string (Duration format)

ออฟเซ็ตเริ่มต้นของออบเจ็กต์สื่อแรก

ระยะเวลาเป็นวินาทีโดยมีตัวเลขเศษส่วนไม่เกิน 9 หลัก ลงท้ายด้วย "s" เช่น "3.5s"

optionalMediaControls[]

enum (OptionalMediaControls)

ประเภทตัวควบคุมสื่อที่ไม่บังคับซึ่งเซสชันการตอบสนองของสื่อนี้รองรับได้ หากตั้งค่าไว้ ระบบจะส่งคำขอไปที่ 3p เมื่อเกิดเหตุการณ์สื่อบางอย่างขึ้น หากไม่ได้ตั้งค่าไว้ 3p ยังต้องจัดการประเภทการควบคุมเริ่มต้น 2 ประเภท ได้แก่ FINISHED และ FAILED

mediaObjects[]

object (MediaObject)

รายการออบเจ็กต์สื่อ

repeatMode

enum (RepeatMode)

โหมดเล่นซ้ำสำหรับรายการออบเจ็กต์สื่อ

MediaObject

แสดงออบเจ็กต์สื่อเดี่ยว

การแทน YAML
name: string
description: string
url: string
image: 
  object (MediaImage)
ช่อง
name

string

ชื่อของออบเจ็กต์สื่อนี้

description

string

คำอธิบายของออบเจ็กต์สื่อนี้

url

string

URL ที่ชี้ไปยังเนื้อหาสื่อ

image

object (MediaImage)

รูปภาพที่จะแสดงกับการ์ดสื่อ

MediaImage

รูปภาพที่จะแสดงใน MediaPrompt

การแทน YAML
# Union field image can be only one of the following:
large: 
  object (StaticImagePrompt)
icon: 
  object (StaticImagePrompt)
# End of list of possible types for union field image.
ช่อง
ฟิลด์การรวม image อนุญาตให้ใช้ MediaImage ได้เพียงประเภทเดียวเท่านั้น image ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
large

object (StaticImagePrompt)

ภาพขนาดใหญ่ เช่น ปกอัลบั้ม ฯลฯ

icon

object (StaticImagePrompt)

ไอคอนรูปภาพขนาดเล็กที่แสดงทางด้านขวาจากชื่อ มีขนาด 36x36 dp

StaticListPrompt

การ์ดสำหรับนำเสนอรายการตัวเลือกที่มี

การแทน YAML
title: string
subtitle: string
items: 
  - object (ListItem)
ช่อง
title

string

ไม่บังคับ ชื่อของรายการ

subtitle

string

ไม่บังคับ คำบรรยายของรายการ

items[]

object (ListItem)

ต้องระบุ รายการ

ListItem

รายการในรายการ

การแทน YAML
key: string
title: string
description: string
image: 
  object (StaticImagePrompt)
ช่อง
key

string

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

title

string

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

description

string

ไม่บังคับ ข้อความส่วนเนื้อหาของสินค้า

image

object (StaticImagePrompt)

ไม่บังคับ รูปภาพสินค้า

StaticCollectionPrompt

การ์ดสำหรับนำเสนอคอลเล็กชันตัวเลือกที่มีให้เลือก

การแทน YAML
title: string
subtitle: string
items: 
  - object (CollectionItem)
imageFill: enum (ImageFill)
ช่อง
title

string

ไม่บังคับ ชื่อคอลเล็กชัน

subtitle

string

ไม่บังคับ ชื่อรองของคอลเล็กชัน

items[]

object (CollectionItem)

ต้องระบุ รายการคอลเล็กชัน

imageFill

enum (ImageFill)

ไม่บังคับ ประเภทตัวเลือกการแสดงรูปภาพ

CollectionItem

รายการในคอลเล็กชัน

การแทน YAML
key: string
title: string
description: string
image: 
  object (StaticImagePrompt)
ช่อง
key

string

ต้องระบุ คีย์ NLU ที่ตรงกับชื่อคีย์เข้าถึงใน Type ที่เกี่ยวข้อง เมื่อแตะรายการแล้ว คีย์นี้จะถูกโพสต์กลับไปเป็นพารามิเตอร์ตัวเลือกตัวเลือก

title

string

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

description

string

ไม่บังคับ ข้อความส่วนเนื้อหาของสินค้า

image

object (StaticImagePrompt)

ไม่บังคับ รูปภาพสินค้า

StaticCollectionBrowsePrompt

นำเสนอชุดเอกสารในเว็บเป็นคอลเล็กชันของรายการขนาดใหญ่ รายการอาจได้รับเลือกให้เปิดเอกสารบนเว็บที่เกี่ยวข้องในโปรแกรมดูเว็บ

การแทน YAML
items: 
  - object (CollectionBrowseItem)
imageFill: enum (ImageFill)
ช่อง
items[]

object (CollectionBrowseItem)

รายการในคอลเล็กชันการเรียกดู ขนาดรายการควรอยู่ในช่วง [2, 10]

imageFill

enum (ImageFill)

ตัวเลือกการแสดงรูปภาพสำหรับรูปภาพในคอลเล็กชัน

CollectionBrowseItem

รายการในคอลเล็กชัน

การแทน YAML
title: string
description: string
footer: string
image: 
  object (StaticImagePrompt)
openUriAction: 
  object (OpenUrl)
ช่อง
title

string

ต้องระบุ ชื่อของรายการคอลเล็กชัน

description

string

คำอธิบายของรายการคอลเล็กชัน

footer

string

ข้อความส่วนท้ายสำหรับรายการคอลเล็กชันที่แสดงด้านล่างรายละเอียด ข้อความบรรทัดเดียวที่ตัดด้วยจุดไข่ปลา

image

object (StaticImagePrompt)

รูปภาพสำหรับรายการคอลเล็กชัน

openUriAction

object (OpenUrl)

ต้องระบุ URI ที่จะเปิดหากรายการที่เลือก

คำแนะนำ

แสดงชิปคำแนะนำ ซึ่งเป็นองค์ประกอบ UI ที่แสดงต่อผู้ใช้เพื่อความสะดวก

การแทน YAML
title: string
ช่อง
title

string

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

StaticCanvasPrompt

แสดงการตอบกลับ Canvas แบบอินเทอร์แอกทีฟที่จะส่งถึงผู้ใช้ ซึ่งสามารถใช้ร่วมกับช่อง firstSimple ในพรอมต์ที่มีเพื่อสื่อสารกับผู้ใช้นอกเหนือจากการแสดงคำตอบ Canvas แบบอินเทอร์แอกทีฟ

การแทน YAML
url: string
data: 
  - value
suppressMic: boolean
sendStateDataToCanvasApp: boolean
enableFullScreen: boolean
continueTtsDuringTouch: boolean
ช่อง
url

string

ต้องระบุ URL ของมุมมองเว็บที่จะโหลด

data[]

value (Value format)

ไม่บังคับ ข้อมูล JSON ที่จะส่งไปยังหน้าเว็บประสบการณ์ที่สมจริงในรูปแบบเหตุการณ์ หากช่อง override ในพรอมต์ที่มีคือค่าข้อมูล false ที่กำหนดไว้ในพรอมต์ของ Canvas นี้จะเพิ่มเข้ามาหลังค่าข้อมูลที่กำหนดไว้ในข้อความแจ้งของ Canvas ก่อนหน้านี้

suppressMic

boolean

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

sendStateDataToCanvasApp

boolean

ไม่บังคับ หากตั้งค่าเป็น true ระบบจะรวมข้อมูลเมตาที่เกี่ยวข้องกับการสนทนาและกลับไปยังแอปพลิเคชัน Canvas

enableFullScreen

boolean

ไม่บังคับ หาก true แอปพลิเคชัน Canvas จะใช้พื้นที่เต็มหน้าจอและไม่มีส่วนหัวที่ด้านบน ข้อความโทสต์จะแสดงในหน้าจอการโหลดที่มีชื่อที่แสดงของการดำเนินการ ชื่อนักพัฒนาซอฟต์แวร์ และวิธีการออกจากการดำเนินการด้วย ค่าเริ่มต้นคือ false

continueTtsDuringTouch

boolean

ไม่บังคับ หากเป็น "จริง" การแตะหน้าจอจะไม่หยุด TTS ตลอดเซสชัน Canvas ทั้งหมด ค่าเริ่มต้นคือ false