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

การกําหนดค่าเซสชัน

ข้อความเริ่มต้นหลังจากการเชื่อมต่อจะตั้งค่าการกําหนดค่าเซสชัน ซึ่งรวมถึงรูปแบบ พารามิเตอร์การสร้าง วิธีการของระบบ และเครื่องมือ

คุณสามารถเปลี่ยนพารามิเตอร์การกําหนดค่าได้ ยกเว้นรูปแบบในระหว่างเซสชัน

ดูตัวอย่างการกําหนดค่าต่อไปนี้ โปรดทราบว่ารูปแบบตัวพิมพ์ของชื่อใน 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

bool

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

startOfSpeechSensitivity

StartSensitivity

ไม่บังคับ กำหนดแนวโน้มที่ระบบจะตรวจจับคำพูด

prefixPaddingMs

int32

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

endOfSpeechSensitivity

EndSensitivity

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

silenceDurationMs

int32

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

BidiGenerateContentClientContent

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

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

ช่อง
turns[]

Content

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

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

turnComplete

bool

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

BidiGenerateContentRealtimeInput

อินพุตของผู้ใช้ที่ส่งแบบเรียลไทม์

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

ซึ่งแตกต่างจาก BidiGenerateContentClientContent ตรงจุดต่อไปนี้

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

Blob

ไม่บังคับ ข้อมูลไบต์ที่ฝังอยู่สําหรับอินพุตสื่อ ระบบไม่รองรับ mediaChunks หลายรายการ ระบบจะละเว้น 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

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

outputTranscription

BidiGenerateContentTranscription

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

modelTurn

Content

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

BidiGenerateContentServerMessage

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

ช่อง
usageMetadata

UsageMetadata

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

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

BidiGenerateContentSetupComplete

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

serverContent

BidiGenerateContentServerContent

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

toolCall

BidiGenerateContentToolCall

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

toolCallCancellation

BidiGenerateContentToolCallCancellation

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

goAway

GoAway

เอาต์พุตเท่านั้น ประกาศว่าเซิร์ฟเวอร์จะตัดการเชื่อมต่อในไม่ช้า

sessionResumptionUpdate

SessionResumptionUpdate

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

BidiGenerateContentSetup

ข้อความที่จะส่งใน 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

ไม่บังคับ กําหนดค่ากลไกการบีบอัดกรอบเวลาบริบท

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

outputAudioTranscription

AudioTranscriptionConfig

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

BidiGenerateContentSetupComplete

ประเภทนี้ไม่มีช่อง

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

BidiGenerateContentToolCall

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

ช่อง
functionCalls[]

FunctionCall

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

BidiGenerateContentToolCallCancellation

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

ช่อง
ids[]

string

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

BidiGenerateContentToolResponse

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

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

ช่อง
functionResponses[]

FunctionResponse

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

BidiGenerateContentTranscription

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

ช่อง
text

string

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

ContextWindowCompressionConfig

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

ช่อง
ฟิลด์สหภาพ 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

เวลาที่เหลือก่อนที่การเชื่อมต่อจะสิ้นสุดลงโดยระบุว่า "ยกเลิก"

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

RealtimeInputConfig

กําหนดค่าลักษณะการป้อนข้อมูลแบบเรียลไทม์ใน BidiGenerateContent

ช่อง
automaticActivityDetection

AutomaticActivityDetection

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

activityHandling

ActivityHandling

ไม่บังคับ กําหนดผลที่กิจกรรมมี

turnCoverage

TurnCoverage

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

SessionResumptionConfig

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

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

ช่อง
handle

string

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

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

SessionResumptionUpdate

อัปเดตสถานะการกลับมาทำงานของเซสชัน

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

ช่อง
newHandle

string

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

resumable

bool

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

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

SlidingWindow

วิธีการ SlidingWindow ทํางานโดยการทิ้งเนื้อหาที่จุดเริ่มต้นของกรอบเวลาบริบท บริบทที่ได้จะเริ่มต้นที่จุดเริ่มต้นของการเปลี่ยนบทบาทเป็นผู้ใช้เสมอ วิธีการของระบบและ 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 เทิร์นของผู้ใช้จะรวมอินพุตแบบเรียลไทม์ทั้งหมดนับตั้งแต่เทิร์นล่าสุด รวมถึงช่วงเวลาที่ไม่มีการใช้งาน (เช่น ไม่มีการพูดในสตรีมเสียง)

UsageMetadata

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

ช่อง
promptTokenCount

int32

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

cachedContentTokenCount

int32

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

responseTokenCount

int32

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

toolUsePromptTokenCount

int32

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

thoughtsTokenCount

int32

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

totalTokenCount

int32

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

promptTokensDetails[]

ModalityTokenCount

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

cacheTokensDetails[]

ModalityTokenCount

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

responseTokensDetails[]

ModalityTokenCount

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

toolUsePromptTokensDetails[]

ModalityTokenCount

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

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

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