Mengonfigurasi kemampuan Gemini

Dokumen ini menunjukkan cara mengonfigurasi berbagai kemampuan model Gemini saat menggunakan Live API. Anda dapat mengonfigurasi pemikiran, penggunaan alat seperti panggilan fungsi dan perujukan, serta kemampuan audio native seperti dialog afektif dan audio proaktif.

Mengonfigurasi penalaran

Model Gemini mendukung kemampuan berpikir, dengan kemampuan berpikir dinamis diaktifkan secara default. Parameter thinking_budget memandu model tentang jumlah token penalaran yang akan digunakan. Untuk menonaktifkan pemikiran, tetapkan thinking_budget ke 0.

config = {
    "response_modalities": ["audio"],
    "thinking_config": {
        "thinking_budget": 256,
    },
}

Mengonfigurasi penggunaan alat

Beberapa alat kompatibel dengan berbagai versi model yang didukung Live API, termasuk:

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 untuk membuat deskripsi fungsi, lalu teruskan deskripsi tersebut ke model dalam permintaan. Respons dari model mencakup nama fungsi yang sesuai dengan deskripsi dan argumen yang digunakan untuk memanggilnya.

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 import types

client = genai.Client(
    vertexai=True,
    project=GOOGLE_CLOUD_PROJECT,
    location=GOOGLE_CLOUD_LOCATION,
)
model = "gemini-live-2.5-flash"

# Simple function definitions
turn_on_the_lights = {"name": "turn_on_the_lights"}
turn_off_the_lights = {"name": "turn_off_the_lights"}

tools = [{"function_declarations": [turn_on_the_lights, turn_off_the_lights]}]
config = {"response_modalities": ["TEXT"], "tools": tools}

async def main():
    async with client.aio.live.connect(model=model, config=config) as session:
        prompt = "Turn on the lights please"
        await session.send_client_content(turns={"parts": [{"text": prompt}]})

        async for chunk in session.receive():
            if chunk.server_content:
                if chunk.text is not None:
                    print(chunk.text)
            elif chunk.tool_call:
                function_responses = []
                for fc in tool_call.function_calls:
                    function_response = types.FunctionResponse(
                        name=fc.name,
                        response={ "result": "ok" } # simple, hard-coded function response
                    )
                    function_responses.append(function_response)

                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.

Anda dapat menggunakan Perujukan dengan Google Penelusuran dengan Live API dengan menyertakan google_search dalam daftar tools di pesan penyiapan:

Python

import asyncio
from google import genai
from google.genai import types

client = genai.Client(
    vertexai=True,
    project=GOOGLE_CLOUD_PROJECT,
    location=GOOGLE_CLOUD_LOCATION,
)
model = "gemini-live-2.5-flash"


tools = [{'google_search': {}}]
config = {"response_modalities": ["TEXT"], "tools": tools}

async def main():
    async with client.aio.live.connect(model=model, config=config) as session:
        prompt = "When did the last Brazil vs. Argentina soccer match happen?"
        await session.send_client_content(turns={"parts": [{"text": prompt}]})

        async for chunk in session.receive():
            if chunk.server_content:
                if chunk.text is not None:
                    print(chunk.text)

                # The model might generate and execute Python code to use Search
                model_turn = chunk.server_content.model_turn
                if model_turn:
                    for part in model_turn.parts:
                        if part.executable_code is not None:
                        print(part.executable_code.code)

                        if part.code_execution_result is not None:
                        print(part.code_execution_result.output)

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:

Python

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

PROJECT_ID=YOUR_PROJECT_ID
LOCATION=YOUR_LOCATION
TEXT_INPUT=YOUR_TEXT_INPUT
MODEL_NAME="gemini-live-2.5-flash"

client = genai.Client(
   vertexai=True,
   project=PROJECT_ID,
   location=LOCATION,
)

rag_store=types.VertexRagStore(
   rag_resources=[
       types.VertexRagStoreRagResource(
           rag_corpus=  # Use memory corpus if you want to store context.
       )
   ],
   # Set `store_context` to true to allow Live API sink context into your memory corpus.
   store_context=True
)

async with client.aio.live.connect(
   model=MODEL_NAME,
   config=LiveConnectConfig(response_modalities=[Modality.TEXT],
                            tools=[types.Tool(
                                retrieval=types.Retrieval(
                                    vertex_rag_store=rag_store))]),
) as session:
   text_input=TEXT_INPUT
   print("> ", text_input, "\n")
   await session.send_client_content(
       turns=Content(role="user", parts=[Part(text=text_input)])
   )

   async for message in session.receive():
       if message.text:
           display.display(display.Markdown(message.text))
           continue

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 Dialog Afektif 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.)
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-sama: Gemini dapat mendengarkan file audio bersama-sama 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 ditagih 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 penggunaan Live API, lihat: