Live API - WebSockets API reference

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

bool

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

startOfSpeechSensitivity

StartSensitivity

ไม่บังคับ กำหนดความเป็นไปได้ที่จะตรวจจับคำพูด

prefixPaddingMs

int32

ไม่บังคับ ระยะเวลาที่ต้องมีของคำพูดที่ตรวจพบก่อนที่จะมีการคอมมิตการเริ่มต้นของคำพูด ยิ่งค่านี้ต่ำเท่าใด การตรวจจับจุดเริ่มต้นของคำพูดก็จะยิ่งไวขึ้นและระบบจะจดจำคำพูดที่สั้นลงได้ อย่างไรก็ตาม วิธีนี้ยังเพิ่มโอกาสเกิดผลบวกลวงด้วย

endOfSpeechSensitivity

EndSensitivity

ไม่บังคับ กำหนดความเป็นไปได้ที่คำพูดที่ตรวจพบจะสิ้นสุด

silenceDurationMs

int32

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

BidiGenerateContentClientContent

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

ข้อความที่นี่จะขัดจังหวะการสร้างโมเดลปัจจุบัน

ช่อง
turns[]

Content

ไม่บังคับ เนื้อหาที่ต่อท้ายการสนทนาปัจจุบันกับโมเดล

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

turnComplete

bool

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

BidiGenerateContentRealtimeInput

ข้อมูลที่ผู้ใช้ป้อนซึ่งส่งแบบเรียลไทม์

ระบบจะจัดการรูปแบบต่างๆ (เสียง วิดีโอ และข้อความ) เป็นสตรีมพร้อมกัน เราไม่รับประกันว่าสตรีมเหล่านี้จะเรียงตามลำดับ

ซึ่งแตกต่างจาก BidiGenerateContentClientContent ในหลายๆ ด้าน ดังนี้

  • ส่งได้อย่างต่อเนื่องโดยไม่หยุดชะงักในการสร้างโมเดล
  • หากจำเป็นต้องผสมข้อมูลที่สลับกันระหว่าง BidiGenerateContentClientContent กับ BidiGenerateContentRealtimeInput เซิร์ฟเวอร์จะพยายามเพิ่มประสิทธิภาพเพื่อให้ได้การตอบสนองที่ดีที่สุด แต่ไม่มีการรับประกัน
  • ระบบไม่ได้ระบุจุดสิ้นสุดของเทิร์นอย่างชัดเจน แต่จะพิจารณาจากกิจกรรมของผู้ใช้ (เช่น สิ้นสุดการพูด)
  • แม้จะยังไม่ถึงจุดสิ้นสุดของรอบ แต่ระบบจะประมวลผลข้อมูลทีละส่วนเพื่อเพิ่มประสิทธิภาพให้โมเดลเริ่มตอบได้อย่างรวดเร็ว
ช่อง
mediaChunks[]

Blob

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

เลิกใช้งานแล้ว: ใช้ audio, video หรือ text แทน

audio

Blob

ไม่บังคับ ซึ่งจะสร้างสตรีมอินพุตเสียงแบบเรียลไทม์

video

Blob

ไม่บังคับ ซึ่งจะสร้างสตรีมอินพุตวิดีโอแบบเรียลไทม์

activityStart

ActivityStart

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

activityEnd

ActivityEnd

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

audioStreamEnd

bool

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

ควรส่งเฉพาะเมื่อเปิดใช้การตรวจหากิจกรรมอัตโนมัติ (ซึ่งเป็นค่าเริ่มต้น)

ไคลเอ็นต์สามารถเปิดสตรีมอีกครั้งได้โดยส่งข้อความเสียง

text

string

ไม่บังคับ ซึ่งจะสร้างสตรีมอินพุตข้อความแบบเรียลไทม์

BidiGenerateContentServerContent

การอัปเดตเซิร์ฟเวอร์ที่เพิ่มขึ้นซึ่งโมเดลสร้างขึ้นเพื่อตอบกลับข้อความของไคลเอ็นต์

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

