Referensi Live API

Live API memungkinkan interaksi suara dan video dua arah dengan latensi rendah bersama Gemini. Dengan Live API, Anda dapat memberikan pengalaman percakapan suara yang alami dan mirip manusia kepada pengguna akhir, serta kemampuan untuk menyela respons model menggunakan perintah suara. Live API dapat memproses input teks, audio, dan video, serta memberikan output teks dan audio.

Untuk mengetahui informasi selengkapnya tentang Live API, lihat Live API.

Kemampuan

Live API mencakup kemampuan utama berikut:

  • Multimodalitas: Model dapat melihat, mendengar, dan berbicara.
  • Interaksi real-time latensi rendah: Model dapat memberikan respons yang cepat.
  • Memori sesi: Model mempertahankan memori semua interaksi dalam satu sesi, mengingat kembali informasi yang sebelumnya didengar atau dilihat.
  • Dukungan untuk panggilan fungsi, eksekusi kode, dan Penelusuran sebagai Alat: Anda dapat mengintegrasikan model dengan layanan dan sumber data eksternal.

Live API dirancang untuk komunikasi server ke server.

Untuk aplikasi web dan seluler, sebaiknya gunakan integrasi dari partner kami di Daily.

Model yang didukung

Mulai

Untuk mencoba Live API, buka Vertex AI Studio, lalu klik Start Session.

Live API adalah API stateful yang menggunakan WebSockets.

Bagian ini menunjukkan contoh cara menggunakan Live API untuk pembuatan teks ke teks, menggunakan Python 3.9+.

Python

Instal

pip install --upgrade google-genai

Untuk mempelajari lebih lanjut, lihat dokumentasi referensi SDK.

Tetapkan variabel lingkungan untuk menggunakan Gen AI SDK dengan Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_VERTEXAI=True

from google import genai
from google.genai.types import (
    Content,
    LiveConnectConfig,
    HttpOptions,
    Modality,
    Part,
)

client = genai.Client(http_options=HttpOptions(api_version="v1beta1"))
model_id = "gemini-2.0-flash-live-preview-04-09"

async with client.aio.live.connect(
    model=model_id,
    config=LiveConnectConfig(response_modalities=[Modality.TEXT]),
) as session:
    text_input = "Hello? Gemini, are you there?"
    print("> ", text_input, "\n")
    await session.send_client_content(turns=Content(role="user", parts=[Part(text=text_input)]))

    response = []

    async for message in session.receive():
        if message.text:
            response.append(message.text)

    print("".join(response))
# Example output:
# >  Hello? Gemini, are you there?
# Yes, I'm here. What would you like to talk about?

Panduan integrasi

Bagian ini menjelaskan cara kerja integrasi dengan Live API.

Sesi

Koneksi WebSocket membuat sesi antara klien dan server Gemini.

Setelah klien memulai koneksi baru, sesi dapat bertukar pesan dengan server untuk:

  • Mengirim teks, audio, atau video ke server Gemini.
  • Menerima permintaan audio, teks, atau panggilan fungsi dari server Gemini.

Konfigurasi sesi dikirim dalam pesan pertama setelah koneksi. Konfigurasi sesi mencakup model, parameter pembuatan, petunjuk sistem, dan alat.

Lihat contoh konfigurasi berikut:


{
  "model": string,
  "generationConfig": {
    "candidateCount": integer,
    "maxOutputTokens": integer,
    "temperature": number,
    "topP": number,
    "topK": integer,
    "presencePenalty": number,
    "frequencyPenalty": number,
    "responseModalities": [string],
    "speechConfig": object
  },

  "systemInstruction": string,
  "tools": [object]
}

Untuk mengetahui informasi selengkapnya, lihat BidiGenerateContentSetup.

Mengirim pesan

Pesan adalah objek berformat JSON yang dipertukarkan melalui koneksi WebSocket.

Untuk mengirim pesan, klien harus mengirim objek JSON melalui koneksi WebSocket yang terbuka. Objek JSON harus memiliki tepat satu kolom dari kumpulan objek berikut:


{
  "setup": BidiGenerateContentSetup,
  "clientContent": BidiGenerateContentClientContent,
  "realtimeInput": BidiGenerateContentRealtimeInput,
  "toolResponse": BidiGenerateContentToolResponse
}

Pesan klien yang didukung

Lihat pesan klien yang didukung dalam tabel berikut:

Pesan Deskripsi
BidiGenerateContentSetup Konfigurasi sesi yang akan dikirim dalam pesan pertama
BidiGenerateContentClientContent Pembaruan konten inkremental percakapan saat ini yang dikirim dari klien
BidiGenerateContentRealtimeInput Input audio atau video real-time
BidiGenerateContentToolResponse Respons terhadap ToolCallMessage yang diterima dari server

Menerima pesan

Untuk menerima pesan dari Gemini, dengarkan peristiwa 'message' WebSocket, lalu parsing hasilnya sesuai dengan definisi pesan server yang didukung.

Lihat referensi berikut:

ws.addEventListener("message", async (evt) => {
  if (evt.data instanceof Blob) {
    // Process the received data (audio, video, etc.)
  } else {
    // Process JSON response
  }
});

Pesan server akan memiliki tepat satu kolom dari set objek berikut:


{
  "setupComplete": BidiGenerateContentSetupComplete,
  "serverContent": BidiGenerateContentServerContent,
  "toolCall": BidiGenerateContentToolCall,
  "toolCallCancellation": BidiGenerateContentToolCallCancellation
  "usageMetadata": UsageMetadata
  "goAway": GoAway
  "sessionResumptionUpdate": SessionResumptionUpdate
  "inputTranscription": BidiGenerateContentTranscription
  "outputTranscription": BidiGenerateContentTranscription
}

Pesan server yang didukung

Lihat pesan server yang didukung dalam tabel berikut:

Pesan Deskripsi
BidiGenerateContentSetupComplete Pesan BidiGenerateContentSetup dari klien, dikirim saat penyiapan selesai
BidiGenerateContentServerContent Konten yang dihasilkan oleh model sebagai respons terhadap pesan klien
BidiGenerateContentToolCall Permintaan agar klien menjalankan panggilan fungsi dan menampilkan respons dengan ID yang cocok
BidiGenerateContentToolCallCancellation Dikirim saat panggilan fungsi dibatalkan karena pengguna menginterupsi output model
UsageMetadata Laporan jumlah token yang digunakan oleh sesi sejauh ini
GoAway Sinyal bahwa koneksi saat ini akan segera dihentikan
SessionResumptionUpdate Checkpoint sesi, yang dapat dilanjutkan
BidiGenerateContentTranscription Transkripsi ucapan pengguna atau model

Update konten inkremental

Gunakan update inkremental untuk mengirim input teks, membuat konteks sesi, atau memulihkan konteks sesi. Untuk konteks singkat, Anda dapat mengirimkan interaksi belokan demi belokan untuk merepresentasikan urutan peristiwa yang tepat. Untuk konteks yang lebih panjang, sebaiknya berikan ringkasan satu pesan untuk mengosongkan jendela konteks bagi interaksi lanjutan.

Lihat contoh pesan konteks berikut:

{
  "clientContent": {
    "turns": [
      {
          "parts":[
          {
            "text": ""
          }
        ],
        "role":"user"
      },
      {
          "parts":[
          {
            "text": ""
          }
        ],
        "role":"model"
      }
    ],
    "turnComplete": true
  }
}

Perhatikan bahwa meskipun bagian konten dapat berupa jenis functionResponse, BidiGenerateContentClientContent tidak boleh digunakan untuk memberikan respons terhadap panggilan fungsi yang dikeluarkan oleh model. BidiGenerateContentToolResponse harus digunakan sebagai gantinya. BidiGenerateContentClientContent hanya boleh digunakan untuk membuat konteks sebelumnya atau memberikan input teks ke percakapan.

Streaming audio dan video

Eksekusi kode

Untuk mempelajari lebih lanjut eksekusi kode, lihat Eksekusi kode.

Panggilan fungsi

Semua fungsi harus dideklarasikan di awal sesi dengan mengirimkan definisi alat sebagai bagian dari pesan BidiGenerateContentSetup.

