Referensi Live API

Live API memungkinkan interaksi suara dan video dua arah dengan latensi rendah dengan Gemini. Dengan menggunakan Live API, Anda dapat memberikan pengalaman percakapan suara alami dan seperti manusia kepada pengguna akhir, serta kemampuan untuk menyela respons model menggunakan perintah suara. Live API dapat memproses input teks, audio, dan video, serta dapat 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 informasi yang didengar atau dilihat sebelumnya.
  • 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+.

Gen AI SDK for 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 panggilan audio, teks, atau 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 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 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 dari 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 mengurai 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 kumpulan 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, yang dikirim saat penyiapan selesai
BidiGenerateContentServerContent Konten yang dihasilkan oleh model sebagai respons terhadap pesan klien
BidiGenerateContentToolCall Minta klien untuk menjalankan panggilan fungsi dan menampilkan respons dengan ID yang cocok
BidiGenerateContentToolCallCancellation Dikirim saat panggilan fungsi dibatalkan karena pengguna mengganggu 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, menetapkan konteks sesi, atau memulihkan konteks sesi. Untuk konteks singkat, Anda dapat mengirim interaksi per belokan untuk mewakili urutan peristiwa yang tepat. Untuk konteks yang lebih panjang, sebaiknya berikan ringkasan pesan tunggal untuk mengosongkan jendela konteks untuk 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 ke panggilan fungsi yang dikeluarkan oleh model. BidiGenerateContentToolResponse harus digunakan sebagai gantinya. BidiGenerateContentClientContent hanya boleh digunakan untuk menetapkan 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 tertentu dari format skema OpenAPI. Satu deklarasi fungsi dapat menyertakan 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 secara 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 parameter dan format yang diharapkan.
    • required (array): Array string yang mencantumkan nama parameter yang wajib 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 Gemini API SDK, lihat Tutorial panggilan fungsi.

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

Klien akan 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 dan 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 pembaruan konten inkremental.

Gangguan

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

Selain itu, server Gemini akan menghapus 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 Anda.

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 aman dengan Live API.

Durasi sesi maksimum

Durasi maksimum sesi percakapan default 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 streaming input audio yang berkelanjutan. VAD dapat dikonfigurasi dengan kolom RealtimeInputConfig.AutomaticActivityDetection dari pesan penyiapan.

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

Atau, VAD otomatis dapat dinonaktifkan dengan menetapkan 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 streaming apa pun ditandai dengan pesan ActivityEnd.

Batasan tambahan

Endpoint 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 kapasitas berikut berlaku:

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

Pesan dan peristiwa

BidiGenerateContentClientContent

Pembaruan inkremental dari 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 satu giliran, ini adalah satu instance. Untuk kueri multi-giliran, 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 diakumulasikan. Jika tidak, server akan menunggu pesan tambahan sebelum memulai pembuatan.

BidiGenerateContentRealtimeInput

Input pengguna yang dikirim secara real time.

Dalam beberapa hal, hal ini berbeda dengan ClientContentUpdate:

  • Dapat dikirim secara terus-menerus tanpa gangguan pada pembuatan model.
  • Jika perlu mencampur data yang diselingi 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 bertahap untuk mengoptimalkan awal respons yang cepat dari model.
  • Selalu diasumsikan sebagai input pengguna (tidak dapat digunakan untuk mengisi histori percakapan).
Kolom
media_chunks[]

Blob

Opsional. Data byte yang disisipkan 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 ditetapkan 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 bukan secara real time. Klien dapat memilih untuk melakukan buffering dan memutarnya secara real time.

Kolom
turn_complete

bool

Hanya output. Jika true, menunjukkan bahwa model telah selesai dibuat. 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 true, menunjukkan bahwa model telah selesai dibuat.

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

Saat model mengasumsikan pemutaran real-time, akan ada penundaan 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 mendasarkan konten yang dihasilkan.

input_transcription

Transcription

Opsional. Transkripsi input. Transkripsi tidak bergantung pada giliran model, yang berarti tidak menyiratkan urutan apa pun antara transkripsi dan giliran model.

output_transcription

Transcription

Opsional. Transkripsi output. Transkripsi tidak bergantung pada giliran model, yang berarti tidak ada urutan antara transkripsi dan giliran model.

model_turn

Content

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

Transkripsi

Pesan transkripsi audio.

Kolom
text

string

Opsional. Teks transkripsi.

finished

bool

Opsional. Boolean menunjukkan akhir transkripsi.

BidiGenerateContentSetup

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