ช่อง
generationComplete

bool

เอาต์พุตเท่านั้น หากเป็นจริง แสดงว่าโมเดลสร้างเสร็จแล้ว

เมื่อโมเดลถูกขัดจังหวะขณะสร้างข้อความ จะไม่มีข้อความ "generation_complete" ในเทิร์นที่ถูกขัดจังหวะ แต่จะผ่าน "interrupted > turn_complete"

เมื่อโมเดลถือว่าเป็นการเล่นแบบเรียลไทม์ จะมีความล่าช้าระหว่าง generation_complete กับ turn_complete ซึ่งเกิดจากโมเดลรอให้การเล่นเสร็จสิ้น

turnComplete

bool

เอาต์พุตเท่านั้น หากเป็นจริง แสดงว่าโมเดลได้ดำเนินการในเทิร์นของตนเสร็จแล้ว การสร้างจะเริ่มขึ้นเมื่อได้รับข้อความเพิ่มเติมจากไคลเอ็นต์เท่านั้น

interrupted

bool

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

groundingMetadata

GroundingMetadata

เอาต์พุตเท่านั้น การอ้างอิงข้อมูลเมตาสำหรับเนื้อหาที่สร้างขึ้น

inputTranscription

BidiGenerateContentTranscription

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

outputTranscription

BidiGenerateContentTranscription

เอาต์พุตเท่านั้น เอาต์พุตการถอดเสียงเป็นคำ ระบบจะส่งการถอดเสียงเป็นคำแยกจากข้อความเซิร์ฟเวอร์อื่นๆ และไม่มีการรับประกันลำดับ โดยเฉพาะระหว่าง serverContent กับ outputTranscription นี้

urlContextMetadata

UrlContextMetadata

modelTurn

Content

เอาต์พุตเท่านั้น เนื้อหาที่โมเดลสร้างขึ้นเป็นส่วนหนึ่งของการสนทนากับผู้ใช้ในปัจจุบัน

BidiGenerateContentServerMessage

ข้อความตอบกลับสำหรับการเรียก BidiGenerateContent

ช่อง
usageMetadata

UsageMetadata

เอาต์พุตเท่านั้น ข้อมูลเมตาการใช้งานเกี่ยวกับคำตอบ

ฟิลด์ Union messageType ประเภทของข้อความ messageType ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
setupComplete

BidiGenerateContentSetupComplete

เอาต์พุตเท่านั้น ส่งเพื่อตอบกลับข้อความ BidiGenerateContentSetup จากไคลเอ็นต์เมื่อการตั้งค่าเสร็จสมบูรณ์

serverContent

BidiGenerateContentServerContent

เอาต์พุตเท่านั้น เนื้อหาที่โมเดลสร้างขึ้นเพื่อตอบกลับข้อความของไคลเอ็นต์

toolCall

BidiGenerateContentToolCall

เอาต์พุตเท่านั้น ขอให้ไคลเอ็นต์ดำเนินการ functionCalls และส่งคืนการตอบกลับพร้อม id ที่ตรงกัน

toolCallCancellation

BidiGenerateContentToolCallCancellation

เอาต์พุตเท่านั้น การแจ้งเตือนสำหรับไคลเอ็นต์ว่าควรยกเลิก ToolCallMessage ที่ออกก่อนหน้านี้ซึ่งมี id ที่ระบุ

goAway

GoAway

เอาต์พุตเท่านั้น การแจ้งเตือนว่าเซิร์ฟเวอร์จะตัดการเชื่อมต่อในเร็วๆ นี้

sessionResumptionUpdate

SessionResumptionUpdate

เอาต์พุตเท่านั้น อัปเดตสถานะการกลับมาใช้เซสชันต่อ

BidiGenerateContentSetup

ข้อความที่จะส่งในBidiGenerateContentClientMessageแรก (และBidiGenerateContentClientMessageแรกเท่านั้น) มีการกำหนดค่าที่จะใช้ตลอดระยะเวลาของ RPC การสตรีม

