Kombinoni mjetet e integruara dhe thirrjen e funksioneve

Gemini lejon kombinimin e mjeteve të integruara , të tilla si google_search dhe thirrjes së funksioneve (të njohura edhe si mjete të personalizuara ) në një bashkëveprim të vetëm duke ruajtur dhe ekspozuar historikun e kontekstit të thirrjeve të mjeteve. Kombinimet e mjeteve të integruara dhe të personalizuara lejojnë rrjedha pune komplekse, agjentike, ku, për shembull, modeli mund të bazohet në të dhëna të internetit në kohë reale përpara se të thërrasë logjikën tuaj specifike të biznesit.

Ja një shembull që mundëson kombinime të mjeteve të integruara dhe të personalizuara me google_search dhe një funksion të personalizuar getWeather :

Python

from google import genai

client = genai.Client()

getWeather = {
    "type": "function",
    "name": "getWeather",
    "description": "Gets the weather for a requested city.",
    "parameters": {
        "type": "object",
        "properties": {
            "city": {
                "type": "string",
                "description": "The city and state, e.g. Utqiaġvik, Alaska",
            },
        },
        "required": ["city"],
    },
}

# The Interactions API manages context automatically across tool calls.
# The model will first use Google Search, then call getWeather.
interaction = client.interactions.create(
    model="gemini-3-flash-preview",
    input="What is the northernmost city in the United States? What's the weather like there today?",
    tools=[
        {"google_search": {}},
        getWeather,
    ],
)

# Process steps: the interaction contains search results and a function call
for step in interaction.steps:
    if step.type == "function_call":
        print(f"Function call: {step.name} with args: {step.arguments}")
        # In a real application, you would execute the function here
        # and provide the result back to the model.

JavaScript

import { GoogleGenAI } from '@google/genai';

const client = new GoogleGenAI({});

const getWeather = {
    type: "function",
    name: "getWeather",
    description: "Get the weather in a given location",
    parameters: {
        type: "object",
        properties: {
            location: {
                type: "string",
                description: "The city and state, e.g. San Francisco, CA"
            }
        },
        required: ["location"]
    }
};

// The Interactions API manages context automatically across tool calls.
// The model will first use Google Search, then call getWeather.
const interaction = await client.interactions.create({
    model: "gemini-3-flash-preview",
    input: "What is the northernmost city in the United States? What's the weather like there today?",
    tools: [
        { googleSearch: {} },
        getWeather,
    ],
});

// Process steps: the interaction contains search results and a function call
for (const step of interaction.steps) {
    if (step.type === "function_call") {
        console.log(`Function call: ${step.name} with args: ${JSON.stringify(step.arguments)}`);
        // In a real application, you would execute the function here
        // and provide the result back to the model.
    }
}

PUSHTIM

curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "Content-Type: application/json" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-d '{
  "model": "gemini-3-flash-preview",
  "input": "What is the northernmost city in the United States? What'\''s the weather like there today?",
  "tools": [
    { "type": "google_search" },
    {
      "type": "function",
      "name": "getWeather",
      "description": "Get the weather in a given location",
      "parameters": {
          "type": "object",
          "properties": {
              "location": {
                  "type": "string",
                  "description": "The city and state, e.g. San Francisco, CA"
              }
          },
          "required": ["location"]
      }
    }
  ]
}'

Si funksionon

Modelet Gemini 3 përdorin qarkullimin e kontekstit të mjeteve për të mundësuar kombinime mjetesh të integruara dhe të personalizuara. Qarkullimi i kontekstit të mjeteve bën të mundur ruajtjen dhe ekspozimin e kontekstit të mjeteve të integruara dhe ndarjen e tij me mjete të personalizuara në të njëjtin bashkëveprim.

Aktivizo kombinimin e mjeteve

  • Përfshini function_declarations , së bashku me mjetet e integruara që dëshironi të përdorni, për të aktivizuar sjelljen e kombinimit.

API kthen hapat

Në një përgjigje ndërveprimi, API kthen hapa të veçantë për thirrjet e mjeteve të integruara dhe thirrjet e funksioneve (mjeteve të personalizuara):

  • Hapat e integruar të mjetit : API i menaxhon këto automatikisht, duke ruajtur kontekstin në të gjitha raundet.
  • Hapat e thirrjes së funksionit : API kthen hapat function_call për funksionet tuaja të personalizuara. Ju ekzekutoni funksionin dhe ktheni rezultatin.

