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
},
"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 แต่จะรวมฟิลด์อื่นๆ จากข้อความ BidiGenerateContentServerMessage
เพียง 1 รายการ (ระบบไม่ได้แสดงmessageTypeยูเนียนใน 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 |
เอาต์พุตเท่านั้น การอ้างอิงข้อมูลเมตาสำหรับเนื้อหาที่สร้างขึ้น |
inputTranscription |
เอาต์พุตเท่านั้น ป้อนข้อความถอดเสียง ระบบจะส่งการถอดเสียงเป็นคำแยกจากข้อความเซิร์ฟเวอร์อื่นๆ และไม่มีการรับประกันลำดับ |
outputTranscription |
เอาต์พุตเท่านั้น เอาต์พุตการถอดเสียงเป็นคำ ระบบจะส่งการถอดเสียงเป็นคำแยกจากข้อความเซิร์ฟเวอร์อื่นๆ และไม่มีการรับประกันลำดับ โดยเฉพาะระหว่าง |
urlContextMetadata |
|
modelTurn |
เอาต์พุตเท่านั้น เนื้อหาที่โมเดลสร้างขึ้นเป็นส่วนหนึ่งของการสนทนากับผู้ใช้ในปัจจุบัน |
BidiGenerateContentServerMessage
ข้อความตอบกลับสำหรับการเรียก BidiGenerateContent
| ช่อง | |
|---|---|
usageMetadata |
เอาต์พุตเท่านั้น ข้อมูลเมตาการใช้งานเกี่ยวกับคำตอบ |
ฟิลด์ Union messageType ประเภทของข้อความ messageType ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น |
|
setupComplete |
เอาต์พุตเท่านั้น ส่งเพื่อตอบกลับข้อความ |
serverContent |
เอาต์พุตเท่านั้น เนื้อหาที่โมเดลสร้างขึ้นเพื่อตอบกลับข้อความของไคลเอ็นต์ |
toolCall |
เอาต์พุตเท่านั้น ขอให้ไคลเอ็นต์ดำเนินการ |
toolCallCancellation |
เอาต์พุตเท่านั้น การแจ้งเตือนสำหรับไคลเอ็นต์ว่าควรยกเลิก |
goAway |
เอาต์พุตเท่านั้น การแจ้งเตือนว่าเซิร์ฟเวอร์จะตัดการเชื่อมต่อในเร็วๆ นี้ |
sessionResumptionUpdate |
เอาต์พุตเท่านั้น อัปเดตสถานะการกลับมาใช้เซสชันต่อ |
BidiGenerateContentSetup
ข้อความที่จะส่งในBidiGenerateContentClientMessageแรก (และBidiGenerateContentClientMessageแรกเท่านั้น) มีการกำหนดค่าที่จะใช้ตลอดระยะเวลาของ RPC การสตรีม
ไคลเอ็นต์ควรรอข้อความ BidiGenerateContentSetupComplete ก่อนส่งข้อความเพิ่มเติม
| ช่อง | |
|---|---|
model |
ต้องระบุ ชื่อทรัพยากรของโมเดล ซึ่งจะใช้เป็นรหัสให้โมเดลใช้ รูปแบบ: |
generationConfig |
ไม่บังคับ การกำหนดค่าการสร้าง ระบบไม่รองรับฟิลด์ต่อไปนี้
|
systemInstruction |
ไม่บังคับ ผู้ใช้ได้ให้คำสั่งของระบบสำหรับโมเดล หมายเหตุ: ควรใช้ข้อความเท่านั้นในแต่ละส่วน และเนื้อหาในแต่ละส่วนจะอยู่ในย่อหน้าแยกกัน |
tools[] |
ไม่บังคับ รายการ
|
realtimeInputConfig |
ไม่บังคับ กำหนดค่าการจัดการอินพุตแบบเรียลไทม์ |
sessionResumption |
ไม่บังคับ กำหนดค่ากลไกการกลับมาใช้เซสชันต่อ หากระบุไว้ เซิร์ฟเวอร์จะส่ง |
contextWindowCompression |
ไม่บังคับ กำหนดค่ากลไกการบีบอัดหน้าต่างบริบท หากรวมไว้ เซิร์ฟเวอร์จะลดขนาดบริบทโดยอัตโนมัติเมื่อมีความยาวเกินความยาวที่กำหนดค่าไว้ |
inputAudioTranscription |
ไม่บังคับ หากตั้งค่าไว้ จะเปิดใช้การถอดเสียงของอินพุตเสียง การถอดเสียงเป็นคำจะสอดคล้องกับภาษาของเสียงที่ป้อน หากมีการกำหนดค่า |
outputAudioTranscription |
ไม่บังคับ หากตั้งค่าไว้ จะเปิดใช้การถอดเสียงเป็นคำของเอาต์พุตเสียงของโมเดล การถอดเสียงจะสอดคล้องกับรหัสภาษาที่ระบุสำหรับเสียงเอาต์พุต หากมีการกำหนดค่า |
proactivity |
ไม่บังคับ กำหนดค่าความสามารถในการคาดการณ์ของโมเดล ซึ่งช่วยให้โมเดลตอบสนองต่ออินพุตได้อย่างรวดเร็วและไม่ต้องสนใจอินพุตที่ไม่เกี่ยวข้อง |
BidiGenerateContentSetupComplete
ประเภทนี้ไม่มีฟิลด์
ส่งเพื่อตอบกลับข้อความ BidiGenerateContentSetup จากไคลเอ็นต์
BidiGenerateContentToolCall
ขอให้ไคลเอ็นต์ดำเนินการ functionCalls และส่งคืนการตอบกลับพร้อม id ที่ตรงกัน
| ช่อง | |
|---|---|
functionCalls[] |
เอาต์พุตเท่านั้น การเรียกใช้ฟังก์ชันที่จะดำเนินการ |
BidiGenerateContentToolCallCancellation
การแจ้งเตือนสำหรับไคลเอ็นต์ว่าไม่ควรดำเนินการตามToolCallMessageที่ออกก่อนหน้านี้ซึ่งมีidที่ระบุ และควรยกเลิก หากการเรียกใช้เครื่องมือเหล่านั้นมีผลข้างเคียง ไคลเอ็นต์อาจพยายามยกเลิกการเรียกใช้เครื่องมือ ข้อความนี้จะปรากฏในกรณีที่ไคลเอ็นต์ขัดจังหวะการตอบกลับของเซิร์ฟเวอร์เท่านั้น
| ช่อง | |
|---|---|
ids[] |
เอาต์พุตเท่านั้น รหัสของการเรียกใช้เครื่องมือที่จะยกเลิก |
BidiGenerateContentToolResponse
การตอบกลับที่ไคลเอ็นต์สร้างขึ้นสำหรับ ToolCall ที่ได้รับจากเซิร์ฟเวอร์ ระบบจะจับคู่ออบเจ็กต์ FunctionResponse แต่ละรายการกับออบเจ็กต์ FunctionCall ที่เกี่ยวข้องตามฟิลด์ id
โปรดทราบว่าในฟังก์ชันการเรียกใช้ GenerateContent API แบบเอกภาคและแบบสตรีมมิงฝั่งเซิร์ฟเวอร์จะเกิดขึ้นโดยการแลกเปลี่ยนส่วน Content ในขณะที่ในฟังก์ชันการเรียกใช้ GenerateContent API แบบสองทิศทางจะเกิดขึ้นผ่านชุดข้อความเฉพาะเหล่านี้
| ช่อง | |
|---|---|
functionResponses[] |
ไม่บังคับ การตอบกลับการเรียกใช้ฟังก์ชัน |
BidiGenerateContentTranscription
การถอดเสียงเป็นคำ (อินพุตหรือเอาต์พุต)
| ช่อง | |
|---|---|
text |
ข้อความถอดเสียง |
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 ระยะเวลานี้จะไม่น้อยกว่าระยะเวลาขั้นต่ำเฉพาะโมเดล ซึ่งจะระบุพร้อมกับโควต้าสำหรับโมเดล |
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 |
หากไม่ได้ระบุ ลักษณะการทำงานเริ่มต้นจะเป็น TURN_INCLUDES_ONLY_ACTIVITY |
TURN_INCLUDES_ONLY_ACTIVITY |
โดยการพูดของผู้ใช้จะรวมเฉพาะกิจกรรมตั้งแต่การพูดครั้งล่าสุด ไม่รวมการไม่ได้พูด (เช่น ความเงียบในสตรีมเสียง) นี่คือลักษณะการทำงานเริ่มต้น |
TURN_INCLUDES_ALL_INPUT |
เทิร์นของผู้ใช้จะรวมอินพุตแบบเรียลไทม์ทั้งหมดตั้งแต่เทิร์นล่าสุด รวมถึงการไม่ได้ใช้งาน (เช่น ไม่มีเสียงในสตรีมเสียง) |
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 อาจปิดเซสชันก่อนเวลาหลังจากผ่านไปแล้ว) หากไม่ได้ตั้งค่าไว้ ระบบจะใช้ค่าเริ่มต้นเป็น 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 ได้ที่
การสร้างเนื้อหา