Përdorimi i mjetit me Live API

Përdorimi i mjeteve i lejon Live API-t të shkojë përtej bisedës së thjeshtë duke e mundësuar atë të kryejë veprime në botën reale dhe të tërheqë kontekst të jashtëm, ndërkohë që ruan një lidhje në kohë reale. Ju mund të përcaktoni mjete të tilla si Thirrja e Funksioneve dhe Kërkimi në Google me Live API.

Përmbledhje e mjeteve të mbështetura

Ja një përmbledhje e shkurtër e mjeteve të disponueshme për modelet Live API:

Mjet Pamje paraprake e drejtpërdrejtë e Gemini 3.1 Flash Pamje paraprake e drejtpërdrejtë e Gemini 2.5 Flash
Kërko Mbështetur Mbështetur
Thirrja e funksionit Mbështetet (vetëm sinkron) Mbështetur (sinkron dhe asinkron )
Hartat e Google-it Nuk mbështetet Nuk mbështetet
Ekzekutimi i kodit Nuk mbështetet Nuk mbështetet
Konteksti i URL-së Nuk mbështetet Nuk mbështetet

Thirrja e funksionit

API-ja Live mbështet thirrjen e funksioneve, njësoj si kërkesat e rregullta për gjenerimin e përmbajtjes. Thirrja e funksioneve lejon që API-ja Live të bashkëveprojë me të dhëna dhe programe të jashtme, duke rritur ndjeshëm atë që mund të arrijnë aplikacionet tuaja.

Ju mund të përcaktoni deklaratat e funksioneve si pjesë të konfigurimit të sesionit. Pas marrjes së thirrjeve të mjeteve, klienti duhet të përgjigjet me një listë të objekteve FunctionResponse duke përdorur metodën session.send_tool_response .

Shihni tutorialin e thirrjes së funksionit për të mësuar më shumë.

Python

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

client = genai.Client()

model = "gemini-3.1-flash-live-preview"

# 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": ["AUDIO"], "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}]})

        wf = wave.open("audio.wav", "wb")
        wf.setnchannels(1)
        wf.setsampwidth(2)
        wf.setframerate(24000)  # Output is 24kHz

        async for response in session.receive():
            if response.data is not None:
                wf.writeframes(response.data)
            elif response.tool_call:
                print("The tool was called")
                function_responses = []
                for fc in response.tool_call.function_calls:
                    function_response = types.FunctionResponse(
                        id=fc.id,
                        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)

        wf.close()

if __name__ == "__main__":
    asyncio.run(main())

JavaScript

import { GoogleGenAI, Modality } from '@google/genai';
import * as fs from "node:fs";
import pkg from 'wavefile';  // npm install wavefile
const { WaveFile } = pkg;

const ai = new GoogleGenAI({});
const model = 'gemini-3.1-flash-live-preview';

// Simple function definitions
const turn_on_the_lights = { name: "turn_on_the_lights" } // , description: '...', parameters: { ... }
const turn_off_the_lights = { name: "turn_off_the_lights" }

const tools = [{ functionDeclarations: [turn_on_the_lights, turn_off_the_lights] }]

const config = {
  responseModalities: [Modality.AUDIO],
  tools: tools
}

async function live() {
  const responseQueue = [];

  async function waitMessage() {
    let done = false;
    let message = undefined;
    while (