ไคลเอ็นต์ควรรอข้อความ BidiGenerateContentSetupComplete ก่อนส่งข้อความเพิ่มเติม

ช่อง
model

string

ต้องระบุ ชื่อทรัพยากรของโมเดล ซึ่งจะใช้เป็นรหัสให้โมเดลใช้

รูปแบบ: models/{model}

generationConfig

GenerationConfig

ไม่บังคับ การกำหนดค่าการสร้าง

ระบบไม่รองรับฟิลด์ต่อไปนี้

  • responseLogprobs
  • responseMimeType
  • logprobs
  • responseSchema
  • stopSequence
  • routingConfig
  • audioTimestamp
systemInstruction

Content

ไม่บังคับ ผู้ใช้ได้ให้คำสั่งของระบบสำหรับโมเดล

หมายเหตุ: ควรใช้ข้อความเท่านั้นในแต่ละส่วน และเนื้อหาในแต่ละส่วนจะอยู่ในย่อหน้าแยกกัน

tools[]

Tool

ไม่บังคับ รายการToolsที่โมเดลอาจใช้เพื่อสร้างคำตอบถัดไป

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

realtimeInputConfig

RealtimeInputConfig

ไม่บังคับ กำหนดค่าการจัดการอินพุตแบบเรียลไทม์

sessionResumption

SessionResumptionConfig

ไม่บังคับ กำหนดค่ากลไกการกลับมาใช้เซสชันต่อ

หากระบุไว้ เซิร์ฟเวอร์จะส่งSessionResumptionUpdate

contextWindowCompression

ContextWindowCompressionConfig

ไม่บังคับ กำหนดค่ากลไกการบีบอัดหน้าต่างบริบท

หากรวมไว้ เซิร์ฟเวอร์จะลดขนาดบริบทโดยอัตโนมัติเมื่อมีความยาวเกินความยาวที่กำหนดค่าไว้

inputAudioTranscription

AudioTranscriptionConfig

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

outputAudioTranscription

AudioTranscriptionConfig

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

proactivity

ProactivityConfig

ไม่บังคับ กำหนดค่าความสามารถในการคาดการณ์ของโมเดล

ซึ่งช่วยให้โมเดลตอบสนองต่ออินพุตได้อย่างรวดเร็วและไม่ต้องสนใจอินพุตที่ไม่เกี่ยวข้อง

BidiGenerateContentSetupComplete

ประเภทนี้ไม่มีฟิลด์

ส่งเพื่อตอบกลับข้อความ BidiGenerateContentSetup จากไคลเอ็นต์

BidiGenerateContentToolCall

ขอให้ไคลเอ็นต์ดำเนินการ functionCalls และส่งคืนการตอบกลับพร้อม id ที่ตรงกัน

ช่อง
functionCalls[]

FunctionCall

เอาต์พุตเท่านั้น การเรียกใช้ฟังก์ชันที่จะดำเนินการ

BidiGenerateContentToolCallCancellation

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

ช่อง
ids[]

string

เอาต์พุตเท่านั้น รหัสของการเรียกใช้เครื่องมือที่จะยกเลิก

BidiGenerateContentToolResponse

การตอบกลับที่ไคลเอ็นต์สร้างขึ้นสำหรับ ToolCall ที่ได้รับจากเซิร์ฟเวอร์ ระบบจะจับคู่ออบเจ็กต์ FunctionResponse แต่ละรายการกับออบเจ็กต์ FunctionCall ที่เกี่ยวข้องตามฟิลด์ id

โปรดทราบว่าในฟังก์ชันการเรียกใช้ GenerateContent API แบบเอกภาคและแบบสตรีมมิงฝั่งเซิร์ฟเวอร์จะเกิดขึ้นโดยการแลกเปลี่ยนส่วน Content ในขณะที่ในฟังก์ชันการเรียกใช้ GenerateContent API แบบสองทิศทางจะเกิดขึ้นผ่านชุดข้อความเฉพาะเหล่านี้