Anda menentukan fungsi menggunakan JSON, khususnya dengan subset pilihan dari format skema OpenAPI. Deklarasi fungsi tunggal dapat mencakup parameter berikut:

  • name (string): ID unik untuk fungsi dalam panggilan API.

  • description (string): Penjelasan lengkap tentang tujuan dan kemampuan fungsi.

  • parameters (objek): Menentukan data input yang diperlukan oleh fungsi.

    • type (string): Menentukan jenis data keseluruhan, seperti objek.

    • properties (objek): Mencantumkan setiap parameter, masing-masing dengan:

      • type (string): Jenis data parameter, seperti string, bilangan bulat, boolean.
      • description (string): Penjelasan yang jelas tentang tujuan dan format yang diharapkan dari parameter.
    • required (array): Array string yang mencantumkan nama parameter yang wajib ada agar fungsi dapat beroperasi.

Untuk contoh kode deklarasi fungsi menggunakan perintah curl, lihat Pemanggilan fungsi dengan Gemini API. Untuk contoh cara membuat deklarasi fungsi menggunakan SDK Gemini API, lihat tutorial Panggilan fungsi.

Dari satu perintah, model dapat menghasilkan beberapa panggilan fungsi dan kode yang diperlukan untuk menggabungkan outputnya. Kode ini dijalankan di lingkungan sandbox, yang menghasilkan pesan BidiGenerateContentToolCall berikutnya. Eksekusi akan dijeda hingga hasil setiap panggilan fungsi tersedia, yang memastikan pemrosesan berurutan.

Klien harus merespons dengan BidiGenerateContentToolResponse.

Untuk mempelajari lebih lanjut, lihat Pengantar panggilan fungsi.

Format audio

Lihat daftar format audio yang didukung.

Petunjuk sistem

Anda dapat memberikan petunjuk sistem untuk mengontrol output model dengan lebih baik dan menentukan nada serta sentimen respons audio.

Petunjuk sistem ditambahkan ke perintah sebelum interaksi dimulai dan tetap berlaku selama seluruh sesi.

Petunjuk sistem hanya dapat ditetapkan di awal sesi, segera setelah koneksi awal. Untuk memberikan input lebih lanjut ke model selama sesi, gunakan update konten inkremental.

Gangguan

Pengguna dapat menghentikan output model kapan saja. Saat Deteksi aktivitas suara (VAD) mendeteksi gangguan, pembuatan yang sedang berlangsung dibatalkan dan dibuang. Hanya informasi yang sudah dikirim ke klien yang dipertahankan dalam histori sesi. Server kemudian mengirim pesan BidiGenerateContentServerContent untuk melaporkan gangguan.

Selain itu, server Gemini akan membatalkan semua panggilan fungsi yang tertunda dan mengirim pesan BidiGenerateContentServerContent dengan ID panggilan yang dibatalkan.

Suara

Untuk menentukan suara, tetapkan voiceName dalam objek speechConfig, sebagai bagian dari konfigurasi sesi.

Lihat representasi JSON objek speechConfig berikut:

{
  "voiceConfig": {
    "prebuiltVoiceConfig": {
      "voiceName": "VOICE_NAME"
    }
  }
}

Untuk melihat daftar suara yang didukung, lihat Mengubah setelan suara dan bahasa.

Batasan

Pertimbangkan batasan Live API dan Gemini 2.0 berikut saat Anda merencanakan project.

Autentikasi klien

Live API hanya menyediakan autentikasi server ke server dan tidak direkomendasikan untuk penggunaan klien langsung. Input klien harus dirutekan melalui server aplikasi perantara untuk autentikasi yang aman dengan Live API.

Durasi sesi maksimum

Durasi maksimum default sesi percakapan adalah 10 menit. Untuk mengetahui informasi selengkapnya, lihat Durasi sesi.

Deteksi aktivitas suara (VAD)

Secara default, model akan otomatis melakukan deteksi aktivitas suara (VAD) pada aliran input audio berkelanjutan. VAD dapat dikonfigurasi dengan kolom RealtimeInputConfig.AutomaticActivityDetection dari pesan penyiapan.

