En este documento se explica cómo configurar varias funciones de los modelos de Gemini al usar la API Gemini Live. Puedes configurar el uso de herramientas, como la llamada a funciones y la fundamentación, así como las funciones de audio nativas, como el diálogo afectivo y el audio proactivo.
Configurar el uso de herramientas
Hay varias herramientas compatibles con distintas versiones de los modelos admitidos por la API Gemini Live, entre las que se incluyen las siguientes:
- Llamadas a funciones
- Fundamentación con la Búsqueda de Google
- Grounding con Vertex AI RAG Engine (vista previa)
Para habilitar una herramienta concreta para que se use en las respuestas devueltas, incluye el nombre de la herramienta en la lista tools al inicializar el modelo. En las secciones siguientes se ofrecen ejemplos de cómo usar cada una de las herramientas integradas en tu código.
Llamadas de función
Usa la llamada a funciones para crear una descripción de una función y, a continuación, pasa esa descripción al modelo en una solicitud. La respuesta del modelo incluye el nombre de una función que coincide con la descripción y los argumentos para llamarla.
Todas las funciones deben declararse al inicio de la sesión enviando tool
definitions como parte del mensaje LiveConnectConfig.
Para habilitar las llamadas a funciones, incluye function_declarations en la lista tools
del mensaje de configuración:
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())
Para ver ejemplos de uso de la función de llamada en instrucciones del sistema, consulta nuestro ejemplo de prácticas recomendadas.
Fundamentación con la Búsqueda de Google
Puedes usar Grounding with Google Search con la API Gemini Live incluyendo google_search en la lista tools del mensaje de configuración:
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())
Fundamentos con Vertex AI RAG Engine
Puedes usar Vertex AI RAG Engine con la API Live para fundamentar, almacenar y recuperar contextos:
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
Para obtener más información, consulta Usar Vertex AI RAG Engine en la API Live de Gemini.
Configurar las funciones de audio nativas
Los modelos que tienen funciones de audio nativas admiten las siguientes funciones:
Configurar Affective Dialog
Cuando Affective Dialog está habilitado, el modelo intenta entender y responder en función del tono de voz y las expresiones emocionales del usuario.
Para habilitar Affective Dialog, asigna el valor true a enable_affective_dialog en el mensaje de configuración:
Python
config = LiveConnectConfig( response_modalities=["AUDIO"], enable_affective_dialog=True, )
Configurar Audio proactivo
Audio proactivo te permite controlar cuándo responde el modelo. Por ejemplo, puedes pedirle a Gemini que solo responda cuando se le indique o cuando se hablen de temas concretos. Para ver una demostración en vídeo de Audio proactivo, consulta Vista previa de audio nativo de la API Gemini Live.
Para habilitar Audio proactivo, configura el campo proactivity
en el mensaje de configuración y asigna el valor true a proactive_audio:
Python
config = LiveConnectConfig( response_modalities=["AUDIO"], proactivity=ProactivityConfig(proactive_audio=True), )
Conversación de ejemplo
A continuación, se muestra un ejemplo de cómo podría ser una conversación con Gemini sobre cocina:
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."
Casos prácticos habituales
Cuando se usa Audio proactivo, Gemini funciona de la siguiente manera:
- Responde con una latencia mínima: Gemini responde después de que el usuario haya terminado de hablar, lo que reduce las interrupciones y ayuda a Gemini a no perder el contexto si se produce una interrupción.
- Evita interrupciones: Audio proactivo ayuda a Gemini a evitar las interrupciones del ruido de fondo o de las conversaciones externas, e impide que Gemini responda si se produce una conversación externa durante una conversación.
- Gestiona las interrupciones: si el usuario necesita interrumpir una respuesta de Gemini, la función de audio proactivo facilita que Gemini responda de forma adecuada (es decir, que se gestionen las interrupciones apropiadas), en lugar de que el usuario utilice muletillas como eh o um.
- Escucha audio: Gemini puede escuchar un archivo de audio que no sea la voz del interlocutor y, posteriormente, responder preguntas sobre ese archivo de audio en la conversación.
Facturación
Mientras Gemini escucha una conversación, se cobrarán tokens de audio de entrada.
En el caso de los tokens de audio de salida, solo se te cobrará cuando Gemini responda. Si Gemini no responde o se queda en silencio, no se te cobrarán los tokens de audio de salida.
Para obtener más información, consulta los precios de Vertex AI.
Siguientes pasos
Para obtener más información sobre cómo usar la API de Gemini Live, consulta los siguientes artículos:
- Descripción general de la API Gemini Live
- Guía de referencia de la API Gemini Live
- Iniciar y gestionar sesiones en directo