ช่อง
functionResponses[]

FunctionResponse

ไม่บังคับ การตอบกลับการเรียกใช้ฟังก์ชัน

BidiGenerateContentTranscription

การถอดเสียงเป็นคำ (อินพุตหรือเอาต์พุต)

ช่อง
text

string

ข้อความถอดเสียง

ContextWindowCompressionConfig

เปิดใช้การบีบอัดหน้าต่างบริบท ซึ่งเป็นกลไกในการจัดการหน้าต่างบริบทของโมเดลเพื่อไม่ให้เกินความยาวที่กำหนด

ช่อง
ฟิลด์ Union compressionMechanism กลไกการบีบอัดหน้าต่างบริบทที่ใช้ compressionMechanism ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
slidingWindow

SlidingWindow

กลไกหน้าต่างเลื่อน

triggerTokens

int64

จำนวนโทเค็น (ก่อนเรียกใช้เทิร์น) ที่จำเป็นในการเรียกใช้การบีบอัดหน้าต่างบริบท

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

หากไม่ได้ตั้งค่า ระบบจะใช้ค่าเริ่มต้นเป็น 80% ของขีดจำกัดหน้าต่างบริบทของโมเดล ซึ่งจะเหลือ 20% สำหรับคำขอของผู้ใช้/คำตอบของโมเดลรายถัดไป

EndSensitivity

กำหนดวิธีตรวจหาจุดสิ้นสุดของคำพูด

Enum
END_SENSITIVITY_UNSPECIFIED ค่าเริ่มต้นคือ END_SENSITIVITY_HIGH
END_SENSITIVITY_HIGH การตรวจหาอัตโนมัติจะสิ้นสุดคำพูดบ่อยขึ้น
END_SENSITIVITY_LOW การตรวจหาอัตโนมัติจะทำให้เสียงพูดสิ้นสุดลงน้อยลง

GoAway

การแจ้งเตือนว่าเซิร์ฟเวอร์จะตัดการเชื่อมต่อในเร็วๆ นี้

ช่อง
timeLeft

Duration

เวลาที่เหลือก่อนที่ระบบจะสิ้นสุดการเชื่อมต่อจะเป็น ABORTED

ระยะเวลานี้จะไม่น้อยกว่าระยะเวลาขั้นต่ำเฉพาะโมเดล ซึ่งจะระบุพร้อมกับโควต้าสำหรับโมเดล

ProactivityConfig

การกำหนดค่าสำหรับฟีเจอร์การทำงานเชิงรุก

ช่อง
proactiveAudio

bool

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

RealtimeInputConfig

กำหนดค่าลักษณะการทำงานของอินพุตแบบเรียลไทม์ใน BidiGenerateContent

ช่อง
automaticActivityDetection

AutomaticActivityDetection

ไม่บังคับ หากไม่ได้ตั้งค่าไว้ ระบบจะเปิดใช้การตรวจหากิจกรรมอัตโนมัติโดยค่าเริ่มต้น หากปิดใช้การตรวจจับเสียงอัตโนมัติไว้ ไคลเอ็นต์จะต้องส่งสัญญาณกิจกรรม

activityHandling

ActivityHandling

ไม่บังคับ กำหนดผลกระทบของกิจกรรม

turnCoverage

TurnCoverage

ไม่บังคับ กำหนดว่าอินพุตใดจะรวมอยู่ในเทิร์นของผู้ใช้

SessionResumptionConfig

การกำหนดค่าการกลับมาใช้เซสชันต่อ

ข้อความนี้รวมอยู่ในการกำหนดค่าเซสชันเป็น BidiGenerateContentSetup.sessionResumption หากกำหนดค่าไว้ เซิร์ฟเวอร์จะส่งข้อความ SessionResumptionUpdate

ช่อง
handle

string

แฮนเดิลของเซสชันก่อนหน้า หากไม่มี ระบบจะสร้างเซสชันใหม่