Saat aliran audio dijeda selama lebih dari satu detik (misalnya, saat pengguna menonaktifkan mikrofon), peristiwa AudioStreamEnd dikirim untuk menghapus semua audio yang di-cache. Klien dapat melanjutkan pengiriman data audio kapan saja.

Atau, VAD otomatis dapat dinonaktifkan dengan menyetel RealtimeInputConfig.AutomaticActivityDetection.disabled ke true dalam pesan penyiapan. Dalam konfigurasi ini, klien bertanggung jawab untuk mendeteksi ucapan pengguna dan mengirim pesan ActivityStart dan ActivityEnd pada waktu yang tepat. AudioStreamEnd tidak dikirim dalam konfigurasi ini. Sebagai gantinya, gangguan pada streaming ditandai dengan pesan ActivityEnd.

Batasan tambahan

Pengakhiran titik akhir manual tidak didukung.

Input audio dan output audio berdampak negatif pada kemampuan model untuk menggunakan panggilan fungsi.

Jumlah token

Jumlah token tidak didukung.

Batas kapasitas

Batas frekuensi berikut berlaku:

  • 5.000 sesi serentak per kunci API
  • 4 juta token per menit

Pesan dan acara

BidiGenerateContentClientContent

Pembaruan inkremental percakapan saat ini yang dikirim dari klien. Semua konten di sini ditambahkan tanpa syarat ke histori percakapan dan digunakan sebagai bagian dari perintah ke model untuk membuat konten.

Pesan di sini akan mengganggu pembuatan model saat ini.

Kolom
turns[]

Content

Opsional. Konten yang ditambahkan ke percakapan saat ini dengan model.

Untuk kueri sekali putaran, ini adalah satu instance. Untuk kueri bolak-balik, ini adalah kolom berulang yang berisi histori percakapan dan permintaan terbaru.

turn_complete

bool

Opsional. Jika benar, menunjukkan bahwa pembuatan konten server harus dimulai dengan perintah yang saat ini terakumulasi. Jika tidak, server akan menunggu pesan tambahan sebelum memulai pembuatan.

BidiGenerateContentRealtimeInput

Input pengguna yang dikirim secara real time.

Hal ini berbeda dengan ClientContentUpdate dalam beberapa hal:

  • Dapat dikirim secara terus-menerus tanpa gangguan ke pembuatan model.
  • Jika ada kebutuhan untuk menggabungkan data yang disisipkan di seluruh ClientContentUpdate dan RealtimeUpdate, server akan mencoba mengoptimalkan respons terbaik, tetapi tidak ada jaminan.
  • Akhir giliran tidak ditentukan secara eksplisit, tetapi berasal dari aktivitas pengguna (misalnya, akhir ucapan).
  • Bahkan sebelum akhir giliran, data diproses secara inkremental untuk mengoptimalkan permulaan respons yang cepat dari model.
  • Selalu diasumsikan sebagai input pengguna (tidak dapat digunakan untuk mengisi histori percakapan).
Kolom
media_chunks[]

Blob

Opsional. Data byte inline untuk input media.

activity_start

ActivityStart

Opsional. Menandai awal aktivitas pengguna. Ini hanya dapat dikirim jika deteksi aktivitas otomatis (yaitu sisi server) dinonaktifkan.

activity_end

ActivityEnd

Opsional. Menandai akhir aktivitas pengguna. Ini hanya dapat dikirim jika deteksi aktivitas otomatis (yaitu sisi server) dinonaktifkan.

ActivityEnd

Jenis ini tidak memiliki kolom.

Menandai akhir aktivitas pengguna.

ActivityStart

Jenis ini tidak memiliki kolom.

Hanya satu kolom dalam pesan ini yang harus disetel dalam satu waktu. Menandai awal aktivitas pengguna.

BidiGenerateContentServerContent

Update server inkremental yang dihasilkan oleh model sebagai respons terhadap pesan klien.

Konten dibuat secepat mungkin, dan tidak secara real time. Klien dapat memilih untuk melakukan buffering dan memutarnya secara real time.

