Live API เป็น API แบบมีสถานะ ที่ใช้ WebSockets ในส่วนนี้ คุณจะเห็นรายละเอียดเพิ่มเติมเกี่ยวกับ WebSockets API
เซสชัน
การเชื่อมต่อ WebSocket จะสร้างเซสชันระหว่างไคลเอ็นต์กับเซิร์ฟเวอร์ Gemini หลังจากไคลเอ็นต์เริ่มการเชื่อมต่อใหม่ เซสชันจะแลกเปลี่ยน ข้อความกับเซิร์ฟเวอร์เพื่อทำสิ่งต่อไปนี้ได้
- ส่งข้อความ เสียง หรือวิดีโอไปยังเซิร์ฟเวอร์ Gemini
- รับคำขอเสียง ข้อความ หรือการเรียกใช้ฟังก์ชันจากเซิร์ฟเวอร์ Gemini
การเชื่อมต่อ WebSocket
หากต้องการเริ่มเซสชัน ให้เชื่อมต่อกับปลายทาง WebSocket นี้
wss://generativelanguage.googleapis.com/ws/google.ai.generativelanguage.v1beta.GenerativeService.BidiGenerateContent
การกำหนดค่าเซสชัน
ข้อความแรกที่ส่งหลังจากสร้างการเชื่อมต่อ WebSocket จะตั้งค่า การกำหนดค่าเซสชัน ซึ่งรวมถึงโมเดล พารามิเตอร์การสร้าง คำสั่งของระบบ และเครื่องมือ
คุณอัปเดตการกำหนดค่าขณะที่การเชื่อมต่อเปิดอยู่ไม่ได้ อย่างไรก็ตาม คุณสามารถเปลี่ยนพารามิเตอร์การกำหนดค่าได้ ยกเว้นโมเดล เมื่อหยุดชั่วคราวและ กลับมาทำงานต่อผ่านกลไกการกลับมาทำงานต่อของเซสชัน
ดูการกำหนดค่าตัวอย่างต่อไปนี้ โปรดทราบว่ารูปแบบการตั้งชื่อใน 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,
"translationConfig": object
},
"systemInstruction": string,
"tools": [object]
}
ดูข้อมูลเพิ่มเติมเกี่ยวกับฟิลด์ API ได้ที่ generationConfig
ส่งข้อความ
หากต้องการแลกเปลี่ยนข้อความผ่านการเชื่อมต่อ WebSocket ไคลเอ็นต์ต้องส่งออบเจ็กต์ JSON ผ่านการเชื่อมต่อ WebSocket ที่เปิดอยู่ ออบเจ็กต์ JSON ต้องมีฟิลด์เพียงฟิลด์เดียวจากชุดออบเจ็กต์ต่อไปนี้
{
"setup": BidiGenerateContentSetup,
"clientContent": BidiGenerateContentClientContent,
"realtimeInput": BidiGenerateContentRealtimeInput,
"toolResponse": BidiGenerateContentToolResponse
}
ข้อความจากลูกค้าที่รองรับ
ดูข้อความไคลเอ็นต์ที่รองรับในตารางต่อไปนี้
| ข้อความ | คำอธิบาย |
|---|---|
BidiGenerateContentSetup |
การกำหนดค่าเซสชันที่จะส่งในข้อความแรก |
BidiGenerateContentClientContent |
การอัปเดตเนื้อหาที่เพิ่มขึ้นของบทสนทนาปัจจุบันที่ส่งจากไคลเอ็นต์ |
BidiGenerateContentRealtimeInput |
การป้อนข้อมูลเสียง วิดีโอ หรือข้อความแบบเรียลไทม์ |
BidiGenerateContentToolResponse |
การตอบกลับ ToolCallMessage ที่ได้รับจากเซิร์ฟเวอร์ |
รับข้อความ
หากต้องการรับข้อความจาก Gemini ให้ฟังเหตุการณ์ "ข้อความ" ของ 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 แต่จะรวมฟิลด์อื่นๆ จากข้อความ BidiGenerateContentServerMessage
เพียง 1 รายการ (ระบบไม่ได้แสดงmessageTypeยูเนียนใน JSON ดังนั้นฟิลด์จะ
ปรากฏที่ระดับบนสุดของข้อความ)
ข้อความและกิจกรรม
ActivityEnd
ประเภทนี้ไม่มีฟิลด์
ทำเครื่องหมายจุดสิ้นสุดของกิจกรรมของผู้ใช้
ActivityHandling
วิธีต่างๆ ในการจัดการกิจกรรมของผู้ใช้
| Enum | |
|---|---|
ACTIVITY_HANDLING_UNSPECIFIED |
หากไม่ได้ระบุ ลักษณะการทำงานเริ่มต้นจะเป็น START_OF_ACTIVITY_INTERRUPTS |
START_OF_ACTIVITY_INTERRUPTS |
หากเป็นจริง การเริ่มต้นกิจกรรมจะขัดจังหวะการตอบกลับของโมเดล (หรือที่เรียกว่า "แทรก") ระบบจะตัดคำตอบปัจจุบันของโมเดลในขณะที่หยุดชะงัก นี่คือลักษณะการทำงานเริ่มต้น |
NO_INTERRUPTION |
การตอบกลับของโมเดลจะไม่ถูกขัดจังหวะ |
ActivityStart
ประเภทนี้ไม่มีฟิลด์
ทำเครื่องหมายจุดเริ่มต้นของกิจกรรมของผู้ใช้
AudioTranscriptionConfig
การกำหนดค่าการถอดเสียงเป็นคำ
| ช่อง | |
|---|---|
languageCodes[] |
ไม่บังคับ รหัสภาษา BCP-47 ที่ให้คำแนะนำเกี่ยวกับภาษาที่อยู่ในเสียง หากเว้นว่างไว้หรือไม่มีค่า ระบบจะใช้การตรวจหาภาษาอัตโนมัติเป็นค่าเริ่มต้น |
customVocabulary[] |
ไม่บังคับ รายการวลีคำศัพท์ที่กำหนดเองเพื่อให้น้ำหนักโมเดลการจดจำเสียงพูดไปที่การจดจำคำที่เฉพาะเจาะจง (ชื่อผลิตภัณฑ์ คำนามเฉพาะ ศัพท์เฉพาะ) |
wordTimestamp |
ไม่บังคับ กำหนดค่าการสร้างการประทับเวลาระดับคำ |
diarization |
ไม่บังคับ กำหนดค่าการแยกแยะเสียงผู้พูด |
mode |
ไม่บังคับ กำหนดค่าโหมดการถอดเสียงเป็นคำ ค่าที่รองรับ: |
โหมด
โหมดการถอดเสียงเป็นคำ
| Enum | |
|---|---|
MODE_UNSPECIFIED |
โหมดการถอดเสียงเป็นคำที่ไม่ได้ระบุ |
VERBATIM |
โหมดการถอดเสียงเป็นคำแบบตรงตามคำพูด |
SMART |
โหมดการถอดเสียงอัจฉริยะ |
AutomaticActivityDetection
กำหนดค่าการตรวจหากิจกรรมโดยอัตโนมัติ
| ช่อง | |
|---|---|
disabled |
ไม่บังคับ หากเปิดใช้ (ค่าเริ่มต้น) ระบบจะนับการป้อนด้วยเสียงและข้อความที่ตรวจพบเป็นกิจกรรม หากปิดใช้ ไคลเอ็นต์ต้องส่งสัญญาณกิจกรรม |
startOfSpeechSensitivity |
ไม่บังคับ กำหนดความเป็นไปได้ที่จะตรวจจับคำพูด |
prefixPaddingMs |
ไม่บังคับ ระยะเวลาที่ต้องใช้สำหรับคำพูดที่ตรวจพบก่อนที่จะเริ่มพูด ยิ่งค่านี้ต่ำเท่าใด การตรวจหาจุดเริ่มต้นของคำพูดก็จะยิ่งไวขึ้นเท่านั้น และระบบจะจดจำคำพูดที่สั้นลงได้ อย่างไรก็ตาม วิธีนี้ยังเพิ่มโอกาสเกิดผลบวกลวงด้วย |
endOfSpeechSensitivity |
ไม่บังคับ กำหนดความเป็นไปได้ที่ระบบจะหยุดการตรวจจับคำพูด |
silenceDurationMs |
ไม่บังคับ ระยะเวลาที่ต้องตรวจพบเสียงที่ไม่ใช่คำพูด (เช่น ความเงียบ) ก่อนที่จะบันทึกจุดสิ้นสุดของคำพูด ยิ่งค่านี้มากเท่าใด ช่องว่างของคำพูดก็จะยิ่งนานขึ้นโดยไม่ขัดจังหวะกิจกรรมของผู้ใช้ แต่จะเพิ่มเวลาในการตอบสนองของโมเดล |
BidiGenerateContentClientContent
การอัปเดตการสนทนาปัจจุบันที่เพิ่มขึ้นซึ่งส่งจากไคลเอ็นต์ เนื้อหาทั้งหมดที่นี่จะต่อท้ายประวัติการสนทนาโดยไม่มีเงื่อนไขและใช้เป็นส่วนหนึ่งของพรอมต์ไปยังโมเดลเพื่อสร้างเนื้อหา
ข้อความที่นี่จะขัดจังหวะการสร้างโมเดลปัจจุบัน
| ช่อง | |
|---|---|
turns[] |
ไม่บังคับ เนื้อหาที่ต่อท้ายการสนทนาปัจจุบันกับโมเดล สำหรับคำค้นหาแบบเทิร์นเดียว นี่คืออินสแตนซ์เดียว สำหรับคำค้นหาแบบการสนทนาไปมา นี่คือฟิลด์ที่ซ้ำกันซึ่งมีประวัติการสนทนาและคำขอล่าสุด |
turnComplete |
ไม่บังคับ หากเป็นจริง แสดงว่าการสร้างเนื้อหาของเซิร์ฟเวอร์ควรเริ่มต้นด้วยพรอมต์ที่สะสมอยู่ในปัจจุบัน ไม่เช่นนั้น เซิร์ฟเวอร์จะรอข้อความเพิ่มเติมก่อนเริ่มสร้าง |
BidiGenerateContentRealtimeInput
ข้อมูลจากผู้ใช้ที่ส่งแบบเรียลไทม์
ระบบจะจัดการรูปแบบต่างๆ (เสียง วิดีโอ และข้อความ) เป็นสตรีมพร้อมกัน เราไม่รับประกันว่าสตรีมเหล่านี้จะเรียงตามลำดับ
ซึ่งแตกต่างจาก BidiGenerateContentClientContent ในหลายๆ ด้าน ดังนี้
- ส่งได้อย่างต่อเนื่องโดยไม่หยุดชะงักในการสร้างโมเดล
- หากจำเป็นต้องผสมข้อมูลที่สลับกันระหว่าง
BidiGenerateContentClientContentกับBidiGenerateContentRealtimeInputเซิร์ฟเวอร์จะพยายามเพิ่มประสิทธิภาพเพื่อให้ได้การตอบกลับที่ดีที่สุด แต่ไม่มีการรับประกัน - ระบบไม่ได้ระบุจุดสิ้นสุดของเทิร์นอย่างชัดเจน แต่จะพิจารณาจากกิจกรรมของผู้ใช้ (เช่น สิ้นสุดการพูด)
- แม้จะยังไม่ถึงจุดสิ้นสุดของรอบ แต่ระบบจะประมวลผลข้อมูลทีละรายการเพื่อเพิ่มประสิทธิภาพให้โมเดลเริ่มตอบสนองได้อย่างรวดเร็ว
| ช่อง | |
|---|---|
mediaChunks[] |
ไม่บังคับ ข้อมูลไบต์แบบอินไลน์สำหรับอินพุตสื่อ ไม่รองรับ เลิกใช้งานแล้ว: ใช้ |
audio |
ไม่บังคับ ซึ่งจะสร้างสตรีมอินพุตเสียงแบบเรียลไทม์ |
video |
ไม่บังคับ ซึ่งจะสร้างสตรีมอินพุตวิดีโอแบบเรียลไทม์ |
activityStart |
ไม่บังคับ ทำเครื่องหมายจุดเริ่มต้นของกิจกรรมของผู้ใช้ ระบบจะส่งข้อมูลนี้ได้ก็ต่อเมื่อปิดใช้การตรวจหากิจกรรมอัตโนมัติ (ฝั่งเซิร์ฟเวอร์) |
activityEnd |
ไม่บังคับ ทำเครื่องหมายจุดสิ้นสุดของกิจกรรมของผู้ใช้ ระบบจะส่งข้อมูลนี้ได้ก็ต่อเมื่อปิดใช้การตรวจหากิจกรรมอัตโนมัติ (ฝั่งเซิร์ฟเวอร์) |
mediaResolution |
ไม่บังคับ ความละเอียดของสื่อที่จะใช้ หากไม่ได้ระบุไว้ ระบบจะใช้ |
audioStreamEnd |
ไม่บังคับ ระบุว่าสตรีมเสียงสิ้นสุดลงแล้ว เช่น เนื่องจากปิดไมโครโฟน ควรส่งเฉพาะเมื่อเปิดใช้การตรวจหากิจกรรมอัตโนมัติ (ซึ่งเป็นค่าเริ่มต้น) ไคลเอ็นต์สามารถเปิดสตรีมอีกครั้งได้โดยการส่งข้อความเสียง |
text |
ไม่บังคับ ซึ่งจะสร้างสตรีมอินพุตข้อความแบบเรียลไทม์ |
BidiGenerateContentServerContent
การอัปเดตเซิร์ฟเวอร์ที่เพิ่มขึ้นซึ่งโมเดลสร้างขึ้นเพื่อตอบกลับข้อความของไคลเอ็นต์
ระบบจะสร้างเนื้อหาให้เร็วที่สุดเท่าที่จะทำได้ แต่จะไม่สร้างแบบเรียลไทม์ ลูกค้าอาจเลือกบัฟเฟอร์และเล่นแบบเรียลไทม์
| ช่อง | |
|---|---|
generationComplete |
เอาต์พุตเท่านั้น หากเป็นจริง แสดงว่าโมเดลสร้างเสร็จแล้ว เมื่อโมเดลถูกขัดจังหวะขณะสร้าง จะไม่มีข้อความ "generation_complete" ในเทิร์นที่ถูกขัดจังหวะ แต่จะผ่าน "interrupted > turn_complete" เมื่อโมเดลถือว่าการเล่นเป็นแบบเรียลไทม์ จะมีความล่าช้าระหว่าง generation_complete กับ turn_complete ซึ่งเกิดจากโมเดลที่รอให้การเล่นเสร็จสิ้น |
turnComplete |
เอาต์พุตเท่านั้น หากเป็นจริง แสดงว่าโมเดลได้ดำเนินการตามเทิร์นของตนเองเสร็จแล้ว การสร้างจะเริ่มขึ้นเมื่อได้รับข้อความเพิ่มเติมจากไคลเอ็นต์เท่านั้น โปรดทราบว่าเมื่อเปิดใช้การรายงานสถานะการเล่น ระบบจะปล่อยเหตุการณ์นี้ก็ต่อเมื่อสถานะการเล่นระบุว่าการเล่นเสร็จสิ้นแล้วเท่านั้น ระบบจะไม่สนใจสถานะการเล่นในอนาคตของอุปกรณ์รุ่นเดียวกัน |
interrupted |
เอาต์พุตเท่านั้น หากเป็นจริง แสดงว่าข้อความไคลเอ็นต์ขัดจังหวะการสร้างโมเดลปัจจุบัน หากไคลเอ็นต์กำลังเล่นเนื้อหาแบบเรียลไทม์ นี่เป็นสัญญาณที่ดีที่จะหยุดและล้างคิวการเล่นปัจจุบัน |
groundingMetadata |
เอาต์พุตเท่านั้น การอ้างอิงข้อมูลเมตาสำหรับเนื้อหาที่สร้างขึ้น |
inputTranscription |
เอาต์พุตเท่านั้น ป้อนข้อความถอดเสียง ระบบจะส่งการถอดเสียงเป็นคำแยกจากข้อความเซิร์ฟเวอร์อื่นๆ และไม่มีการรับประกันลำดับ |
interimInputTranscription |
เอาต์พุตเท่านั้น การถอดเสียงที่มีเวลาในการตอบสนองต่ำจะอัปเดตขณะที่ผู้ใช้พูด ช่องนี้อาจมีการอัปเดตบ่อย |
outputTranscription |
เอาต์พุตเท่านั้น เอาต์พุตการถอดเสียงเป็นคำ โดยการถอดเสียงเหล่านี้เป็นส่วนหนึ่งของเอาต์พุตการสร้างของเซิร์ฟเวอร์ ระบบจะส่งการถอดเสียงเอาต์พุตสุดท้ายของเทิร์นนี้ก่อน |
urlContextMetadata |
|
waitingForInput |
เอาต์พุตเท่านั้น หากเป็นจริง แสดงว่าโมเดลไม่ได้สร้างเนื้อหาเนื่องจากกำลังรอข้อมูลเพิ่มเติมจากผู้ใช้ เช่น เนื่องจากคาดหวังให้ผู้ใช้พูดต่อ |
speechState |
เอาต์พุตเท่านั้น เลิกใช้งานแล้ว: ใช้ VoiceActivity แทน ระบุสถานะปัจจุบันของการตรวจหาเสียงพูดใน |
interactionStatus |
เอาต์พุตเท่านั้น สถานะกิจกรรมปัจจุบันของเซสชันสด ส่งพร้อมกับ |
modelTurn |
เอาต์พุตเท่านั้น เนื้อหาที่โมเดลสร้างขึ้นเป็นส่วนหนึ่งของการสนทนากับผู้ใช้ในปัจจุบัน |
BidiGenerateContentServerMessage
ข้อความตอบกลับสำหรับการเรียก BidiGenerateContent
| ช่อง | |
|---|---|
usageMetadata |
เอาต์พุตเท่านั้น ข้อมูลเมตาการใช้งานเกี่ยวกับคำตอบ |
ฟิลด์ Union messageType ประเภทของข้อความ messageType ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น |
|
setupComplete |
เอาต์พุตเท่านั้น ส่งเพื่อตอบกลับข้อความ |
serverContent |
เอาต์พุตเท่านั้น เนื้อหาที่โมเดลสร้างขึ้นเพื่อตอบกลับข้อความของไคลเอ็นต์ |
toolCall |
เอาต์พุตเท่านั้น ขอให้ไคลเอ็นต์ดำเนินการ |
toolCallCancellation |
เอาต์พุตเท่านั้น การแจ้งเตือนสำหรับไคลเอ็นต์ว่าควรยกเลิก |
goAway |
เอาต์พุตเท่านั้น การแจ้งเตือนว่าเซิร์ฟเวอร์จะตัดการเชื่อมต่อในเร็วๆ นี้ |
sessionResumptionUpdate |
เอาต์พุตเท่านั้น การอัปเดตสถานะการกลับมาใช้เซสชันต่อ |
BidiGenerateContentSetup
ข้อความที่จะส่งในแรก (และแรกเท่านั้น)BidiGenerateContentClientMessage มีการกำหนดค่าที่จะใช้ตลอดระยะเวลาของ RPC การสตรีม
ไคลเอ็นต์ควรรอข้อความ BidiGenerateContentSetupComplete ก่อนส่งข้อความเพิ่มเติม
| ช่อง | |
|---|---|
model |
ต้องระบุ ชื่อทรัพยากรของโมเดล ซึ่งจะใช้เป็นรหัสเพื่อให้โมเดลใช้ รูปแบบ: |
generationConfig |
ไม่บังคับ การกำหนดค่าการสร้าง ระบบไม่รองรับฟิลด์ต่อไปนี้
|
systemInstruction |
ไม่บังคับ ผู้ใช้ได้ให้คำแนะนำของระบบสำหรับโมเดล หมายเหตุ: ควรใช้ข้อความเท่านั้นในชิ้นส่วนต่างๆ และเนื้อหาในแต่ละชิ้นส่วนจะอยู่ในย่อหน้าแยกกัน |
tools[] |
ไม่บังคับ รายการ
|
realtimeInputConfig |
ไม่บังคับ กำหนดค่าการจัดการอินพุตแบบเรียลไทม์ |
sessionResumption |
ไม่บังคับ กำหนดค่ากลไกการกลับมาใช้เซสชันต่อ หากระบุไว้ เซิร์ฟเวอร์จะส่ง |
contextWindowCompression |
ไม่บังคับ กำหนดค่ากลไกการบีบอัดหน้าต่างบริบท หากรวมไว้ เซิร์ฟเวอร์จะลดขนาดบริบทโดยอัตโนมัติเมื่อมีความยาวเกินความยาวที่กำหนดค่าไว้ |
inputAudioTranscription |
ไม่บังคับ หากตั้งค่าไว้ จะเปิดใช้การถอดเสียงของป้อนข้อมูลด้วยเสียง การถอดเสียงเป็นคำจะสอดคล้องกับภาษาของเสียงที่ป้อน หากมีการกำหนดค่า |
outputAudioTranscription |
ไม่บังคับ หากตั้งค่าไว้ จะเปิดใช้การถอดเสียงเป็นคำของเอาต์พุตเสียงของโมเดล การถอดเสียงจะสอดคล้องกับรหัสภาษาที่ระบุสำหรับเสียงเอาต์พุต หากมีการกำหนดค่า |
proactivity |
ไม่บังคับ กำหนดค่าความสามารถในการคาดการณ์ของโมเดล ซึ่งช่วยให้โมเดลตอบสนองต่ออินพุตได้อย่างรวดเร็วและละเว้นอินพุตที่ไม่เกี่ยวข้อง |
historyConfig |
ไม่บังคับ กำหนดค่าการแลกเปลี่ยนประวัติระหว่างไคลเอ็นต์กับเซิร์ฟเวอร์ |
BidiGenerateContentSetupComplete
ประเภทนี้ไม่มีฟิลด์
ส่งเพื่อตอบกลับข้อความ BidiGenerateContentSetup จากไคลเอ็นต์
BidiGenerateContentToolCall
ขอให้ไคลเอ็นต์ดำเนินการ functionCalls และส่งคืนการตอบกลับพร้อม id ที่ตรงกัน
| ช่อง | |
|---|---|
functionCalls[] |
เอาต์พุตเท่านั้น การเรียกใช้ฟังก์ชันที่จะดำเนินการ |
BidiGenerateContentToolCallCancellation
การแจ้งเตือนสำหรับลูกค้าว่าไม่ควรดำเนินการตาม ToolCallMessage ที่ออกก่อนหน้านี้ซึ่งมี id ที่ระบุ และควรยกเลิก หากการเรียกใช้เครื่องมือเหล่านั้นมีผลข้างเคียง ไคลเอ็นต์อาจพยายามเลิกทำการเรียกใช้เครื่องมือ ข้อความนี้จะปรากฏในกรณีที่ไคลเอ็นต์ขัดจังหวะการสลับเซิร์ฟเวอร์เท่านั้น
| ช่อง | |
|---|---|
ids[] |
เอาต์พุตเท่านั้น รหัสของการเรียกใช้เครื่องมือที่จะยกเลิก |
BidiGenerateContentToolResponse
การตอบกลับที่ไคลเอ็นต์สร้างขึ้นสำหรับ ToolCall ที่ได้รับจากเซิร์ฟเวอร์ ระบบจะจับคู่ออบเจ็กต์ FunctionResponse แต่ละรายการกับออบเจ็กต์ FunctionCall ที่เกี่ยวข้องตามฟิลด์ id
โปรดทราบว่าใน API ของ GenerateContent แบบเอกภาคและแบบสตรีมมิงฝั่งเซิร์ฟเวอร์ การเรียกใช้ฟังก์ชันจะเกิดขึ้นโดยการแลกเปลี่ยนส่วน Content ในขณะที่ใน API ของ GenerateContent แบบสองทิศทาง การเรียกใช้ฟังก์ชันจะเกิดขึ้นผ่านชุดข้อความเฉพาะเหล่านี้
| ช่อง | |
|---|---|
functionResponses[] |
ไม่บังคับ คำตอบของการเรียกใช้ฟังก์ชัน |
BidiGenerateContentTranscription
การถอดเสียง (อินพุตหรือเอาต์พุต)
| ช่อง | |
|---|---|
text |
ข้อความถอดเสียง |
languageCode |
รหัสภาษา BCP-47 ของการถอดเสียงเป็นคำ |
ContextWindowCompressionConfig
เปิดใช้การบีบอัดหน้าต่างบริบท ซึ่งเป็นกลไกในการจัดการหน้าต่างบริบทของโมเดลเพื่อไม่ให้เกินความยาวที่กำหนด
| ช่อง | |
|---|---|
ฟิลด์ Union compressionMechanism กลไกการบีบอัดหน้าต่างบริบทที่ใช้ compressionMechanism ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น |
|
slidingWindow |
กลไกหน้าต่างเลื่อน |
triggerTokens |
จำนวนโทเค็น (ก่อนเรียกใช้เทิร์น) ที่จำเป็นในการเรียกใช้การบีบอัดหน้าต่างบริบท ซึ่งใช้เพื่อปรับสมดุลคุณภาพกับเวลาในการตอบสนองได้ เนื่องจากหน้าต่างบริบทที่สั้นลงอาจส่งผลให้โมเดลตอบสนองได้เร็วขึ้น อย่างไรก็ตาม การดำเนินการบีบอัดจะทำให้เกิดความหน่วงชั่วคราว จึงไม่ควรเรียกใช้บ่อยๆ หากไม่ได้ตั้งค่าไว้ ค่าเริ่มต้นจะเป็น 80% ของขีดจำกัดหน้าต่างบริบทของโมเดล ซึ่งจะเหลือ 20% สำหรับคำขอของผู้ใช้/คำตอบของโมเดลในครั้งถัดไป |
EndSensitivity
กำหนดวิธีตรวจหาจุดสิ้นสุดของคำพูด
| Enum | |
|---|---|
END_SENSITIVITY_UNSPECIFIED |
ค่าเริ่มต้นคือ END_SENSITIVITY_HIGH |
END_SENSITIVITY_HIGH |
การตรวจหาอัตโนมัติจะสิ้นสุดคำพูดบ่อยขึ้น |
END_SENSITIVITY_LOW |
การตรวจหาอัตโนมัติจะทำให้การพูดสิ้นสุดลงน้อยลง |
GoAway
การแจ้งเตือนว่าเซิร์ฟเวอร์จะตัดการเชื่อมต่อในเร็วๆ นี้
| ช่อง | |
|---|---|
timeLeft |
เวลาที่เหลือก่อนที่ระบบจะสิ้นสุดการเชื่อมต่อจะเป็น ABORTED ระยะเวลานี้จะไม่น้อยกว่าระยะเวลาขั้นต่ำเฉพาะรุ่น ซึ่งจะระบุพร้อมกับขีดจำกัดอัตราสำหรับโมเดล |
HistoryConfig
การกำหนดค่าประวัติ
ข้อความนี้รวมอยู่ในการกำหนดค่าเซสชันเป็น BidiGenerateContentSetup.historyConfig กำหนดค่าการแลกเปลี่ยนข้อความประวัติ
| ช่อง | |
|---|---|
initialHistoryInClientContent |
ไม่บังคับ หากเป็นจริง หลังจากส่ง |
ProactivityConfig
การกำหนดค่าสำหรับฟีเจอร์การทำงานเชิงรุก
| ช่อง | |
|---|---|
proactiveAudio |
ไม่บังคับ หากเปิดใช้ โมเดลจะปฏิเสธการตอบกลับพรอมต์ล่าสุดได้ เช่น วิธีนี้ช่วยให้โมเดลสามารถละเว้นคำพูดที่ไม่อยู่ในบริบทหรือเงียบไว้หากผู้ใช้ยังไม่ได้ส่งคำขอ |
RealtimeInputConfig
กำหนดค่าลักษณะการทำงานของอินพุตแบบเรียลไทม์ใน BidiGenerateContent
| ช่อง | |
|---|---|
automaticActivityDetection |
ไม่บังคับ หากไม่ได้ตั้งค่าไว้ ระบบจะเปิดใช้การตรวจหากิจกรรมอัตโนมัติตามค่าเริ่มต้น หากปิดใช้การตรวจจับเสียงอัตโนมัติไว้ ไคลเอ็นต์จะต้องส่งสัญญาณกิจกรรม |
activityHandling |
ไม่บังคับ กำหนดผลกระทบของกิจกรรม |
turnCoverage |
ไม่บังคับ กำหนดว่าอินพุตใดจะรวมอยู่ในเทิร์นของผู้ใช้ |
SessionResumptionConfig
การกำหนดค่าการกลับมาใช้เซสชันต่อ
ข้อความนี้รวมอยู่ในการกำหนดค่าเซสชันเป็น BidiGenerateContentSetup.sessionResumption หากกำหนดค่าไว้ เซิร์ฟเวอร์จะส่งSessionResumptionUpdate
| ช่อง | |
|---|---|
handle |
แฮนเดิลของเซสชันก่อนหน้า หากไม่มี ระบบจะสร้างเซสชันใหม่ แฮนเดิลเซสชันมาจากค่า |
SessionResumptionUpdate
การอัปเดตสถานะการกลับมาใช้เซสชันต่อ
ระบบจะส่งเฉพาะในกรณีที่ตั้งค่า BidiGenerateContentSetup.sessionResumption ไว้
| ช่อง | |
|---|---|
newHandle |
แฮนเดิลใหม่ที่แสดงสถานะที่สามารถดำเนินการต่อได้ เว้นว่างไว้หาก |
resumable |
จริง หากเซสชันปัจจุบันกลับมาทำงานต่อได้ ณ จุดนี้ คุณไม่สามารถกลับมาใช้เซสชันต่อได้ในบางช่วง เช่น เมื่อโมเดลเรียกใช้ฟังก์ชันหรือสร้าง การกลับมาใช้เซสชันต่อ (โดยใช้โทเค็นของเซสชันก่อนหน้า) ในสถานะดังกล่าวจะทำให้ข้อมูลบางส่วนสูญหาย ในกรณีเหล่านี้ |
SlidingWindow
วิธีการ SlidingWindow จะทำงานโดยการทิ้งเนื้อหาที่จุดเริ่มต้นของหน้าต่างบริบท บริบทที่ได้จะเริ่มต้นที่จุดเริ่มต้นของเทิร์นบทบาท USER เสมอ คำสั่งของระบบและ 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 |
หากไม่ได้ระบุไว้ ระบบจะเลือกลักษณะการทำงานเริ่มต้นตามโมเดล เช่น สำหรับ Gemini 2.5 ค่าเริ่มต้นคือ TURN_INCLUDES_ONLY_ACTIVITY ส่วนสำหรับ Gemini 3.1 ขึ้นไป ค่าเริ่มต้นคือ TURN_INCLUDES_AUDIO_ACTIVITY_AND_ALL_VIDEO |
TURN_INCLUDES_ONLY_ACTIVITY |
รวมถึงกิจกรรมตั้งแต่รอบล่าสุด โดยไม่รวมการไม่มีการใช้งาน (เช่น ไม่มีเสียงในสตรีมเสียง) |
TURN_INCLUDES_ALL_INPUT |
รวมอินพุตแบบเรียลไทม์ทั้งหมดตั้งแต่รอบที่แล้ว รวมถึงการไม่มีการใช้งาน (เช่น ความเงียบในสตรีมเสียง) |
TURN_INCLUDES_AUDIO_ACTIVITY_AND_ALL_VIDEO |
รวมกิจกรรมเสียงและวิดีโอทั้งหมดตั้งแต่รอบที่แล้ว เมื่อใช้การตรวจหากิจกรรมอัตโนมัติ กิจกรรมเสียงหมายถึงคำพูดและไม่รวมช่วงเงียบ |
TranslationConfig
การกำหนดค่าสำหรับฟีเจอร์การแปล
| ช่อง | |
|---|---|
targetLanguageCode |
ต้องระบุ ภาษาเป้าหมายสำหรับการแปล ค่าที่รองรับคือรหัสภาษา BCP-47 (เช่น "en", "es", "fr") |
echoTargetLanguage |
ไม่บังคับ หากเป็นจริง โมเดลจะสร้างเสียงเมื่อมีการพูดภาษาเป้าหมาย ซึ่งโดยพื้นฐานแล้วจะเป็นการเลียนแบบอินพุต หากเป็นเท็จ เราจะไม่สร้างเสียงสำหรับภาษาเป้าหมาย |
UrlContextMetadata
ข้อมูลเมตาที่เกี่ยวข้องกับเครื่องมือดึงข้อมูลบริบท URL
| ช่อง | |
|---|---|
urlMetadata[] |
รายการบริบท URL |
UsageMetadata
ข้อมูลเมตาการใช้งานเกี่ยวกับคำตอบ
| ช่อง | |
|---|---|
promptTokenCount |
เอาต์พุตเท่านั้น จำนวนโทเค็นในพรอมต์ เมื่อตั้งค่า |
cachedContentTokenCount |
จำนวนโทเค็นในส่วนที่แคชของพรอมต์ (เนื้อหาที่แคช) |
responseTokenCount |
เอาต์พุตเท่านั้น จำนวนโทเค็นทั้งหมดในคำตอบที่สร้างขึ้นทั้งหมด |
toolUsePromptTokenCount |
เอาต์พุตเท่านั้น จำนวนโทเค็นที่อยู่ในพรอมต์การใช้เครื่องมือ |
thoughtsTokenCount |
เอาต์พุตเท่านั้น จำนวนโทเค็นของความคิดสำหรับโมเดลการคิด |
totalTokenCount |
เอาต์พุตเท่านั้น จำนวนโทเค็นทั้งหมดสำหรับคำขอสร้าง (พรอมต์ + คำตอบที่เป็นไปได้) |
promptTokensDetails[] |
เอาต์พุตเท่านั้น รายการรูปแบบที่ประมวลผลในอินพุตคำขอ |
cacheTokensDetails[] |
เอาต์พุตเท่านั้น รายการรูปแบบของเนื้อหาที่แคชไว้ในอินพุตคำขอ |
responseTokensDetails[] |
เอาต์พุตเท่านั้น รายการรูปแบบที่แสดงในการตอบกลับ |
toolUsePromptTokensDetails[] |
เอาต์พุตเท่านั้น รายการรูปแบบที่ประมวลผลสำหรับอินพุตคำขอการใช้เครื่องมือ |
โทเค็นการตรวจสอบสิทธิ์ชั่วคราว
คุณขอโทเค็นการตรวจสอบสิทธิ์ชั่วคราวได้โดยการเรียกใช้
AuthTokenService.CreateToken แล้วใช้กับ
GenerativeService.BidiGenerateContentConstrained โดยส่งโทเค็น
ในพารามิเตอร์การค้นหา access_token หรือในส่วนหัว HTTP Authorization โดยมีคำนำหน้า "Token"
CreateAuthTokenRequest
สร้างโทเค็นการตรวจสอบสิทธิ์ชั่วคราว
| ช่อง | |
|---|---|
authToken |
ต้องระบุ โทเค็นที่จะสร้าง |
AuthToken
คำขอสร้างโทเค็นการตรวจสอบสิทธิ์ชั่วคราว
| ช่อง | |
|---|---|
name |
เอาต์พุตเท่านั้น ตัวระบุ โทเค็นเอง |
expireTime |
ไม่บังคับ อินพุตเท่านั้น เปลี่ยนแปลงไม่ได้ เวลาที่ไม่บังคับหลังจากนั้น เมื่อใช้โทเค็นที่ได้ ระบบจะปฏิเสธข้อความในเซสชัน BidiGenerateContent (Gemini อาจปิดเซสชันก่อนเวลาหลังจากผ่านไป 1 ชั่วโมง) หากไม่ได้ตั้งค่าไว้ ระบบจะใช้ค่าเริ่มต้นเป็น 30 นาทีในอนาคต หากมีการตั้งค่านี้แล้ว ค่าดังกล่าวต้องน้อยกว่า 20 ชั่วโมงในอนาคต |
newSessionExpireTime |
ไม่บังคับ อินพุตเท่านั้น เปลี่ยนแปลงไม่ได้ เวลาหลังจากนั้นระบบจะปฏิเสธเซสชัน Live API ใหม่ที่ใช้โทเค็นซึ่งเป็นผลมาจากคำขอนี้ หากไม่ได้ตั้งค่าไว้ ในอนาคตค่าเริ่มต้นจะเป็น 60 วินาที หากมีการตั้งค่านี้แล้ว ค่าดังกล่าวต้องน้อยกว่า 20 ชั่วโมงในอนาคต |
fieldMask |
ไม่บังคับ อินพุตเท่านั้น เปลี่ยนแปลงไม่ได้ หาก field_mask ว่างเปล่าและไม่มี หาก field_mask ว่างเปล่าและมี หาก field_mask ไม่ว่างเปล่า ฟิลด์ที่เกี่ยวข้องจาก |
ฟิลด์ Union config การกำหนดค่าเฉพาะวิธีการสำหรับโทเค็นที่ได้ config ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น |
|
bidiGenerateContentSetup |
ไม่บังคับ อินพุตเท่านั้น เปลี่ยนแปลงไม่ได้ การกำหนดค่าเฉพาะสำหรับ |
uses |
ไม่บังคับ อินพุตเท่านั้น เปลี่ยนแปลงไม่ได้ จำนวนครั้งที่ใช้โทเค็นได้ หากค่านี้เป็น 0 แสดงว่าไม่มีการจำกัด การกลับมาใช้เซสชัน Live API อีกครั้งจะไม่นับเป็นการใช้งาน หากไม่ระบุ ระบบจะใช้ 1 เป็นค่าเริ่มต้น |
ข้อมูลเพิ่มเติมเกี่ยวกับประเภทที่พบบ่อย
ดูข้อมูลเพิ่มเติมเกี่ยวกับประเภททรัพยากร API ที่ใช้กันโดยทั่วไป Blob,
Content, FunctionCall, FunctionResponse, GenerationConfig,
GroundingMetadata, ModalityTokenCount และ Tool ได้ที่
การสร้างเนื้อหา