แฮนเดิลเซสชันมาจากค่า SessionResumptionUpdate.token ในการเชื่อมต่อก่อนหน้า

SessionResumptionUpdate

อัปเดตสถานะการกลับมาใช้เซสชันต่อ

ระบบจะส่งเฉพาะในกรณีที่ตั้งค่า BidiGenerateContentSetup.sessionResumption ไว้

ช่อง
newHandle

string

แฮนเดิลใหม่ที่แสดงสถานะที่สามารถกลับมาทำงานต่อได้ เว้นว่างไว้หาก resumable=false

resumable

bool

จริง หากเซสชันปัจจุบันกลับมาทำงานต่อได้ ณ จุดนี้

คุณไม่สามารถกลับมาใช้เซสชันต่อได้ในบางช่วง เช่น เมื่อโมเดลเรียกใช้ฟังก์ชันหรือสร้าง การกลับมาใช้เซสชันต่อ (ใช้โทเค็นเซสชันก่อนหน้า) ในสถานะดังกล่าวจะทําให้ข้อมูลบางอย่างสูญหาย ในกรณีเหล่านี้ newHandle จะว่างเปล่าและ resumable จะเป็นเท็จ

SlidingWindow

วิธี SlidingWindow ทำงานโดยการทิ้งเนื้อหาที่จุดเริ่มต้นของหน้าต่างบริบท บริบทที่ได้จะเริ่มต้นที่จุดเริ่มต้นของเทิร์นบทบาท USER เสมอ คำสั่งของระบบและ BidiGenerateContentSetup.prefixTurns จะยังคงอยู่ที่จุดเริ่มต้นของผลลัพธ์เสมอ

ช่อง
targetTokens

int64

จำนวนโทเค็นเป้าหมายที่จะเก็บไว้ ค่าเริ่มต้นคือ 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[]

UrlMetadata

รายการบริบท URL

UsageMetadata

ข้อมูลเมตาการใช้งานเกี่ยวกับคำตอบ

ช่อง
promptTokenCount

int32

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

cachedContentTokenCount

int32

จำนวนโทเค็นในส่วนที่แคชของพรอมต์ (เนื้อหาที่แคช)

responseTokenCount

int32

เอาต์พุตเท่านั้น จำนวนโทเค็นทั้งหมดในตัวเลือกคำตอบที่สร้างขึ้นทั้งหมด

toolUsePromptTokenCount

int32

เอาต์พุตเท่านั้น จำนวนโทเค็นที่อยู่ในพรอมต์การใช้เครื่องมือ

thoughtsTokenCount

int32

เอาต์พุตเท่านั้น จำนวนโทเค็นของความคิดสำหรับโมเดลการคิด

totalTokenCount

int32

เอาต์พุตเท่านั้น จำนวนโทเค็นทั้งหมดสำหรับคำขอการสร้าง (พรอมต์ + ตัวเลือกคำตอบ)

promptTokensDetails[]

ModalityTokenCount

เอาต์พุตเท่านั้น รายการรูปแบบที่ประมวลผลในอินพุตคำขอ

cacheTokensDetails[]

ModalityTokenCount

เอาต์พุตเท่านั้น รายการรูปแบบของเนื้อหาที่แคชไว้ในอินพุตคำขอ

responseTokensDetails[]

ModalityTokenCount

เอาต์พุตเท่านั้น รายการรูปแบบที่แสดงในการตอบกลับ

toolUsePromptTokensDetails[]

ModalityTokenCount

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

โทเค็นการตรวจสอบสิทธิ์ชั่วคราว

คุณขอโทเค็นการตรวจสอบสิทธิ์ชั่วคราวได้โดยการเรียกใช้ AuthTokenService.CreateToken จากนั้นใช้กับ GenerativeService.BidiGenerateContentConstrained โดยส่งโทเค็น ในพารามิเตอร์การค้นหา access_token หรือในส่วนหัว HTTP Authorization โดยมีคำนำหน้า "Token"

CreateAuthTokenRequest

สร้างโทเค็นการตรวจสอบสิทธิ์ชั่วคราว

ช่อง
authToken

AuthToken

ต้องระบุ โทเค็นที่จะสร้าง

AuthToken

คำขอสร้างโทเค็นการตรวจสอบสิทธิ์ชั่วคราว

ช่อง
name

string

เอาต์พุตเท่านั้น ตัวระบุ โทเค็นเอง

expireTime

Timestamp

ไม่บังคับ อินพุตเท่านั้น เปลี่ยนแปลงไม่ได้ เวลาที่ไม่บังคับหลังจากนั้น เมื่อใช้โทเค็นที่ได้ ระบบจะปฏิเสธข้อความในเซสชัน BidiGenerateContent (Gemini อาจปิดเซสชันก่อนเวลาหลังจากผ่านไปแล้ว)

หากไม่ได้ตั้งค่าไว้ ระบบจะใช้ค่าเริ่มต้นเป็น 30 นาทีในอนาคต หากมีการตั้งค่านี้แล้ว ค่าดังกล่าวต้องน้อยกว่า 20 ชั่วโมงในอนาคต

newSessionExpireTime

Timestamp

ไม่บังคับ อินพุตเท่านั้น เปลี่ยนแปลงไม่ได้ เวลาหลังจากนั้นระบบจะปฏิเสธเซสชัน Live API ใหม่ที่ใช้โทเค็นซึ่งเป็นผลจากคำขอนี้

หากไม่ได้ตั้งค่าไว้ ในอนาคตค่าเริ่มต้นจะเป็น 60 วินาที หากมีการตั้งค่านี้แล้ว ค่าดังกล่าวต้องน้อยกว่า 20 ชั่วโมงในอนาคต

fieldMask

FieldMask

ไม่บังคับ อินพุตเท่านั้น เปลี่ยนแปลงไม่ได้ หาก field_mask ว่างเปล่าและไม่มี bidiGenerateContentSetup ระบบจะนำข้อความ BidiGenerateContentSetup ที่มีผลบังคับใช้มาจากการเชื่อมต่อ Live API

หาก field_mask ว่างเปล่าและมี bidiGenerateContentSetup is อยู่ ระบบจะนำข้อความ BidiGenerateContentSetup ที่มีผลมาจาก bidiGenerateContentSetup ในคำขอนี้ทั้งหมด ระบบจะไม่สนใจข้อความการตั้งค่าจากการเชื่อมต่อ Live API

หาก field_mask ไม่ว่างเปล่า ฟิลด์ที่เกี่ยวข้องจาก bidiGenerateContentSetup จะเขียนทับฟิลด์จากข้อความการตั้งค่าในการเชื่อมต่อ Live API

ฟิลด์ Union config การกำหนดค่าเฉพาะวิธีการสำหรับโทเค็นที่ได้ config ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
bidiGenerateContentSetup

BidiGenerateContentSetup

ไม่บังคับ อินพุตเท่านั้น เปลี่ยนแปลงไม่ได้ การกำหนดค่าเฉพาะสำหรับ BidiGenerateContent

uses

int32

ไม่บังคับ อินพุตเท่านั้น เปลี่ยนแปลงไม่ได้ จำนวนครั้งที่ใช้โทเค็นได้ หากค่านี้เป็น 0 แสดงว่าไม่มีการจำกัด การกลับมาใช้เซสชัน Live API อีกครั้งจะไม่นับเป็นการใช้งาน หากไม่ได้ระบุไว้ ระบบจะใช้ 1 เป็นค่าเริ่มต้น

ข้อมูลเพิ่มเติมเกี่ยวกับประเภทที่พบบ่อย

ดูข้อมูลเพิ่มเติมเกี่ยวกับประเภททรัพยากร API ที่ใช้กันโดยทั่วไป Blob, Content, FunctionCall, FunctionResponse, GenerationConfig, GroundingMetadata, ModalityTokenCount และ Tool ได้ที่ การสร้างเนื้อหา