Kolom
turn_complete

bool

Hanya output. Jika benar (true), menunjukkan bahwa model telah selesai membuat. Pembuatan hanya akan dimulai sebagai respons terhadap pesan klien tambahan. Dapat ditetapkan bersama content, yang menunjukkan bahwa content adalah yang terakhir dalam giliran.

interrupted

bool

Hanya output. Jika benar, menunjukkan bahwa pesan klien telah mengganggu pembuatan model saat ini. Jika klien memutar konten secara real-time, ini adalah sinyal yang baik untuk menghentikan dan mengosongkan antrean saat ini. Jika klien memutar konten secara real-time, ini adalah sinyal yang baik untuk menghentikan dan mengosongkan antrean pemutaran saat ini.

generation_complete

bool

Hanya output. Jika benar (true), menunjukkan bahwa model telah selesai membuat.

Jika model terganggu saat membuat, tidak akan ada pesan 'generation_complete' dalam giliran yang terganggu, dan akan melalui 'interrupted > turn_complete'.

Saat model mengasumsikan pemutaran real-time, akan ada jeda antara generation_complete dan turn_complete yang disebabkan oleh model yang menunggu pemutaran selesai.

grounding_metadata

GroundingMetadata

Hanya output. Metadata menentukan sumber yang digunakan untuk mendasari konten yang dihasilkan.

input_transcription

Transcription

Opsional. Input transkripsi. Transkripsi tidak bergantung pada giliran model, yang berarti tidak menyiratkan pengurutan antara transkripsi dan giliran model.

output_transcription

Transcription

Opsional. Transkripsi output. Transkripsi tidak bergantung pada giliran model, yang berarti tidak menyiratkan pengurutan antara transkripsi dan giliran model.

model_turn

Content

Hanya output. Konten yang dihasilkan model sebagai bagian dari percakapan saat ini dengan pengguna.

Transkripsi

Pesan transkripsi audio.

Kolom
text

string

Opsional. Teks transkripsi.

finished

bool

Opsional. Bool menunjukkan akhir transkripsi.

BidiGenerateContentSetup

Pesan yang akan dikirim dalam pesan klien pertama dan satu-satunya. Berisi konfigurasi yang akan diterapkan selama durasi sesi streaming.

Klien harus menunggu pesan BidiGenerateContentSetupComplete sebelum mengirim pesan tambahan.

Kolom
model

string

Wajib. Nama yang sepenuhnya memenuhi syarat dari model penayang.

Format model penayang: projects/{project}/locations/{location}/publishers/\*/models/\*

generation_config

GenerationConfig

Opsional. Konfigurasi pembuatan.

Kolom berikut tidak didukung:

  • response_logprobs
  • response_mime_type
  • logprobs
  • response_schema
  • stop_sequence
  • routing_config
  • audio_timestamp
system_instruction

Content

Opsional. Pengguna memberikan petunjuk sistem untuk model. Catatan: hanya teks yang boleh digunakan di bagian dan konten di setiap bagian akan berada dalam paragraf terpisah.

tools[]

Tool

Opsional. Daftar Tools yang dapat digunakan model untuk menghasilkan respons berikutnya.

Tool adalah bagian kode yang memungkinkan sistem berinteraksi dengan sistem eksternal untuk melakukan tindakan, atau serangkaian tindakan, di luar pengetahuan dan cakupan model.

session_resumption

SessionResumptionConfig

Opsional. Mengonfigurasi mekanisme kelanjutan sesi. Jika disertakan, server akan mengirim pesan SessionResumptionUpdate secara berkala ke klien.

context_window_compression

ContextWindowCompressionConfig

Opsional. Mengonfigurasi mekanisme kompresi jendela konteks.

Jika disertakan, server akan memadatkan jendela konteks agar sesuai dengan panjang yang diberikan.

realtime_input_config

RealtimeInputConfig

Opsional. Mengonfigurasi penanganan input real-time.

input_audio_transcription

AudioTranscriptionConfig

Opsional. Transkripsi input sesuai dengan bahasa audio input.

output_audio_transcription

