Dokumen ini menunjukkan cara mengonfigurasi berbagai kemampuan model Gemini saat menggunakan Gemini Live API. Anda dapat mengonfigurasi penggunaan alat seperti panggilan fungsi dan perujukan, serta kemampuan audio native seperti dialog afektif dan audio proaktif.
Mengonfigurasi penggunaan alat
Beberapa alat kompatibel dengan berbagai versi model yang didukung Gemini Live API, termasuk:
- Panggilan fungsi
- Melakukan grounding dengan Google Penelusuran
- Grounding dengan Vertex AI RAG Engine (Pratinjau)
Untuk mengaktifkan alat tertentu agar dapat digunakan dalam respons yang ditampilkan, sertakan nama alat dalam daftar tools saat Anda menginisialisasi model. Bagian berikut memberikan contoh cara menggunakan setiap alat bawaan dalam kode Anda.
Panggilan fungsi
Gunakan panggilan fungsi jika Anda ingin model berinteraksi dengan sistem atau API eksternal yang Anda kelola. Gunakan ini untuk tugas seperti memeriksa database, mengirim email, atau berinteraksi dengan API kustom.
Model membuat panggilan fungsi, dan aplikasi Anda mengeksekusi kode serta mengirimkan hasilnya kembali ke model.
Semua fungsi harus dideklarasikan di awal sesi dengan mengirimkan definisi alat sebagai bagian dari pesan LiveConnectConfig.
Untuk mengaktifkan panggilan fungsi, sertakan function_declarations dalam daftar tools
di pesan penyiapan:
Python
import asyncio from google import genai from google.genai.types import ( Content, LiveConnectConfig, Part, ) # Initialize the client. client = genai.Client( vertexai=True, project="GOOGLE_CLOUD_PROJECT", # Replace with your project ID location="LOCATION", # Replace with your location ) MODEL_ID = "gemini-live-2.5-flash-native-audio" def get_current_weather(location: str) -> str: """Example method. Returns the current weather. Args: location: The city and state, e.g. San Francisco, CA """ weather_map: dict[str, str] = { "Boston, MA": "snowing", "San Francisco, CA": "foggy", "Seattle, WA": "raining", "Austin, TX": "hot", "Chicago, IL": "windy", } return weather_map.get(location, "unknown") async def main(): config = LiveConnectConfig( response_modalities=["AUDIO"], tools=[get_current_weather], ) async with client.aio.live.connect( model=MODEL_ID, config=config, ) as session: text_input = "Get the current weather in Boston." print(f"Input: {text_input}") await session.send_client_content( turns=Content(role="user", parts=[Part(text=text_input)]) ) async for message in session.receive(): if message.tool_call: function_responses = [] for function_call in message.tool_call.function_calls: print(f"FunctionCall > {function_call}") # Execute the tool and send the response back to the model. result = get_current_weather(**function_call.args) function_responses.append( { "name": function_call.name, "response": {"result": result}, "id": function_call.id, } ) if function_responses: await session.send_tool_response(function_responses=function_responses) if __name__ == "__main__": asyncio.run(main())
Untuk contoh penggunaan panggilan fungsi dalam petunjuk sistem, lihat contoh praktik terbaik kami.
Grounding dengan Google Penelusuran
Gunakan Grounding dengan Google Penelusuran saat Anda ingin model memberikan respons yang lebih akurat dan faktual dengan menghubungkannya ke sumber informasi yang dapat diverifikasi. Gunakan ini untuk tugas seperti menelusuri web.
Tidak seperti panggilan fungsi, integrasi sisi server menangani pengambilan informasi secara otomatis.
Untuk mengaktifkan Perujukan dengan Google Penelusuran, sertakan google_search dalam daftar
tools di pesan penyiapan:
Python
import asyncio from google import genai from google.genai.types import ( Content, LiveConnectConfig, Part, ) # Initialize the client. client = genai.Client( vertexai=True, project="GOOGLE_CLOUD_PROJECT", # Replace with your project ID location="LOCATION", # Replace with your location ) MODEL_ID = "gemini-live-2.5-flash-native-audio" async def main(): config = LiveConnectConfig( response_modalities=["AUDIO"], tools=[{"google_search": {}}], ) async with client.aio.live.connect( model=MODEL_ID, config=config, ) as session: text_input = "What is the current weather in Toronto, Canada?" print(f"Input: {text_input}") await session.send_client_content( turns=Content(role="user", parts=[Part(text=text_input)]) ) async for message in session.receive(): # Consume the messages from the model. # In native audio, the model response is in audio format. pass if __name__ == "__main__": asyncio.run(main())
Penyelarasan dengan Vertex AI RAG Engine
Anda dapat menggunakan Vertex AI RAG Engine dengan Live API untuk perujukan, penyimpanan, dan pengambilan konteks. Gunakan ini untuk tugas seperti mengambil informasi dari korpus dokumen. Seperti Perujukan dengan Google Penelusuran, perujukan RAG ditangani di sisi server dan secara otomatis mengambil informasi dari korpus yang Anda tentukan:
Python
import asyncio from google import genai from google.genai.types import ( Content, LiveConnectConfig, Part, Retrieval, Tool, VertexRagStore, VertexRagStoreRagResource, ) # Initialize the client. client = genai.Client( vertexai=True, project="GOOGLE_CLOUD_PROJECT", # Replace with your project ID location="LOCATION", # Replace with your location ) MODEL_ID = "gemini-live-2.5-flash-native-audio" async def main(): rag_store = VertexRagStore( rag_resources=[ VertexRagStoreRagResource( rag_corpus="RESOURCE_NAME" # Replace with your corpus resource name ) ], # Set `store_context` to true to allow Live API sink context into your memory corpus. store_context=True, ) config = LiveConnectConfig( response_modalities=["AUDIO"], tools=[Tool(retrieval=Retrieval(vertex_rag_store=rag_store))], ) async with client.aio.live.connect( model=MODEL_ID, config=config, ) as session: text_input = "YOUR_TEXT_INPUT" print(f"Input: {text_input}") await session.send_client_content( turns=Content(role="user", parts=[Part(text=text_input)]) ) async for message in session.receive(): # Consume the messages from the model. # In native audio, the model response is in audio format. pass if __name__ == "__main__": asyncio.run(main())
Untuk mengetahui informasi selengkapnya, lihat Menggunakan Vertex AI RAG Engine di Gemini Live API.
Mengonfigurasi kemampuan audio native
Model yang memiliki kemampuan audio bawaan mendukung fitur berikut:
Mengonfigurasi Dialog Afektif
Jika Affective Dialog diaktifkan, model akan mencoba memahami dan merespons berdasarkan intonasi suara dan ekspresi emosional pengguna.
Untuk mengaktifkan Affective Dialog, tetapkan enable_affective_dialog ke
true dalam pesan penyiapan:
Python
config = LiveConnectConfig( response_modalities=["AUDIO"], enable_affective_dialog=True, )
Mengonfigurasi Audio Proaktif
Audio Proaktif memungkinkan Anda mengontrol waktu respons model. Misalnya, Anda dapat meminta Gemini untuk hanya merespons saat diminta atau saat topik tertentu dibahas. Untuk melihat demonstrasi video Proactive Audio, lihat Pratinjau Audio Native Gemini Live API.
Untuk mengaktifkan Audio Proaktif, konfigurasikan kolom proactivity
dalam pesan penyiapan dan tetapkan proactive_audio ke true:
Python
config = LiveConnectConfig( response_modalities=["AUDIO"], proactivity=ProactivityConfig(proactive_audio=True), )
Contoh percakapan
Berikut adalah contoh percakapan dengan Gemini tentang memasak:
Prompt: "You are an AI assistant in Italian cooking; only chime in when the topic is about Italian cooking."
Speaker A: "I really love cooking!" (No response from Gemini.)
Speaker B: "Oh yes, me too! My favorite is French cuisine." (No response from
Gemini.)
Speaker A: "I really like Italian food; do you know how to make a pizza?"
(Italian cooking topic will trigger response from Gemini.)
Gemini Live API: "I'd be happy to help! Here's a recipe for a pizza."
Kasus penggunaan umum
Saat menggunakan Audio Proaktif, Gemini akan melakukan hal berikut:
- Merespons dengan latensi minimal: Gemini merespons setelah pengguna selesai berbicara, sehingga mengurangi gangguan dan membantu Gemini tidak kehilangan konteks jika terjadi gangguan.
- Menghindari gangguan: Audio Proaktif membantu Gemini menghindari gangguan dari kebisingan latar belakang atau percakapan eksternal, dan mencegah Gemini merespons jika percakapan eksternal terjadi selama percakapan.
- Menangani interupsi: Jika pengguna perlu menginterupsi respons dari Gemini, Audio Proaktif mempermudah Gemini untuk melakukan komunikasi di luar jalur (artinya interupsi yang sesuai ditangani), dibandingkan jika pengguna menggunakan kata pengisi seperti mmm atau eh.
- Mendengarkan audio bersama: Gemini dapat mendengarkan file audio bersama yang bukan suara pembicara dan kemudian menjawab pertanyaan tentang file audio tersebut di percakapan selanjutnya.
Penagihan
Saat Gemini mendengarkan percakapan, token audio input akan dikenai biaya.
Untuk token audio output, Anda hanya akan dikenai biaya saat Gemini merespons. Jika Gemini tidak merespons atau tetap diam, tidak ada biaya untuk token audio output Anda.
Untuk mengetahui informasi selengkapnya, lihat Harga Vertex AI.
Langkah berikutnya
Untuk mengetahui informasi selengkapnya tentang cara menggunakan Gemini Live API, lihat: