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
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[] |
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 |
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
danRealtimeUpdate
, 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[] |
Opsional. Data byte yang disisipkan untuk input media. |
activity_start |
Opsional. Menandai awal aktivitas pengguna. Ini hanya dapat dikirim jika deteksi aktivitas otomatis (yaitu sisi server) dinonaktifkan. |
activity_end |
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 |
Hanya output. Jika true, menunjukkan bahwa model telah selesai dibuat. Pembuatan hanya akan dimulai sebagai respons terhadap pesan klien tambahan. Dapat ditetapkan bersama |
interrupted |
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 |
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 |
Hanya output. Metadata menentukan sumber yang digunakan untuk mendasarkan konten yang dihasilkan. |
input_transcription |
Opsional. Transkripsi input. Transkripsi tidak bergantung pada giliran model, yang berarti tidak menyiratkan urutan apa pun antara transkripsi dan giliran model. |
output_transcription |
Opsional. Transkripsi output. Transkripsi tidak bergantung pada giliran model, yang berarti tidak ada urutan antara transkripsi dan giliran model. |
model_turn |
Hanya output. Konten yang telah dibuat model sebagai bagian dari percakapan saat ini dengan pengguna. |
Transkripsi
Pesan transkripsi audio.
Kolom | |
---|---|
text |
Opsional. Teks transkripsi. |
finished |
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 |
Wajib. Nama model penayang yang sepenuhnya memenuhi syarat. Format model penayang: |
generation_config |
Opsional. Konfigurasi pembuatan. Kolom berikut tidak didukung:
|
system_instruction |
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[] |
Opsional. Daftar
|
session_resumption |
Opsional. Mengonfigurasi mekanisme melanjutkan sesi. Jika disertakan, server akan mengirim pesan |
context_window_compression |
Opsional. Mengonfigurasi mekanisme kompresi jendela konteks. Jika disertakan, server akan mengompresi jendela konteks agar sesuai dengan panjang yang ditentukan. |
realtime_input_config |
Opsional. Mengonfigurasi penanganan input realtime. |
input_audio_transcription |
Opsional. Transkripsi input sesuai dengan bahasa audio input. |
output_audio_transcription |
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[] |
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[] |
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[] |
Opsional. Respons terhadap panggilan fungsi. |
RealtimeInputConfig
Mengonfigurasi perilaku input realtime di BidiGenerateContent
.
Kolom | |
---|---|
automatic_activity_detection |
Opsional. Jika tidak ditetapkan, deteksi aktivitas otomatis diaktifkan secara default. Jika deteksi suara otomatis dinonaktifkan, klien harus mengirim sinyal aktivitas. |
activity_handling |
Opsional. Menentukan efek aktivitas. |
turn_coverage |
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 |
Opsional. Menentukan kemungkinan ucapan terdeteksi. |
end_of_speech_sensitivity |
Opsional. Menentukan kemungkinan ucapan yang terdeteksi berakhir. |
prefix_padding_ms |
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 |
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 |
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 |
Jumlah total token yang digunakan konten yang di-cache. |
text_count |
Jumlah karakter teks. |
image_count |
Jumlah gambar. |
video_duration_seconds |
Durasi video dalam detik. |
audio_duration_seconds |
Durasi audio dalam detik. |
GoAway
Server tidak akan segera dapat melayani klien.
Kolom | |
---|---|
time_left |
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 |
Nama sebutan baru yang mewakili status yang dapat dilanjutkan. Kosong jika |
resumable |
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 |
Indeks pesan terakhir yang dikirim oleh klien yang disertakan dalam status yang diwakili oleh SessionResumptionToken ini. Hanya dikirim saat 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 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
- Pelajari lebih lanjut panggilan fungsi.
- Lihat Referensi panggilan fungsi untuk mengetahui contohnya.