AudioTranscriptionConfig

Opsional. Transkripsi output selaras dengan kode bahasa yang ditentukan untuk audio output.

AudioTranscriptionConfig

Jenis ini tidak memiliki kolom.

Konfigurasi transkripsi audio.

BidiGenerateContentSetupComplete

Jenis ini tidak memiliki kolom.

Dikirim sebagai respons terhadap pesan BidiGenerateContentSetup dari klien.

BidiGenerateContentToolCall

Meminta klien untuk menjalankan function_calls dan menampilkan respons dengan id yang cocok.

Kolom
function_calls[]

FunctionCall

Hanya output. Panggilan fungsi yang akan dieksekusi.

BidiGenerateContentToolCallCancellation

Notifikasi untuk klien bahwa ToolCallMessage yang dikeluarkan sebelumnya dengan id yang ditentukan seharusnya tidak dieksekusi dan harus dibatalkan. Jika ada efek samping pada panggilan alat tersebut, klien dapat mencoba mengurungkan panggilan alat. Pesan ini hanya muncul jika klien mengganggu giliran server.

Kolom
ids[]

string

Hanya output. ID panggilan alat yang akan dibatalkan.

BidiGenerateContentToolResponse

Respons yang dihasilkan klien terhadap ToolCall yang diterima dari server. Setiap objek FunctionResponse dicocokkan dengan objek FunctionCall masing-masing berdasarkan kolom id.

Perhatikan bahwa pada panggilan fungsi GenerateContent API unary dan server-streaming terjadi dengan menukar bagian Content, sedangkan pada panggilan fungsi GenerateContent API bidi terjadi melalui serangkaian pesan khusus ini.

Kolom
function_responses[]

FunctionResponse

Opsional. Respons terhadap panggilan fungsi.

RealtimeInputConfig

Mengonfigurasi perilaku input real-time di BidiGenerateContent.

Kolom
automatic_activity_detection

AutomaticActivityDetection

Opsional. Jika tidak disetel, deteksi aktivitas otomatis diaktifkan secara default. Jika deteksi suara otomatis dinonaktifkan, klien harus mengirim sinyal aktivitas.

activity_handling

ActivityHandling

Opsional. Mendefinisikan efek aktivitas.

turn_coverage

TurnCoverage

Opsional. Menentukan input mana yang disertakan dalam giliran pengguna.

ActivityHandling

Berbagai cara menangani aktivitas pengguna.

Enum
ACTIVITY_HANDLING_UNSPECIFIED Jika tidak ditentukan, perilaku defaultnya adalah START_OF_ACTIVITY_INTERRUPTS.
START_OF_ACTIVITY_INTERRUPTS Jika benar, dimulainya aktivitas akan mengganggu respons model (juga disebut "interupsi"). Respons model saat ini akan terpotong saat terjadi gangguan. Ini adalah perilaku default.
NO_INTERRUPTION Respons model tidak akan terganggu.

AutomaticActivityDetection

Mengonfigurasi deteksi aktivitas otomatis.

Kolom
start_of_speech_sensitivity

StartSensitivity

Opsional. Menentukan kemungkinan ucapan terdeteksi.

end_of_speech_sensitivity

EndSensitivity

Opsional. Menentukan kemungkinan ucapan yang terdeteksi telah berakhir.

prefix_padding_ms

int32

Opsional. Durasi ucapan yang terdeteksi yang diperlukan sebelum awal ucapan dilakukan. Makin rendah nilai ini, makin sensitif deteksi awal ucapan dan makin pendek ucapan yang dapat dikenali. Namun, hal ini juga meningkatkan probabilitas positif palsu.

silence_duration_ms

int32

Opsional. Durasi yang diperlukan untuk mendeteksi keheningan (atau non-ucapan) sebelum akhir ucapan dilakukan. Makin besar nilai ini, makin lama jeda ucapan tanpa mengganggu aktivitas pengguna, tetapi hal ini akan meningkatkan latensi model.

disabled

bool

Opsional. Jika diaktifkan, input suara dan teks yang terdeteksi akan dihitung sebagai aktivitas. Jika dinonaktifkan, klien harus mengirim sinyal aktivitas.

EndSensitivity

Sensitivitas akhir ucapan.

Enum
END_SENSITIVITY_UNSPECIFIED Defaultnya adalah END_SENSITIVITY_LOW.
END_SENSITIVITY_HIGH Deteksi otomatis lebih sering mengakhiri ucapan.
END_SENSITIVITY_LOW Deteksi otomatis mengakhiri ucapan lebih jarang.

StartSensitivity

Sensitivitas awal ucapan.

Enum
START_SENSITIVITY_UNSPECIFIED Defaultnya adalah START_SENSITIVITY_LOW.
START_SENSITIVITY_HIGH Deteksi otomatis akan mendeteksi awal ucapan lebih sering.
START_SENSITIVITY_LOW Deteksi otomatis akan mendeteksi awal ucapan lebih jarang.

TurnCoverage

Opsi tentang input mana yang disertakan dalam giliran pengguna.

Enum
TURN_COVERAGE_UNSPECIFIED Jika tidak ditentukan, perilaku defaultnya adalah TURN_INCLUDES_ALL_INPUT.
TURN_INCLUDES_ONLY_ACTIVITY Giliran pengguna hanya mencakup aktivitas sejak giliran terakhir, tidak termasuk tidak aktif (misalnya, tidak ada suara di aliran audio).
TURN_INCLUDES_ALL_INPUT Giliran pengguna mencakup semua input real-time sejak giliran terakhir, termasuk tidak aktif (misalnya, tidak ada suara di aliran audio). Ini adalah perilaku default.

UsageMetadata

Metadata tentang penggunaan konten yang di-cache.

Kolom
total_token_count

int32

Jumlah total token yang digunakan oleh konten yang di-cache.

text_count

int32

Jumlah karakter teks.

image_count

int32

Jumlah gambar.

video_duration_seconds

int32

Durasi video dalam detik.

audio_duration_seconds

int32

Durasi audio dalam detik.

GoAway

Server tidak akan dapat melayani klien dalam waktu dekat.

Kolom
time_left

Duration

Waktu yang tersisa sebelum koneksi akan dihentikan sebagai DIBATALKAN. Waktu minimum yang ditampilkan di sini ditentukan secara berbeda bersama dengan batas kecepatan untuk model tertentu.

SessionResumptionUpdate

Pembaruan status kelanjutan sesi.

Hanya dikirim jika BidiGenerateContentSetup.session_resumption disetel.

Kolom
new_handle

string

Handle baru yang merepresentasikan status yang dapat dilanjutkan. Kosong jika resumable=false.

resumable

bool

Benar (true) jika sesi dapat dilanjutkan pada saat ini.

Mungkin tidak dapat melanjutkan sesi pada beberapa titik. Dalam hal ini, kami mengirim update new_handle kosong dan resumable=false. Contoh kasus tersebut dapat berupa model yang menjalankan panggilan fungsi atau hanya membuat. Melanjutkan sesi (menggunakan token sesi sebelumnya) dalam status tersebut akan menyebabkan hilangnya beberapa data.

last_consumed_client_message_index

int64

Indeks pesan terakhir yang dikirim oleh klien yang disertakan dalam status yang diwakili oleh SessionResumptionToken ini. Hanya dikirim jika SessionResumptionConfig.transparent disetel.

Kehadiran indeks ini memungkinkan pengguna untuk terhubung kembali secara transparan dan menghindari masalah kehilangan sebagian input/video audio real-time. Jika klien ingin memutuskan koneksi untuk sementara (misalnya, sebagai akibat dari menerima GoAway), klien dapat melakukannya tanpa kehilangan status dengan mem-buffer pesan yang dikirim sejak SessionResmumptionTokenUpdate terakhir. Kolom ini akan memungkinkan mereka membatasi buffering (menghindari penyimpanan semua permintaan di RAM).

Hal ini tidak akan digunakan untuk 'melanjutkan pemulihan status' beberapa waktu kemudian -- dalam kasus tersebut, kemungkinan tidak diperlukan frame audio dan video parsial.

Langkah berikutnya