Klien harus menunggu pesan BidiGenerateContentSetupComplete sebelum mengirim pesan tambahan.

Kolom
model

string

Wajib. Nama model penayang yang sepenuhnya memenuhi syarat.

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 dalam 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 potongan 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 melanjutkan sesi. Jika disertakan, server akan mengirim pesan SessionResumptionUpdate berkala ke klien.

context_window_compression

ContextWindowCompressionConfig

Opsional. Mengonfigurasi mekanisme kompresi jendela konteks.

Jika disertakan, server akan mengompresi jendela konteks agar sesuai dengan panjang yang ditentukan.

realtime_input_config

RealtimeInputConfig

Opsional. Mengonfigurasi penanganan input realtime.

input_audio_transcription

AudioTranscriptionConfig

Opsional. Transkripsi input sesuai dengan bahasa audio input.

output_audio_transcription

AudioTranscriptionConfig

Opsional. Transkripsi output sesuai 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

Minta 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 terjadi jika klien mengganggu giliran server.

Kolom
ids[]

string

Hanya output. ID panggilan alat yang akan dibatalkan.

BidiGenerateContentToolResponse

Respons yang dibuat klien untuk ToolCall yang diterima dari server. Setiap objek FunctionResponse dicocokkan dengan objek FunctionCall masing-masing oleh kolom id.

Perhatikan bahwa dalam panggilan fungsi GenerateContent API streaming server dan unary terjadi dengan bertukar bagian Content, sedangkan dalam panggilan fungsi GenerateContent API bidi terjadi melalui kumpulan pesan khusus ini.

Kolom
function_responses[]

FunctionResponse

Opsional. Respons terhadap panggilan fungsi.

RealtimeInputConfig

Mengonfigurasi perilaku input realtime di BidiGenerateContent.

Kolom
automatic_activity_detection

AutomaticActivityDetection

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

activity_handling

ActivityHandling

Opsional. Menentukan efek aktivitas.

turn_coverage

TurnCoverage

Opsional. Menentukan input yang disertakan dalam giliran pengguna.

ActivityHandling

Berbagai cara untuk menangani aktivitas pengguna.

Enum
ACTIVITY_HANDLING_UNSPECIFIED Jika tidak ditentukan, perilaku default-nya adalah START_OF_ACTIVITY_INTERRUPTS.
START_OF_ACTIVITY_INTERRUPTS Jika true (benar), awal aktivitas akan mengganggu respons model (juga disebut "barge in"). Respons model saat ini akan terputus pada saat 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 berakhir.

prefix_padding_ms

int32

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

silence_duration_ms

int32

Opsional. Durasi yang diperlukan untuk mendeteksi keheningan (atau non-ucapan) sebelum akhir ucapan di-commit. 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

Akhir sensitivitas ucapan.

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

StartSensitivity

Awal sensitivitas ucapan.

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

TurnCoverage

Opsi tentang input mana yang disertakan dalam giliran pengguna.

Enum
TURN_COVERAGE_UNSPECIFIED Jika tidak ditentukan, perilaku default-nya adalah TURN_INCLUDES_ALL_INPUT.
TURN_INCLUDES_ONLY_ACTIVITY Giliran pengguna hanya mencakup aktivitas sejak giliran terakhir, tidak termasuk ketidakaktifan (misalnya, keheningan pada streaming audio).
TURN_INCLUDES_ALL_INPUT Giliran pengguna mencakup semua input realtime sejak giliran terakhir, termasuk ketidakaktifan (misalnya, keheningan di streaming audio). Ini adalah perilaku default.

UsageMetadata

Metadata tentang penggunaan konten yang di-cache.

Kolom
total_token_count

int32

Jumlah total token yang digunakan 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 segera dapat melayani klien.

Kolom
time_left

Duration

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

SessionResumptionUpdate

Pembaruan status kelanjutan sesi.

Hanya dikirim jika BidiGenerateContentSetup.session_resumption ditetapkan.

Kolom
new_handle

string

Nama sebutan baru yang mewakili status yang dapat dilanjutkan. Kosong jika resumable=salah.

resumable

bool

Benar jika sesi dapat dilanjutkan pada tahap ini.

Sesi mungkin tidak dapat dilanjutkan 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 mengakibatkan beberapa data hilang.

last_consumed_client_message_index

int64

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

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

Frame ini tidak akan digunakan untuk 'melanjutkan untuk memulihkan status' beberapa waktu kemudian -- dalam kasus tersebut, sebagian frame audio dan video mungkin tidak diperlukan.

Langkah berikutnya