Fushat kritike në hapat e kthyer

Disa fusha në hapat e kthyer janë kritike për ruajtjen e kontekstit të mjetit dhe aktivizimin e kombinimeve të mjeteve:

  • id : Gjendet në hapat function_call dhe function_response . Një identifikues unik që lidh një thirrje me përgjigjen e saj.
  • signature : Gjendet në hapat thought , si dhe në të gjitha hapat e thirrjes së mjetit (p.sh., function_call ) dhe rezultatit (p.sh., function_response ) për modelet Gemini 3+. Ky kontekst i enkriptuar mundëson qarkullimin e kontekstit të mjetit nëpër ndërveprime.

Menaxhimi i këtyre fushave:

  • Modaliteti i gjendjes (i rekomanduar) : Kur përdorni previous_interaction_id , serveri përpunon automatikisht fushat e id dhe signature .
  • Modaliteti pa shtetësi : Kur menaxhoni historikun e bisedave manualisht, duhet të siguroheni që t'i kaloni të dyja fushat, id dhe signature , përsëri te modeli në kërkesat pasuese për të vërtetuar vërtetësinë dhe për të ruajtur kontekstin. SDK-të zyrtare e trajtojnë këtë automatikisht nëse e kaloni objektin e plotë të përgjigjes përsëri te historiku.

Të dhëna specifike për mjetin

Disa mjete të integruara kthejnë argumente të të dhënave të dukshme për përdoruesin, specifike për llojin e mjetit.

Mjet Argumentet e thirrjes së mjetit të dukshëm të përdoruesit (nëse ka) Përgjigja e dukshme e mjetit të përdoruesit (nëse ka)
kërkim_në_google queries search_suggestions
hartat_e_google-it queries places
google_maps_widget_context_token
konteksti_i_url-së urls
URL-të që do të shfletohen
status : Shfletoni statusin
retrieved_url : URL-të e shfletuara
kërkim_i_file-it Asnjë Asnjë

Tokenat dhe çmimet

Vini re se pjesët e thirrjes së mjetit të integruar në kërkesa llogariten për prompt_token_count . Meqenëse këto hapa të ndërmjetëm të mjetit tani janë të dukshëm dhe ju kthehen, ato janë pjesë e historikut të bisedës. Ky është vetëm rasti për kërkesat , jo për përgjigjet .

Mjeti i Kërkimit në Google është një përjashtim nga ky rregull. Kërkimi në Google tashmë zbaton modelin e vet të çmimeve në nivelin e pyetjes, kështu që tokenët nuk tarifohen dy herë (shih faqen e Çmimeve ).

Lexoni faqen e Tokenave për më shumë informacion.

Kufizime

  • Modaliteti i validated (modaliteti auto nuk mbështetet) kur qarkullimi i kontekstit të mjetit është i aktivizuar.
  • Mjetet e integruara si google_search mbështeten në informacionin e vendndodhjes dhe kohës aktuale, kështu që nëse system_instruction ose function_declaration.description juaj ka informacion kontradiktor të vendndodhjes dhe kohës, funksioni i kombinimit të mjeteve mund të mos funksionojë mirë.

Mjetet e mbështetura

Mjeti standard i qarkullimit të kontekstit zbatohet për mjetet nga ana e serverit (të integruara). Ekzekutimi i kodit është gjithashtu një mjet nga ana e serverit, por ka zgjidhjen e vet të integruar për qarkullimin e kontekstit. Përdorimi i kompjuterit dhe thirrja e funksioneve janë mjete nga ana e klientit dhe gjithashtu kanë zgjidhje të integruara për qarkullimin e kontekstit.

Mjet Ana e ekzekutimit Mbështetje për Qarkullimin e Kontekstit
Kërkimi në Google Nga ana e serverit Mbështetur
Hartat e Google-it Nga ana e serverit Mbështetur
Konteksti i URL-së Nga ana e serverit Mbështetur
Kërkimi i skedarëve Nga ana e serverit Mbështetur
Ekzekutimi i Kodit Nga ana e serverit Mbështetur (i integruar, përdor hapat code_execution dhe code_execution_result )
Përdorimi i kompjuterit Nga ana e klientit Mbështetur (i integruar, përdor hapat function_call dhe function_response )
Funksione të personalizuara Nga ana e klientit Mbështetur (i integruar, përdor hapat function_call dhe function_response )

Çfarë vjen më pas