Live API เป็น API ที่มีสถานะซึ่งใช้ WebSockets ในส่วนนี้ คุณจะเห็นรายละเอียดเพิ่มเติมเกี่ยวกับ WebSockets API
เซสชัน
การเชื่อมต่อ WebSocket จะสร้างเซสชันระหว่างไคลเอ็นต์กับเซิร์ฟเวอร์ Gemini หลังจากไคลเอ็นต์เริ่มการเชื่อมต่อใหม่ เซสชันจะแลกเปลี่ยนข้อความกับเซิร์ฟเวอร์เพื่อดำเนินการต่อไปนี้ได้
- ส่งข้อความ เสียง หรือวิดีโอไปยังเซิร์ฟเวอร์ Gemini
- รับคําขอเสียง ข้อความ หรือการเรียกใช้ฟังก์ชันจากเซิร์ฟเวอร์ Gemini
การเชื่อมต่อ WebSocket
หากต้องการเริ่มเซสชัน ให้เชื่อมต่อกับปลายทาง WebSocket นี้
wss://generativelanguage.googleapis.com/ws/google.ai.generativelanguage.v1beta.GenerativeService.BidiGenerateContent
การกําหนดค่าเซสชัน
ข้อความเริ่มต้นหลังจากการเชื่อมต่อจะตั้งค่าการกําหนดค่าเซสชัน ซึ่งรวมถึงรูปแบบ พารามิเตอร์การสร้าง วิธีการของระบบ และเครื่องมือ
คุณสามารถเปลี่ยนพารามิเตอร์การกําหนดค่าได้ ยกเว้นรูปแบบในระหว่างเซสชัน
ดูตัวอย่างการกําหนดค่าต่อไปนี้ โปรดทราบว่ารูปแบบตัวพิมพ์ของชื่อใน SDK อาจแตกต่างกันไป คุณดูตัวเลือกการกำหนดค่า Python SDK ได้ที่นี่
{
"model": string,
"generationConfig": {
"candidateCount": integer,
"maxOutputTokens": integer,
"temperature": number,
"topP": number,
"topK": integer,
"presencePenalty": number,
"frequencyPenalty": number,
"responseModalities": [string],
"speechConfig": object,
"mediaResolution": object
},
"systemInstruction": string,
"tools": [object]
}
ดูข้อมูลเพิ่มเติมเกี่ยวกับช่อง API ได้ที่ generationConfig
ส่งข้อความ
หากต้องการแลกเปลี่ยนข้อความผ่านการเชื่อมต่อ WebSocket ไคลเอ็นต์ต้องส่งออบเจ็กต์ JSON ผ่านการเชื่อมต่อ WebSocket ที่เปิดอยู่ ออบเจ็กต์ JSON ต้องมีฟิลด์จากชุดออบเจ็กต์ต่อไปนี้เพียง 1 ฟิลด์
{
"setup": BidiGenerateContentSetup,
"clientContent": BidiGenerateContentClientContent,
"realtimeInput": BidiGenerateContentRealtimeInput,
"toolResponse": BidiGenerateContentToolResponse
}
ข้อความไคลเอ็นต์ที่รองรับ
ดูข้อความไคลเอ็นต์ที่รองรับในตารางต่อไปนี้
ข้อความ | คำอธิบาย |
---|---|
BidiGenerateContentSetup |
การกําหนดค่าเซสชันที่จะส่งในข้อความแรก |
BidiGenerateContentClientContent |
การอัปเดตเนื้อหาเพิ่มเติมของบทสนทนาปัจจุบันที่ส่งมาจากไคลเอ็นต์ |
BidiGenerateContentRealtimeInput |
การป้อนข้อมูลเสียง วิดีโอ หรือข้อความแบบเรียลไทม์ |
BidiGenerateContentToolResponse |
การตอบกลับ ToolCallMessage ที่ได้รับจากเซิร์ฟเวอร์ |
รับข้อความ
หากต้องการรับข้อความจาก Gemini ให้รอเหตุการณ์ "message" ของ WebSocket จากนั้นแยกวิเคราะห์ผลลัพธ์ตามคําจํากัดความของข้อความเซิร์ฟเวอร์ที่รองรับ
โปรดดูข้อมูลต่อไปนี้
async with client.aio.live.connect(model='...', config=config) as session:
await session.send(input='Hello world!', end_of_turn=True)
async for message in session.receive():
print(message)
ข้อความเซิร์ฟเวอร์อาจมีฟิลด์ usageMetadata
แต่จะมีฟิลด์อื่นๆ เพียง 1 ฟิลด์จากข้อความ BidiGenerateContentServerMessage
(messageType
union ไม่ได้แสดงเป็น JSON ดังนั้นช่องจะปรากฏที่ระดับบนสุดของข้อความ)
ข้อความและกิจกรรม
ActivityEnd
ประเภทนี้ไม่มีช่อง
ระบุจุดสิ้นสุดของกิจกรรมของผู้ใช้
ActivityHandling
วิธีต่างๆ ในการจัดการกิจกรรมของผู้ใช้
Enum | |
---|---|
ACTIVITY_HANDLING_UNSPECIFIED |
หากไม่ระบุ ลักษณะการทำงานเริ่มต้นจะเป็น START_OF_ACTIVITY_INTERRUPTS |
START_OF_ACTIVITY_INTERRUPTS |
หากเป็น "จริง" การเริ่มกิจกรรมจะขัดจังหวะการตอบสนองของโมเดล (หรือที่เรียกว่า "แทรกแซง") การตอบกลับปัจจุบันของโมเดลจะตัดออกทันทีที่เกิดการหยุดชะงัก นี่คือลักษณะการทำงานเริ่มต้น |
NO_INTERRUPTION |
การตอบกลับของโมเดลจะไม่ถูกขัดจังหวะ |
ActivityStart
ประเภทนี้ไม่มีช่อง
ระบุจุดเริ่มต้นของกิจกรรมของผู้ใช้
AudioTranscriptionConfig
ประเภทนี้ไม่มีช่อง
การกำหนดค่าการถอดเสียงเป็นคำ
AutomaticActivityDetection
กำหนดค่าการตรวจหากิจกรรมอัตโนมัติ
ช่อง | |
---|---|
disabled |
ไม่บังคับ หากเปิดใช้ (ค่าเริ่มต้น) ระบบจะนับเสียงพูดและข้อความที่ตรวจพบเป็นกิจกรรม หากปิดใช้ ลูกค้าจะต้องส่งสัญญาณกิจกรรม |
startOfSpeechSensitivity |
ไม่บังคับ กำหนดแนวโน้มที่ระบบจะตรวจจับคำพูด |
prefixPaddingMs |
ไม่บังคับ ระยะเวลาของคำพูดที่ตรวจพบที่จำเป็นก่อนที่จะมีการบันทึกการเริ่มต้นของคำพูด ยิ่งค่านี้ต่ำ การตรวจจับการเริ่มต้นพูดก็จะยิ่งไวขึ้นและระบบจะจดจำคำพูดได้สั้นลง แต่วิธีนี้ยังเพิ่มโอกาสเกิดผลบวกลวงด้วย |
endOfSpeechSensitivity |
ไม่บังคับ กำหนดความเป็นไปได้ที่คำพูดที่ตรวจพบจะสิ้นสุดลง |
silenceDurationMs |
ไม่บังคับ ระยะเวลาที่กำหนดของเสียงที่ตรวจพบว่าไม่ใช่เสียงพูด (เช่น เสียงเงียบ) ก่อนสิ้นสุดการพูด ยิ่งค่านี้สูง ระยะเวลาที่หยุดพูดจะนานขึ้นโดยไม่ขัดจังหวะกิจกรรมของผู้ใช้ แต่จะทำให้เวลาในการตอบสนองของโมเดลเพิ่มขึ้น |
BidiGenerateContentClientContent
การอัปเดตการสนทนาปัจจุบันที่ส่งมาจากไคลเอ็นต์ เนื้อหาทั้งหมดที่นี่จะต่อท้ายประวัติการสนทนาโดยไม่มีเงื่อนไข และใช้เป็นพรอมต์ส่วนหนึ่งสำหรับโมเดลในการสร้างเนื้อหา
ข้อความที่นี่จะขัดจังหวะการสร้างโมเดลปัจจุบัน
ช่อง | |
---|---|
turns[] |
ไม่บังคับ เนื้อหาต่อท้ายการสนทนาปัจจุบันกับโมเดล สําหรับการค้นหาแบบเทิร์นเดียว อินสแตนซ์นี้จะเป็นแบบเดี่ยว สําหรับการค้นหาแบบหลายรอบ ฟิลด์นี้จะซ้ำกันซึ่งมีประวัติการสนทนาและคําขอล่าสุด |
turnComplete |
ไม่บังคับ หากเป็น "จริง" แสดงว่าการสร้างเนื้อหาของเซิร์ฟเวอร์ควรเริ่มต้นด้วยพรอมต์ที่สะสมไว้ในปัจจุบัน ไม่เช่นนั้น เซิร์ฟเวอร์จะรอข้อความเพิ่มเติมก่อนที่จะเริ่มสร้าง |
BidiGenerateContentRealtimeInput
อินพุตของผู้ใช้ที่ส่งแบบเรียลไทม์
ระบบจะจัดการสื่อต่างๆ (เสียง วิดีโอ และข้อความ) เป็นสตรีมพร้อมกัน เราไม่รับประกันลําดับของสตรีมเหล่านี้
ซึ่งแตกต่างจาก BidiGenerateContentClientContent
ตรงจุดต่อไปนี้
- ส่งได้อย่างต่อเนื่องโดยไม่หยุดชะงักการสร้างโมเดล
- หากจำเป็นต้องผสมข้อมูลที่สอดแทรกระหว่าง
BidiGenerateContentClientContent
กับBidiGenerateContentRealtimeInput
เซิร์ฟเวอร์จะพยายามเพิ่มประสิทธิภาพเพื่อให้ได้การตอบกลับที่ดีที่สุด แต่ไม่มีการรับประกัน - ไม่มีการระบุจุดสิ้นสุดของเทิร์นอย่างชัดเจน แต่ระบบจะดึงข้อมูลมาจากกิจกรรมของผู้ใช้ (เช่น สิ้นสุดการพูด)
- ระบบจะประมวลผลข้อมูลทีละน้อยเพื่อเพิ่มประสิทธิภาพให้เริ่มการตอบกลับจากโมเดลได้อย่างรวดเร็ว แม้กระทั่งก่อนที่เทิร์นจะสิ้นสุดลง
ช่อง | |
---|---|
mediaChunks[] |
ไม่บังคับ ข้อมูลไบต์ที่ฝังอยู่สําหรับอินพุตสื่อ ระบบไม่รองรับ เลิกใช้งานแล้ว: ให้ใช้ |
audio |
ไม่บังคับ ซึ่งจะกลายเป็นสตรีมอินพุตเสียงแบบเรียลไทม์ |
video |
ไม่บังคับ ซึ่งจะรวมกันเป็นสตรีมอินพุตวิดีโอแบบเรียลไทม์ |
activityStart |
ไม่บังคับ ระบุจุดเริ่มต้นของกิจกรรมของผู้ใช้ คุณจะส่งข้อมูลนี้ได้ก็ต่อเมื่อปิดใช้การตรวจหากิจกรรมอัตโนมัติ (เช่น ฝั่งเซิร์ฟเวอร์) เท่านั้น |
activityEnd |
ไม่บังคับ ระบุจุดสิ้นสุดของกิจกรรมของผู้ใช้ คุณจะส่งข้อมูลนี้ได้ก็ต่อเมื่อปิดใช้การตรวจหากิจกรรมอัตโนมัติ (เช่น ฝั่งเซิร์ฟเวอร์) เท่านั้น |
audioStreamEnd |
ไม่บังคับ บ่งบอกว่าสตรีมเสียงสิ้นสุดลงแล้ว เช่น เนื่องจากไมโครโฟนปิดอยู่ ควรส่งเฉพาะเมื่อเปิดใช้การตรวจหากิจกรรมอัตโนมัติ (ซึ่งเป็นค่าเริ่มต้น) โดยลูกค้าสามารถเปิดสตรีมอีกครั้งได้โดยส่งข้อความเสียง |
text |
ไม่บังคับ ซึ่งจะรวมกันเป็นสตรีมการป้อนข้อความแบบเรียลไทม์ |
BidiGenerateContentServerContent
การอัปเดตเซิร์ฟเวอร์แบบเพิ่มที่โมเดลสร้างขึ้นเพื่อตอบสนองต่อข้อความของไคลเอ็นต์
ระบบจะสร้างเนื้อหาให้เร็วที่สุดเท่าที่จะทำได้ แต่ไม่ใช่แบบเรียลไทม์ ลูกค้าอาจเลือกที่จะบัฟเฟอร์และเล่นแบบเรียลไทม์
ช่อง | |
---|---|
generationComplete |
เอาต์พุตเท่านั้น หากเป็นจริง แสดงว่าโมเดลสร้างเสร็จแล้ว เมื่อโมเดลถูกขัดจังหวะขณะสร้าง จะไม่มีข้อความ "generation_complete" ในเทิร์นที่ขัดจังหวะ แต่จะแสดงเป็น "interrupted > turn_complete" เมื่อโมเดลถือว่าเล่นแบบเรียลไทม์ จะมีการหน่วงเวลาระหว่าง generation_complete และ turn_complete ที่เกิดขึ้นจากโมเดลที่รอให้การเล่นจบ |
turnComplete |
เอาต์พุตเท่านั้น หากเป็นจริง แสดงว่าโมเดลทำการเทิร์นเสร็จแล้ว การสร้างจะเริ่มขึ้นเมื่อมีการตอบกลับข้อความเพิ่มเติมของลูกค้าเท่านั้น |
interrupted |
เอาต์พุตเท่านั้น หากเป็นจริง แสดงว่าข้อความไคลเอ็นต์ขัดจังหวะการสร้างโมเดลปัจจุบัน หากไคลเอ็นต์เล่นเนื้อหาแบบเรียลไทม์ นี่เป็นสัญญาณที่ดีในการหยุดและล้างคิวการเล่นปัจจุบัน |
groundingMetadata |
เอาต์พุตเท่านั้น ข้อมูลเมตาพื้นฐานสําหรับเนื้อหาที่สร้างขึ้น |
outputTranscription |
เอาต์พุตเท่านั้น เอาต์พุตการถอดเสียงเป็นคำ ระบบจะส่งข้อความถอดเสียงแยกจากข้อความอื่นๆ ของเซิร์ฟเวอร์และไม่มีการรับประกันลําดับ โดยเฉพาะอย่างยิ่งระหว่าง |
modelTurn |
เอาต์พุตเท่านั้น เนื้อหาที่โมเดลสร้างขึ้นซึ่งเป็นส่วนหนึ่งของการสนทนาปัจจุบันกับผู้ใช้ |
BidiGenerateContentServerMessage
ข้อความตอบกลับสําหรับการเรียก BidiGenerateContent
ช่อง | |
---|---|
usageMetadata |
เอาต์พุตเท่านั้น ข้อมูลเมตาการใช้งานเกี่ยวกับการตอบกลับ |
ฟิลด์สหภาพ messageType ประเภทของข้อความ messageType ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น |
|
setupComplete |
เอาต์พุตเท่านั้น ส่งเพื่อตอบกลับข้อความ |
serverContent |
เอาต์พุตเท่านั้น เนื้อหาที่โมเดลสร้างขึ้นเพื่อตอบกลับข้อความของลูกค้า |
toolCall |
เอาต์พุตเท่านั้น ขอให้ไคลเอ็นต์เรียกใช้ |
toolCallCancellation |
เอาต์พุตเท่านั้น การแจ้งเตือนให้ลูกค้าทราบว่า |
goAway |
เอาต์พุตเท่านั้น ประกาศว่าเซิร์ฟเวอร์จะตัดการเชื่อมต่อในไม่ช้า |
sessionResumptionUpdate |
เอาต์พุตเท่านั้น อัปเดตสถานะการกลับมาทำงานของเซสชัน |
BidiGenerateContentSetup
ข้อความที่จะส่งใน BidiGenerateContentClientMessage
รายการแรก (และรายการแรกเท่านั้น) มีการกำหนดค่าที่จะมีผลตลอดระยะเวลาของ RPC สตรีมมิง
ไคลเอ็นต์ควรรอข้อความ BidiGenerateContentSetupComplete
ก่อนส่งข้อความเพิ่มเติม
ช่อง | |
---|---|
model |
ต้องระบุ ชื่อทรัพยากรของโมเดล ซึ่งจะเป็นรหัสสําหรับโมเดลที่จะใช้ รูปแบบ: |
generationConfig |
ไม่บังคับ การกำหนดค่าการสร้าง ระบบไม่รองรับช่องต่อไปนี้
|
systemInstruction |
ไม่บังคับ วิธีการของระบบที่ผู้ใช้ระบุสำหรับโมเดล หมายเหตุ: ควรใช้เฉพาะข้อความในส่วนต่างๆ และเนื้อหาในแต่ละส่วนจะอยู่ในรูปแบบย่อหน้าแยกกัน |
tools[] |
ไม่บังคับ รายการ
|
realtimeInputConfig |
ไม่บังคับ กําหนดค่าการจัดการอินพุตแบบเรียลไทม์ |
sessionResumption |
ไม่บังคับ กําหนดค่ากลไกการกลับมาทํางานต่อของเซสชัน หากรวมไว้ด้วย เซิร์ฟเวอร์จะส่งข้อความ |
contextWindowCompression |
ไม่บังคับ กําหนดค่ากลไกการบีบอัดกรอบเวลาบริบท หากรวมไว้ด้วย เซิร์ฟเวอร์จะลดขนาดของบริบทโดยอัตโนมัติเมื่อบริบทมีความยาวเกินค่าที่กำหนดไว้ |
outputAudioTranscription |
ไม่บังคับ หากตั้งค่าไว้ ระบบจะเปิดใช้การถอดเสียงเป็นคำของเอาต์พุตเสียงของโมเดล การถอดเสียงจะสอดคล้องกับรหัสภาษาที่ระบุไว้สำหรับเสียงเอาต์พุต หากมีการกำหนดค่าไว้ |
BidiGenerateContentSetupComplete
ประเภทนี้ไม่มีช่อง
ส่งเพื่อตอบกลับข้อความ BidiGenerateContentSetup
จากลูกค้า
BidiGenerateContentToolCall
ขอให้ไคลเอ็นต์เรียกใช้ functionCalls
และส่งการตอบกลับที่มี id
ที่ตรงกัน
ช่อง | |
---|---|
functionCalls[] |
เอาต์พุตเท่านั้น การเรียกใช้ฟังก์ชันที่จะดำเนินการ |
BidiGenerateContentToolCallCancellation
การแจ้งเตือนลูกค้าว่าToolCallMessage
ที่ออกก่อนหน้านี้ซึ่งมีid
ที่ระบุไว้ไม่ควรได้รับการดําเนินการและควรถูกยกเลิก หากการเรียกใช้เครื่องมือเหล่านั้นมีผลข้างเคียง ไคลเอ็นต์อาจพยายามเลิกทำการใช้เครื่องมือ ข้อความนี้จะปรากฏขึ้นเฉพาะในกรณีที่ไคลเอ็นต์ขัดจังหวะการเปลี่ยนเซิร์ฟเวอร์เท่านั้น
ช่อง | |
---|---|
ids[] |
เอาต์พุตเท่านั้น รหัสของเครื่องมือที่เรียกให้ยกเลิก |
BidiGenerateContentToolResponse
การตอบกลับที่ไคลเอ็นต์สร้างขึ้นสําหรับ ToolCall
ที่ได้รับจากเซิร์ฟเวอร์ ระบบจะจับคู่ออบเจ็กต์ FunctionResponse
แต่ละรายการกับออบเจ็กต์ FunctionCall
ที่เกี่ยวข้องตามช่อง id
โปรดทราบว่าการเรียกใช้ฟังก์ชัน GenerateContent API แบบ unary และแบบสตรีมมิงจากเซิร์ฟเวอร์จะเกิดขึ้นโดยการแลกเปลี่ยนส่วน Content
ส่วนการเรียกใช้ฟังก์ชัน GenerateContent API แบบ bidi จะเกิดขึ้นผ่านชุดข้อความเฉพาะเหล่านี้
ช่อง | |
---|---|
functionResponses[] |
ไม่บังคับ การตอบสนองต่อการเรียกใช้ฟังก์ชัน |
BidiGenerateContentTranscription
การถอดเสียง (อินพุตหรือเอาต์พุต)
ช่อง | |
---|---|
text |
ข้อความถอดเสียง |
ContextWindowCompressionConfig
เปิดใช้การบีบอัดกรอบเวลาบริบท ซึ่งเป็นกลไกในการจัดการกรอบเวลาบริบทของโมเดลเพื่อไม่ให้เกินความยาวที่กำหนด
ช่อง | |
---|---|
ฟิลด์สหภาพ compressionMechanism กลไกการบีบอัดกรอบบริบทที่ใช้ compressionMechanism ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น |
|
slidingWindow |
กลไกกรอบเวลาเลื่อน |
triggerTokens |
จํานวนโทเค็น (ก่อนเรียกใช้รอบ) ที่จําเป็นในการเรียกให้เกิดการบีบอัดกรอบเวลาตามบริบท ซึ่งสามารถใช้เพื่อปรับสมดุลคุณภาพกับเวลาในการตอบสนอง เนื่องจากกรอบเวลาบริบทที่สั้นลงอาจส่งผลให้โมเดลตอบสนองเร็วขึ้น อย่างไรก็ตาม การดำเนินการบีบอัดจะทําให้เวลาในการตอบสนองเพิ่มขึ้นชั่วคราว จึงไม่ควรเรียกให้ดำเนินการบ่อยๆ หากไม่ได้ตั้งค่า ระบบจะใช้ค่าเริ่มต้นเป็น 80% ของขีดจํากัดกรอบเวลาบริบทของโมเดล ซึ่งเหลือ 20% สําหรับคําขอ/คําตอบของโมเดลผู้ใช้ครั้งถัดไป |
EndSensitivity
กำหนดวิธีตรวจจับการสิ้นสุดของคำพูด
Enum | |
---|---|
END_SENSITIVITY_UNSPECIFIED |
ค่าเริ่มต้นคือ END_SENSITIVITY_HIGH |
END_SENSITIVITY_HIGH |
การตรวจหาอัตโนมัติจะสิ้นสุดการพูดบ่อยขึ้น |
END_SENSITIVITY_LOW |
การตรวจหาอัตโนมัติจะสิ้นสุดการพูดน้อยลง |
GoAway
ประกาศว่าเซิร์ฟเวอร์จะตัดการเชื่อมต่อในไม่ช้า
ช่อง | |
---|---|
timeLeft |
เวลาที่เหลือก่อนที่การเชื่อมต่อจะสิ้นสุดลงโดยระบุว่า "ยกเลิก" ระยะเวลานี้จะไม่น้อยกว่าระยะเวลาขั้นต่ำเฉพาะโมเดล ซึ่งจะระบุไว้พร้อมกับขีดจํากัดอัตราของโมเดล |
RealtimeInputConfig
กําหนดค่าลักษณะการป้อนข้อมูลแบบเรียลไทม์ใน BidiGenerateContent
ช่อง | |
---|---|
automaticActivityDetection |
ไม่บังคับ หากไม่ได้ตั้งค่าไว้ ระบบจะเปิดใช้การตรวจหากิจกรรมอัตโนมัติโดยค่าเริ่มต้น หากปิดใช้การตรวจจับเสียงอัตโนมัติ ลูกค้าต้องส่งสัญญาณกิจกรรม |
activityHandling |
ไม่บังคับ กําหนดผลที่กิจกรรมมี |
turnCoverage |
ไม่บังคับ กำหนดอินพุตที่จะรวมอยู่ในการผลัดของผู้ใช้ |
SessionResumptionConfig
การกำหนดค่าการกลับมาทำงานต่อของเซสชัน
ข้อความนี้รวมอยู่ในการกำหนดค่าเซสชันเป็น BidiGenerateContentSetup.sessionResumption
หากกําหนดค่าไว้ เซิร์ฟเวอร์จะส่งข้อความ SessionResumptionUpdate
ช่อง | |
---|---|
handle |
แฮนเดิลของเซสชันก่อนหน้า หากไม่มี ระบบจะสร้างเซสชันใหม่ แฮนเดิลเซสชันมาจากค่า |
SessionResumptionUpdate
อัปเดตสถานะการกลับมาทำงานของเซสชัน
ระบบจะส่งเฉพาะในกรณีที่ตั้งค่า BidiGenerateContentSetup.sessionResumption
ไว้
ช่อง | |
---|---|
newHandle |
แฮนเดิลใหม่ที่แสดงสถานะที่กลับมาทำงานต่อได้ ว่างเปล่าหาก |
resumable |
จริงหากเซสชันปัจจุบันกลับมาทำงานต่อได้ในตอนนี้ ไม่สามารถกลับมาดำเนินการต่อได้ในบางจุดของเซสชัน เช่น เมื่อโมเดลเรียกใช้หรือสร้างฟังก์ชัน การกลับมาดำเนินการเซสชันต่อ (โดยใช้โทเค็นเซสชันก่อนหน้า) ในสถานะดังกล่าวจะทำให้ข้อมูลบางส่วนสูญหาย ในกรณีเหล่านี้ |
SlidingWindow
วิธีการ SlidingWindow ทํางานโดยการทิ้งเนื้อหาที่จุดเริ่มต้นของกรอบเวลาบริบท บริบทที่ได้จะเริ่มต้นที่จุดเริ่มต้นของการเปลี่ยนบทบาทเป็นผู้ใช้เสมอ วิธีการของระบบและ BidiGenerateContentSetup.prefixTurns
ต่างๆ จะแสดงอยู่ที่ต้นของผลลัพธ์เสมอ
ช่อง | |
---|---|
targetTokens |
จำนวนโทเค็นเป้าหมายที่จะเก็บไว้ ค่าเริ่มต้นคือ trigger_tokens/2 การทิ้งบางส่วนของกรอบบริบทจะทําให้เวลาในการตอบสนองเพิ่มขึ้นชั่วคราว คุณจึงควรปรับค่านี้เพื่อหลีกเลี่ยงการดำเนินการบีบอัดบ่อยครั้ง |
StartSensitivity
กำหนดวิธีตรวจจับการเริ่มต้นของคำพูด
Enum | |
---|---|
START_SENSITIVITY_UNSPECIFIED |
ค่าเริ่มต้นคือ START_SENSITIVITY_HIGH |
START_SENSITIVITY_HIGH |
การตรวจหาอัตโนมัติจะตรวจจับการเริ่มต้นของคำพูดบ่อยขึ้น |
START_SENSITIVITY_LOW |
การตรวจจับอัตโนมัติจะตรวจจับการเริ่มต้นของคำพูดน้อยลง |
TurnCoverage
ตัวเลือกเกี่ยวกับอินพุตที่จะรวมอยู่ในการผลัดของผู้ใช้
Enum | |
---|---|
TURN_COVERAGE_UNSPECIFIED |
หากไม่ระบุ ลักษณะการทำงานเริ่มต้นจะเป็น TURN_INCLUDES_ONLY_ACTIVITY |
TURN_INCLUDES_ONLY_ACTIVITY |
เทิร์นของผู้ใช้จะรวมเฉพาะกิจกรรมนับตั้งแต่เทิร์นล่าสุด โดยไม่รวมช่วงเวลาที่ไม่มีการใช้งาน (เช่น ไม่มีการพูดในสตรีมเสียง) นี่คือลักษณะการทำงานเริ่มต้น |
TURN_INCLUDES_ALL_INPUT |
เทิร์นของผู้ใช้จะรวมอินพุตแบบเรียลไทม์ทั้งหมดนับตั้งแต่เทิร์นล่าสุด รวมถึงช่วงเวลาที่ไม่มีการใช้งาน (เช่น ไม่มีการพูดในสตรีมเสียง) |
UsageMetadata
ข้อมูลเมตาการใช้งานเกี่ยวกับการตอบกลับ
ช่อง | |
---|---|
promptTokenCount |
เอาต์พุตเท่านั้น จํานวนโทเค็นในพรอมต์ เมื่อตั้งค่า |
cachedContentTokenCount |
จํานวนโทเค็นในส่วนที่แคชไว้ของพรอมต์ (เนื้อหาที่แคชไว้) |
responseTokenCount |
เอาต์พุตเท่านั้น จํานวนโทเค็นทั้งหมดของคําตอบที่เป็นไปได้ทั้งหมดที่สร้างขึ้น |
toolUsePromptTokenCount |
เอาต์พุตเท่านั้น จำนวนโทเค็นที่แสดงในพรอมต์การใช้งานเครื่องมือ |
thoughtsTokenCount |
เอาต์พุตเท่านั้น จํานวนโทเค็นของความคิดสําหรับรูปแบบการคิด |
totalTokenCount |
เอาต์พุตเท่านั้น จำนวนโทเค็นทั้งหมดสำหรับคำขอสร้าง (พรอมต์ + ตัวเลือกคำตอบ) |
promptTokensDetails[] |
เอาต์พุตเท่านั้น รายการรูปแบบที่ประมวลผลในอินพุตคำขอ |
cacheTokensDetails[] |
เอาต์พุตเท่านั้น รายการรูปแบบของเนื้อหาที่แคชไว้ในอินพุตคำขอ |
responseTokensDetails[] |
เอาต์พุตเท่านั้น รายการรูปแบบที่แสดงในการตอบกลับ |
toolUsePromptTokensDetails[] |
เอาต์พุตเท่านั้น รายการรูปแบบที่ประมวลผลสำหรับอินพุตคำขอใช้เครื่องมือ |
ข้อมูลเพิ่มเติมเกี่ยวกับประเภทที่พบบ่อย
ดูข้อมูลเพิ่มเติมเกี่ยวกับประเภททรัพยากร API ที่ใช้กันโดยทั่วไป Blob
,
Content
, FunctionCall
, FunctionResponse
, GenerationConfig
,
GroundingMetadata
, ModalityTokenCount
และ Tool
ได้ที่หัวข้อการสร้างเนื้อหา